newusergiftmgr.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package newusergift
  2. import (
  3. "bet24.com/log"
  4. "bet24.com/servers/common"
  5. "bet24.com/servers/coreservice/serviceconfig"
  6. inventory "bet24.com/servers/micros/item_inventory/proto"
  7. item "bet24.com/servers/micros/item_inventory/proto"
  8. )
  9. type NewusergiftManager struct {
  10. configs []GiftConfig
  11. newYearConfigs []GiftConfig
  12. }
  13. func newNewusergiftManager() *NewusergiftManager {
  14. obj := new(NewusergiftManager)
  15. obj.loadConfig()
  16. log.Debug("newusergift manager running")
  17. return obj
  18. }
  19. func (this *NewusergiftManager) loadConfig() {
  20. this.configs = getConfig(false)
  21. this.newYearConfigs = getConfig(true)
  22. }
  23. func (this *NewusergiftManager) getUserGiftInfo(userId int, isNewYear bool) []UserGift {
  24. ret := getUserGiftInfo(userId, isNewYear)
  25. receivingDayIndex := -1
  26. var items []item.ItemPack
  27. for i := 0; i < len(ret); i++ {
  28. config := this.getConfig(ret[i].DayIndex, isNewYear)
  29. if config == nil {
  30. log.Debug("NewusergiftManager.getUserGiftInfo config not found %d", ret[i].DayIndex)
  31. continue
  32. }
  33. ret[i].Items = config.Items
  34. // 是否休闲平台
  35. if serviceconfig.Server.IsCasual == 1 {
  36. continue
  37. }
  38. if ret[i].Status == Receiving {
  39. receivingDayIndex = ret[i].DayIndex
  40. items = ret[i].Items
  41. }
  42. }
  43. // 能领取才给客户端
  44. if receivingDayIndex != -1 {
  45. userReceiveGift(userId, receivingDayIndex, isNewYear)
  46. desc := "NewUserGift"
  47. if isNewYear {
  48. desc = "NewYearGift"
  49. }
  50. inventory.AddItems(userId, items, desc, common.LOGTYPE_TASK_AWARD)
  51. }
  52. return ret
  53. }
  54. func (this *NewusergiftManager) receiveGift(userId, isDouble int, isNewYear bool) (int, []item.ItemPack) {
  55. var retCode int
  56. var items []item.ItemPack
  57. // 判断是否是休闲平台
  58. if serviceconfig.Server.IsCasual != 1 {
  59. return retCode, items
  60. }
  61. if isDouble != 0 && isDouble != 1 {
  62. return retCode, items
  63. }
  64. ret := getUserGiftInfo(userId, isNewYear)
  65. receivingDayIndex := -1
  66. for i := 0; i < len(ret); i++ {
  67. config := this.getConfig(ret[i].DayIndex, isNewYear)
  68. if config == nil {
  69. log.Debug("NewusergiftManager.receiveGift config not found %d", ret[i].DayIndex)
  70. continue
  71. }
  72. ret[i].Items = config.Items
  73. if ret[i].Status == Receiving {
  74. receivingDayIndex = ret[i].DayIndex
  75. // items = ret[i].Items
  76. for _, v := range ret[i].Items {
  77. items = append(items, item.ItemPack{
  78. ItemId: v.ItemId,
  79. Count: v.Count * (1 + isDouble), // 是否双倍
  80. })
  81. }
  82. }
  83. }
  84. // 能领取才给客户端
  85. if receivingDayIndex != -1 {
  86. userReceiveGift(userId, receivingDayIndex, isNewYear)
  87. desc := "NewUserGift"
  88. if isNewYear {
  89. desc = "NewYearGift"
  90. }
  91. inventory.AddItems(userId, items, desc, common.LOGTYPE_TASK_AWARD)
  92. retCode = 1
  93. }
  94. return retCode, items
  95. }
  96. func (this *NewusergiftManager) getConfig(dayIndex int, isNewYear bool) *GiftConfig {
  97. if !isNewYear {
  98. for _, v := range this.configs {
  99. if v.DayIndex == dayIndex {
  100. return &v
  101. }
  102. }
  103. } else {
  104. for _, v := range this.newYearConfigs {
  105. if v.DayIndex == dayIndex {
  106. return &v
  107. }
  108. }
  109. }
  110. return nil
  111. }