reward.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. )
  22. type PlayerRewardBase struct {
  23. UserName string `json:"userName" bson:"userName"`
  24. Source int `json:"source" json:"source"`
  25. SourceId int `json:"sourceId" json:"sourceId"`
  26. AddReward []data.ItemReward `json:"AddReward" bson:"addReward"`
  27. SubReward []data.ItemReward `json:"SubReward" bson:"subReward"`
  28. Desc interface{} `json:"desc" bson:"desc"`
  29. CreateTime int64 `json:"createTime" bson:"createTime"`
  30. }
  31. type PlayerReward map[int]*PlayerRewardBase
  32. func NewPlayerReward() map[int]*PlayerRewardBase {
  33. return make(map[int]*PlayerRewardBase)
  34. }
  35. type ToPlayerRewardBase struct {
  36. UserName string `json:"userName" bson:"userName"`
  37. AddReward []*ToItemReward `json:"AddReward" bson:"addReward"`
  38. Desc interface{} `json:"desc" bson:"desc"`
  39. CreateTime int64 `json:"createTime" bson:"createTime"`
  40. }
  41. type ToItemReward struct {
  42. ItemID int // itemID:道具ID
  43. Amount float64 // amount:数量
  44. ItemName string // itemName:道具名称
  45. }
  46. type ToDesc struct {
  47. ID int `json:"id" bson:"id"`
  48. CurID int `json:"cur_id" bson:"curid"`
  49. }
  50. func (uw *PlayerRewardBase) To() *ToPlayerRewardBase {
  51. return &ToPlayerRewardBase{
  52. UserName: uw.UserName,
  53. AddReward: func() []*ToItemReward {
  54. ret := make([]*ToItemReward, 0, 8)
  55. for _, v := range uw.AddReward {
  56. itemName := ""
  57. cfg, exist := data.ItemConfig.Get(v.ItemID)
  58. if exist {
  59. itemName = cfg.ItemKey
  60. }
  61. ret = append(ret, &ToItemReward{
  62. ItemID: v.ItemID,
  63. Amount: func() float64 {
  64. if itemName == "u" || itemName == "ton" {
  65. return cutils.QuoInt64ByRatioToFloat64(int64(v.Amount), constant.MoneyRatio)
  66. }
  67. return float64(v.Amount)
  68. }(),
  69. ItemName: itemName,
  70. })
  71. }
  72. return ret
  73. }(),
  74. Desc: func() *ToDesc {
  75. if uw.Desc == nil {
  76. return nil
  77. }
  78. drawMap := uw.Desc.(bson.D).Map()
  79. return &ToDesc{
  80. ID: int(drawMap["id"].(int32)),
  81. CurID: int(drawMap["curid"].(int32)),
  82. }
  83. }(),
  84. // Desc: uw.Desc,
  85. CreateTime: uw.CreateTime,
  86. }
  87. }