msg.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package msg
  2. import (
  3. "rocommon"
  4. "rocommon/service"
  5. "rocommon/util"
  6. "roserver/baseserver/model"
  7. gmmodel "roserver/gmweb/model"
  8. "roserver/serverproto"
  9. "runtime/debug"
  10. "strconv"
  11. "time"
  12. )
  13. const RoleCdkInfo = "cdk_info_"
  14. const CdkTotal = "cdk_Total_"
  15. // other service
  16. func init() {
  17. //serverproto.Handle_GMWEB_SSWebGMAddMailAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  18. // msg := ev.Msg().(*serverproto.SSWebGMAddMailAck)
  19. // util.InfoF("SSWebGMAddMailAck msgid=%v", msg)
  20. //
  21. // model2.GetMailUpdateMag().AttachMail2Update()
  22. //})
  23. serverproto.Handle_GMWEB_CSGiftRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  24. msg := ev.Msg().(*serverproto.CSGiftRewardReq)
  25. //util.InfoF("uid=%v CSGiftRewardReq msg=%v", msg.Uuid, msg)
  26. //model2.GetMailUpdateMag().AttachMail2Update()
  27. go func(code string, uuid uint64) {
  28. defer func() {
  29. //打印奔溃信息
  30. if err := recover(); err != nil {
  31. util.InfoF("onError data=%v \n%s\n", err, string(debug.Stack()))
  32. }
  33. }()
  34. uidStr := strconv.FormatUint(uuid, 10)
  35. res := &serverproto.SCGiftRewardAck{
  36. Uuid: uuid,
  37. }
  38. //util.InfoF("aaaa:%v", model.ConvertCdkRewardMap)
  39. if _, ok := model.ConvertCdkRewardMap[code]; !ok {
  40. res.Error = 3
  41. util.ErrorF("uid:%v cdk get config is nil,%v", uuid, model.ConvertCdkRewardMap)
  42. gmmodel.SendSocial(res)
  43. return
  44. }
  45. v := model.ConvertCdkRewardMap[code]
  46. if v == nil {
  47. util.ErrorF("uid:%v cdk get config is nil", uuid)
  48. res.Error = 3
  49. gmmodel.SendSocial(res)
  50. return
  51. }
  52. now := time.Now()
  53. if now.Before(v.Start) || now.After(v.End) {
  54. res.Error = 2
  55. gmmodel.SendSocial(res)
  56. return
  57. }
  58. if v.Total > 0 {
  59. ker := CdkTotal + strconv.Itoa(int(v.Id))
  60. num, _ := service.GetRedis().Incr(ker).Result()
  61. if num >= int64(v.Total) {
  62. res.Error = 1
  63. gmmodel.SendSocial(res)
  64. return
  65. }
  66. }
  67. key := RoleCdkInfo + strconv.FormatUint(uuid, 10)
  68. field := strconv.FormatInt(int64(v.Id), 10)
  69. b, err := service.GetRedis().HExists(key, field).Result()
  70. if err != nil {
  71. util.ErrorF("uid:%v cdk get redis err:%v", uuid, err)
  72. res.Error = 3
  73. gmmodel.SendSocial(res)
  74. return
  75. }
  76. if b {
  77. res.Error = 1
  78. gmmodel.SendSocial(res)
  79. return
  80. }
  81. res.RewardList = v.RewardList
  82. _, er := service.GetRedis().HSet(key, field, "11").Result()
  83. if er != nil {
  84. util.ErrorF("uid:%v cdk set redis err:%v", uuid, err)
  85. res.Error = 3
  86. gmmodel.SendSocial(res)
  87. return
  88. }
  89. //this.GiftReward(res)
  90. //util.InfoF("uid:%v cdk get reward:%v", this.GetUUid(), res.RewardList)
  91. //this.ReplayGate(res, true)
  92. //error
  93. //1礼包吗已经使用
  94. //2礼包吗已经过期
  95. //3 没有找到礼包吗
  96. util.InfoF("uid=%v CSGiftRewardReq msg=%v res=%v", uidStr, msg, res)
  97. gmmodel.SendSocial(res)
  98. }(msg.GiftCode, msg.Uuid)
  99. })
  100. serverproto.Handle_GMWEB_SSWebGMChatMsgNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  101. msg := ev.Msg().(*serverproto.SSWebGMChatMsgNtf)
  102. util.InfoF("uid=%v SSWebGMChatMsgNtf msg=%v", msg.Uid, msg)
  103. gmmodel.GetChatUpdateMag().AddChatMsg(msg)
  104. })
  105. }