| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- package msg
- import (
- "rocommon"
- "rocommon/service"
- "rocommon/util"
- "roserver/baseserver/model"
- dbmodel "roserver/db/model"
- gmmodel "roserver/gmweb/model"
- "roserver/serverproto"
- "runtime/debug"
- "strconv"
- "time"
- )
- const RoleCdkInfo = "cdk_info_"
- const CdkTotal = "cdk_Total_"
- // other service
- func init() {
- //serverproto.Handle_GMWEB_SSWebGMAddMailAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- // msg := ev.Msg().(*serverproto.SSWebGMAddMailAck)
- // util.InfoF("SSWebGMAddMailAck msgid=%v", msg)
- //
- // model2.GetMailUpdateMag().AttachMail2Update()
- //})
- serverproto.Handle_GMWEB_CSGiftRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.CSGiftRewardReq)
- util.InfoF("uid=%v CSGiftRewardReq msg=%v", msg.Uuid, msg)
- //model2.GetMailUpdateMag().AttachMail2Update()
- //uuid := msg.Uuid
- //uidStr := strconv.FormatUint(uuid, 10)
- //zoneStr := strconv.Itoa(service.GetServiceConfig().Node.Zone)
- //urlPath := "?code=" + msg.GiftCode + "&uid=" + uidStr + "&serverid=" + zoneStr
- go func(code string, uuid uint64) {
- defer func() {
- //打印奔溃信息
- if err := recover(); err != nil {
- util.InfoF("onError data=%v \n%s\n", err, string(debug.Stack()))
- }
- }()
- uidStr := strconv.FormatUint(uuid, 10)
- res := &serverproto.SCGiftRewardAck{
- Uuid: uuid,
- }
- //非通码
- if len(code) == length {
- award, err := RedisCdk2.RedisCli().HGet(dbmodel.CdkNormal, code).Result()
- if err != nil {
- res.Error = 3
- util.ErrorF("uid:%v cdk get is nil,code:%v error:%v", uuid, code, err)
- gmmodel.SendSocial(res)
- }
- a := &serverproto.SCUseHeadFrameItemAck{
- ItemList: make([]*serverproto.KeyValueType, 0),
- }
- err = model.GetDecodeMessage(a, award)
- if err != nil {
- res.Error = 3
- util.ErrorF("uid:%v cdk unmarshall error,%v", uuid, err)
- gmmodel.SendSocial(res)
- }
- _, err = RedisCdk2.RedisCli().HDel(dbmodel.CdkNormal, code).Result()
- if err != nil {
- res.Error = 3
- util.ErrorF("uid:%v cdk del error,code:%v error:%v", uuid, code, err)
- gmmodel.SendSocial(res)
- }
- util.ErrorF("uid:%v cdk get:%v", uuid, code)
- res.RewardList = a.ItemList
- } else {
- //util.InfoF("aaaa:%v", model.ConvertCdkRewardMap)
- if _, ok := model.ConvertCdkRewardMap[code]; !ok {
- res.Error = 3
- util.ErrorF("uid:%v cdk get config is nil,%v", uuid, model.ConvertCdkRewardMap)
- gmmodel.SendSocial(res)
- return
- }
- v := model.ConvertCdkRewardMap[code]
- if v == nil {
- util.ErrorF("uid:%v cdk get config is nil", uuid)
- res.Error = 3
- gmmodel.SendSocial(res)
- return
- }
- now := time.Now()
- if now.Before(v.Start) || now.After(v.End) {
- res.Error = 2
- gmmodel.SendSocial(res)
- return
- }
- if v.Total > 0 {
- ker := CdkTotal + strconv.Itoa(int(v.Id))
- num, _ := service.GetRedis().Incr(ker).Result()
- if num >= int64(v.Total) {
- res.Error = 1
- gmmodel.SendSocial(res)
- return
- }
- }
- key := RoleCdkInfo + strconv.FormatUint(uuid, 10)
- field := strconv.FormatInt(int64(v.Id), 10)
- b, err := service.GetRedis().HExists(key, field).Result()
- if err != nil {
- util.ErrorF("uid:%v cdk get redis err:%v", uuid, err)
- res.Error = 3
- gmmodel.SendSocial(res)
- return
- }
- if b {
- res.Error = 1
- gmmodel.SendSocial(res)
- return
- }
- res.RewardList = v.RewardList
- _, er := service.GetRedis().HSet(key, field, "11").Result()
- if er != nil {
- util.ErrorF("uid:%v cdk set redis err:%v", uuid, err)
- res.Error = 3
- gmmodel.SendSocial(res)
- return
- }
- }
- //this.GiftReward(res)
- //util.InfoF("uid:%v cdk get reward:%v", this.GetUUid(), res.RewardList)
- //this.ReplayGate(res, true)
- //error
- //1礼包吗已经使用
- //2礼包吗已经过期
- //3 没有找到礼包吗
- util.InfoF("uid=%v CSGiftRewardReq msg=%v res=%v", uidStr, msg, res)
- gmmodel.SendSocial(res)
- }(msg.GiftCode, msg.Uuid)
- })
- serverproto.Handle_GMWEB_SSWebGMChatMsgNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWebGMChatMsgNtf)
- util.InfoF("uid=%v SSWebGMChatMsgNtf msg=%v", msg.Uid, msg)
- gmmodel.GetChatUpdateMag().AddChatMsg(msg)
- })
- serverproto.Handle_GMWEB_SSWebGMChatMsgNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
- msg := ev.Msg().(*serverproto.SSWebGMChatMsgNtf)
- util.InfoF("uid=%v SSWebGMChatMsgNtf msg=%v", msg.Uid, msg)
- gmmodel.GetChatUpdateMag().AddChatMsg(msg)
- })
- }
|