gacha.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package model
  2. import (
  3. "leafstalk/otherutils/deepcopy"
  4. "strconv"
  5. "xorm.io/xorm"
  6. )
  7. // 玩家寻宝数据
  8. type GachaPlayer struct {
  9. Id int64 // id
  10. PlayerId int64 `xorm:"BIGINT index 'playerid'"` // 玩家ID
  11. GachaCount int64 `xorm:"int 'gachacount'"` // 寻宝次数
  12. ProcessReward int64 `xorm:"int 'processreward'"` // 已领取进度奖励
  13. LuckNum int64 `xorm:"int 'lucknum'"` // 幸运值
  14. LastFreeTs int64 `xorm:"BIGINT 'lastfreetime'"` // 最后一次免费寻宝时间
  15. Supply *SupplyPrivilege2 `xorm:"TEXT json 'supply'"` // 补给
  16. Pray map[int64]int64 `xorm:"TEXT json 'pray'"` // 祈福记录 {祈福奖励Uid:祈福消耗Uid}
  17. Gift *Gift `xorm:"TEXT json 'gift'"` // 礼包
  18. SysLottery *LotteryList `xorm:"-"` // 活动信息
  19. }
  20. // TableName 表名
  21. func (m *GachaPlayer) TableName() string {
  22. return "player_gacha"
  23. }
  24. func (m *GachaPlayer) QueryExist(eng *xorm.Engine) (bool, error) {
  25. player := new(GachaPlayer)
  26. player.PlayerId = m.PlayerId
  27. return eng.Exist(player)
  28. }
  29. func (m *GachaPlayer) UpdateDB(eng *xorm.Engine) (int64, error) {
  30. return eng.Where("playerid=?", m.PlayerId).AllCols().Update(m)
  31. }
  32. func (m *GachaPlayer) GetUniqueKey() string {
  33. return strconv.FormatInt(m.PlayerId, 10)
  34. }
  35. func CopyGachaPlayer(old *GachaPlayer) *GachaPlayer {
  36. nu := deepcopy.MustCopy(old).(*GachaPlayer)
  37. return nu
  38. }