gameshield.go 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package repository
  2. import (
  3. "context"
  4. "github.com/go-nunu/nunu-layout-advanced/internal/model"
  5. )
  6. type GameShieldRepository interface {
  7. GetGameShieldById(ctx context.Context, id int64) (*model.GameShield, error)
  8. GetGameShieldDuplicateName(ctx context.Context, appName string, uid int) (int64, error)
  9. AddGameShield(ctx context.Context, gameShield *model.GameShield) error
  10. UpdateGameShield(ctx context.Context, gameShield *model.GameShield) error
  11. DeleteGameShield(ctx context.Context, ruleId int) error
  12. GetGameShieldIsBuy(ctx context.Context, uid int64) (int64, error)
  13. GetGameShieldNextduedate(ctx context.Context, uid int64, productID string) (string, error)
  14. GetGameShieldNameByDunName(ctx context.Context, appName string) (string, error)
  15. GetGameShieldIdByDunName(ctx context.Context, id int64) (string, error)
  16. GetGameShieldRuleIdByAppName(ctx context.Context, appName string) (int, error)
  17. UpdateGameShieldByHostId(ctx context.Context, gameShield *model.GameShield) error
  18. GetGameShieldByHostId(ctx context.Context, hostId int) (*model.GameShield, error)
  19. GetHostById(ctx context.Context, id int) (string, error)
  20. }
  21. func NewGameShieldRepository(
  22. repository *Repository,
  23. ) GameShieldRepository {
  24. return &gameShieldRepository{
  25. Repository: repository,
  26. }
  27. }
  28. type gameShieldRepository struct {
  29. *Repository
  30. }
  31. func (r *gameShieldRepository) GetGameShieldById(ctx context.Context, id int64) (*model.GameShield, error) {
  32. var res model.GameShield
  33. if err := r.DB(ctx).Where("id = ?", id).First(&res).Error; err != nil {
  34. return nil, err
  35. }
  36. return &res, nil
  37. }
  38. func (r *gameShieldRepository) GetGameShieldDuplicateName(ctx context.Context, appName string, uid int) (int64, error) {
  39. var count int64
  40. if err := r.DB(ctx).Model(&model.GameShield{}).Where("app_name = ?", appName).Where("uid = ?", uid).Count(&count).Error; err != nil {
  41. return 0, err
  42. }
  43. return count, nil
  44. }
  45. func (r *gameShieldRepository) AddGameShield(ctx context.Context, gameShield *model.GameShield) error {
  46. if err := r.DB(ctx).Create(gameShield).Error; err != nil {
  47. return err
  48. }
  49. return nil
  50. }
  51. func (r *gameShieldRepository) UpdateGameShield(ctx context.Context, gameShield *model.GameShield) error {
  52. if err := r.DB(ctx).Where("host_id = ?", gameShield.HostId).Updates(gameShield).Error; err != nil {
  53. return err
  54. }
  55. return nil
  56. }
  57. func (r *gameShieldRepository) DeleteGameShield(ctx context.Context, ruleId int) error {
  58. if err := r.DB(ctx).Where("rule_id = ?", ruleId).Delete(&model.GameShield{}).Error; err != nil {
  59. return err
  60. }
  61. return nil
  62. }
  63. func (r *gameShieldRepository) GetGameShieldIsBuy(ctx context.Context, uid int64) (int64, error) {
  64. var count int64
  65. if err := r.DB(ctx).Table("shd_host").
  66. Where("domainstatus = ?", "Active").
  67. Where("productid = ?", 67).
  68. Where("uid = ?", uid).
  69. Count(&count).Error; err != nil {
  70. return 0, err
  71. }
  72. return count, nil
  73. }
  74. func (r *gameShieldRepository) GetGameShieldNextduedate(ctx context.Context, uid int64, productID string) (string, error) {
  75. var nextDueDate string
  76. err := r.DB(ctx).Table("shd_host").
  77. Select("nextduedate").
  78. Where("id = ?", productID).
  79. Where("uid = ?", uid).
  80. Scan(&nextDueDate).Error
  81. if err != nil {
  82. return "", err
  83. }
  84. return nextDueDate, nil
  85. }
  86. func (r *gameShieldRepository) GetGameShieldNameByDunName(ctx context.Context, appName string) (string, error) {
  87. var res string
  88. if err := r.DB(ctx).Model(&model.GameShield{}).
  89. Where("app_name = ?", appName).
  90. Pluck("dun_name", &res).Error; err != nil {
  91. return "", err
  92. }
  93. return res, nil
  94. }
  95. func (r *gameShieldRepository) GetGameShieldIdByDunName(ctx context.Context, id int64) (string, error) {
  96. var res string
  97. if err := r.DB(ctx).Model(&model.GameShield{}).
  98. Where("id = ?", id).
  99. Pluck("dun_name", &res).Error; err != nil {
  100. return "", err
  101. }
  102. return res, nil
  103. }
  104. func (r *gameShieldRepository) GetGameShieldRuleIdByAppName(ctx context.Context, appName string) (int, error) {
  105. var res int
  106. if err := r.DB(ctx).Model(&model.GameShield{}).
  107. Where("app_name = ?", appName).
  108. Pluck("rule_id", &res).Error; err != nil {
  109. return 0, err
  110. }
  111. return res, nil
  112. }
  113. func (r *gameShieldRepository) UpdateGameShieldByHostId(ctx context.Context, req *model.GameShield) error {
  114. if err := r.DB(ctx).Where("host_id = ?", req.Id).Updates(&model.GameShield{}).Error; err != nil {
  115. return err
  116. }
  117. return nil
  118. }
  119. func (r *gameShieldRepository) GetGameShieldByHostId(ctx context.Context, hostId int) (*model.GameShield, error) {
  120. var res model.GameShield
  121. if err := r.DB(ctx).Where("host_id = ?", hostId).First(&res).Error; err != nil {
  122. return nil, err
  123. }
  124. return &res, nil
  125. }
  126. func (r *gameShieldRepository) GetHostById(ctx context.Context, id int) (string, error) {
  127. var res string
  128. if err := r.DB(ctx).Table("shd_host").
  129. Where("id = ?", id).
  130. Pluck("domain", &res).Error; err != nil {
  131. return "", err
  132. }
  133. return res, nil
  134. }