game_disable.go 994 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package model
  2. import (
  3. "time"
  4. "github.com/sirupsen/logrus"
  5. "gogs.daxia.dev/huanan/pkg.daxia.dev/db"
  6. "gorm.io/gorm"
  7. )
  8. type GameDisable struct {
  9. gorm.Model
  10. UserID int32
  11. ExpiredAt time.Time
  12. }
  13. func (GameDisable) TableName() string {
  14. return "game_disable"
  15. }
  16. func (p GameDisable) Init() error {
  17. var err error
  18. if !db.GetDB().Migrator().HasTable(p) {
  19. err = db.GetDB().Migrator().CreateTable(p)
  20. if err != nil {
  21. logrus.Error(err)
  22. return err
  23. }
  24. err = db.GetDB().Exec("create unique index idx_user_id on game_disable (user_id)").Error
  25. if err != nil {
  26. return err
  27. }
  28. }
  29. return nil
  30. }
  31. func (p GameDisable) IsDisable(userID int32) (bool, error) {
  32. gameDisableModel := GameDisable{}
  33. err := db.GetDB().Model(p).Where("user_id = ?", userID).First(&gameDisableModel).Error
  34. if err == gorm.ErrRecordNotFound {
  35. return false, nil
  36. }
  37. if err != nil {
  38. return false, err
  39. }
  40. if time.Now().Before(gameDisableModel.ExpiredAt) {
  41. return true, nil
  42. }
  43. return false, nil
  44. }