reward.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package models
  2. import (
  3. cutils "github.com/mhaya/extend/utils"
  4. "github.com/mhaya/game/game_cluster/internal/constant"
  5. "github.com/mhaya/game/game_cluster/internal/data"
  6. "go.mongodb.org/mongo-driver/bson"
  7. )
  8. const (
  9. SourceGuide = 1
  10. SourceRoll = 2
  11. SourceSignIn = 3
  12. SourceDailyTask = 4
  13. SourceAchieveTask = 5
  14. SourceRank = 6
  15. SourceInvite = 7
  16. SourceRefreshRoll = 8
  17. SourceShare = 9
  18. SourceLevelUp = 10
  19. SourceDraw = 11
  20. SourceCashOut = 12
  21. SourceSigInNode = 13
  22. SourceFirst = 14
  23. SourceInviteNode = 15
  24. )
  25. type PlayerRewardBase struct {
  26. UserName string `json:"userName" bson:"userName"`
  27. Source int `json:"source" json:"source"`
  28. SourceId int `json:"sourceId" json:"sourceId"`
  29. AddReward []data.ItemReward `json:"AddReward" bson:"addReward"`
  30. SubReward []data.ItemReward `json:"SubReward" bson:"subReward"`
  31. Desc interface{} `json:"desc" bson:"desc"`
  32. CreateTime int64 `json:"createTime" bson:"createTime"`
  33. }
  34. type ToPlayerReward struct {
  35. ID string `json:"id" bson:"_id"`
  36. UserName string `json:"userName" bson:"userName"`
  37. AddReward []data.ItemReward `json:"AddReward" bson:"addReward"`
  38. CreateTime int64 `json:"createTime" bson:"createTime"`
  39. }
  40. type PlayerReward map[int]*PlayerRewardBase
  41. func NewPlayerReward() map[int]*PlayerRewardBase {
  42. return make(map[int]*PlayerRewardBase)
  43. }
  44. type ToPlayerRewardBase struct {
  45. UserName string `json:"userName" bson:"userName"`
  46. AddReward []*ToItemReward `json:"AddReward" bson:"addReward"`
  47. Desc interface{} `json:"desc" bson:"desc"`
  48. CreateTime int64 `json:"createTime" bson:"createTime"`
  49. }
  50. type ToItemReward struct {
  51. ItemID int // itemID:道具ID
  52. Amount float64 // amount:数量
  53. ItemName string // itemName:道具名称
  54. }
  55. type ToDesc struct {
  56. ID int `json:"id" bson:"id"`
  57. CurID int `json:"cur_id" bson:"curid"`
  58. }
  59. func (uw *PlayerRewardBase) To() *ToPlayerRewardBase {
  60. return &ToPlayerRewardBase{
  61. UserName: uw.UserName,
  62. AddReward: func() []*ToItemReward {
  63. ret := make([]*ToItemReward, 0, 8)
  64. for _, v := range uw.AddReward {
  65. itemName := ""
  66. cfg, exist := data.ItemConfig.Get(v.ItemID)
  67. if exist {
  68. itemName = cfg.ItemKey
  69. }
  70. ret = append(ret, &ToItemReward{
  71. ItemID: v.ItemID,
  72. Amount: func() float64 {
  73. if itemName == "u" || itemName == "ton" {
  74. return cutils.QuoInt64ByRatioToFloat64(int64(v.Amount), constant.MoneyRatio)
  75. }
  76. return float64(v.Amount)
  77. }(),
  78. ItemName: itemName,
  79. })
  80. }
  81. return ret
  82. }(),
  83. Desc: func() *ToDesc {
  84. if uw.Desc == nil {
  85. return nil
  86. }
  87. drawMap := uw.Desc.(bson.D).Map()
  88. return &ToDesc{
  89. ID: int(drawMap["id"].(int32)),
  90. CurID: int(drawMap["curid"].(int32)),
  91. }
  92. }(),
  93. // Desc: uw.Desc,
  94. CreateTime: uw.CreateTime,
  95. }
  96. }