achieveTask.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package models
  2. import (
  3. "github.com/mhaya/game/game_cluster/internal/data"
  4. )
  5. // 离散规则信息
  6. const (
  7. InitRoll = 1
  8. InvitePlayer = 2
  9. InviteVipPlayer = 3
  10. InvitePlayerByLeader = 4
  11. RefreshRoll = 5
  12. NewPlayerGuide = 6
  13. ShareLottery = 7
  14. FirstBindingTwitter = 8
  15. InviteMaxExpireTime = 9
  16. UCashOutConfig = 10
  17. TonCashOutConfig = 11
  18. NewPlayer10Draw = 12
  19. InviteRatio = 13
  20. RefreshRollNew = 14
  21. )
  22. type AchieveTaskBase struct {
  23. ID int `json:"id" bson:"id"` // #任务ID
  24. Order int `json:"order" bson:"order"` //任务客户端排序
  25. Type int `json:"type" bson:"type"` // 任务类型(1基本类型2邀请好友相关)
  26. Condition data.RangeInt32 `json:"condition" bson:"condition"` // 完成范围 RangeInt32 `json:"condition" bson:"condition"` // 完成条件
  27. Reward []data.ItemReward `json:"reward" bson:"reward"` // 奖励
  28. Url string `json:"url" bson:"url"` // 链接
  29. Num int `json:"num" bson:"num"` //已完成次数
  30. Icon string `json:"icon" bson:"icon"` //Icon
  31. RewardNum int `json:"rewardNum" bson:"rewardNum"` //可领奖次数
  32. Status int `json:"status" bson:"status"` //完成状态0未完成 1已完成2已领取奖励
  33. Validate int `json:"validate" bson:"validate"` //验证状态 0 未验证 1待验证 2验证成功
  34. }
  35. type AchieveTask map[int]*AchieveTaskBase
  36. func NewAchieveTask() map[int]*AchieveTaskBase {
  37. return make(map[int]*AchieveTaskBase)
  38. }
  39. func (at AchieveTask) RefreshAchieveTask() {
  40. ret := data.AchieveTaskConfig.GetAll()
  41. for _, t := range at {
  42. if _, ok := ret[t.ID]; !ok {
  43. delete(at, t.ID)
  44. }
  45. }
  46. for _, d := range ret {
  47. if _, ok := at[d.ID]; !ok {
  48. at[d.ID] = &AchieveTaskBase{
  49. ID: d.ID,
  50. Type: d.Type,
  51. RewardNum: 0,
  52. Num: 0,
  53. Status: 0,
  54. }
  55. }
  56. at[d.ID].Condition = d.Condition
  57. at[d.ID].Order = d.Order
  58. at[d.ID].Url = d.Url
  59. at[d.ID].Icon = d.Icon
  60. at[d.ID].Reward = d.Reward
  61. }
  62. }