invite.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package models
  2. import "github.com/mhaya/game/game_cluster/internal/data"
  3. type InviteReward struct {
  4. IsClaim int `json:"isClaim" bson:"isClaim"`
  5. Reward []data.ItemReward `json:"reward" bson:"reward"`
  6. RewardTime int64 `json:"rewardTime" bson:"rewardTime"`
  7. }
  8. type Invite map[int]*InviteModel
  9. type InviteModel struct {
  10. Type int `json:"type" bson:"type"` //2普通3会员
  11. Num int `json:"num" bson:"num"`
  12. Reward map[int]*data.ItemReward `json:"reward" bson:"reward"`
  13. }
  14. func NewInvite() map[int]*InviteModel {
  15. var invite = make(map[int]*InviteModel)
  16. invite[InvitePlayer] = &InviteModel{
  17. Type: InvitePlayer,
  18. Num: 0,
  19. }
  20. invite[InvitePlayer].Reward = make(map[int]*data.ItemReward)
  21. invite[InviteVipPlayer] = &InviteModel{
  22. Type: InviteVipPlayer,
  23. Num: 0,
  24. }
  25. invite[InviteVipPlayer].Reward = make(map[int]*data.ItemReward)
  26. return invite
  27. }
  28. func (i Invite) Set(tp int, reward []data.ItemReward) {
  29. if _, ok := i[tp]; ok {
  30. i[tp].Num += 1
  31. for _, v := range reward {
  32. if _, ok := i[tp].Reward[v.ItemID]; ok {
  33. i[tp].Reward[v.ItemID].Amount = v.Amount
  34. } else {
  35. i[tp].Reward[v.ItemID] = &v
  36. }
  37. }
  38. }
  39. }