|
|
@@ -4,14 +4,16 @@ import (
|
|
|
"rocommon"
|
|
|
"rocommon/service"
|
|
|
"rocommon/util"
|
|
|
- "roserver/baseserver"
|
|
|
"roserver/baseserver/model"
|
|
|
gmmodel "roserver/gmweb/model"
|
|
|
"roserver/serverproto"
|
|
|
"runtime/debug"
|
|
|
"strconv"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
+const RoleCdkInfo = "cdk_info_"
|
|
|
+
|
|
|
//other service
|
|
|
func init() {
|
|
|
//serverproto.Handle_GMWEB_SSWebGMAddMailAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
|
|
|
@@ -27,62 +29,61 @@ func init() {
|
|
|
|
|
|
//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() {
|
|
|
+ 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()))
|
|
|
}
|
|
|
}()
|
|
|
-
|
|
|
- tmpRequest := &rocommon.HTTPRequest{}
|
|
|
- tmpRequest.ReqCodecName = "httpjson"
|
|
|
- //tmpRequest.ReqMsg = OpenIdServeNode{
|
|
|
- // ServerId: zoneId,
|
|
|
- // HeadId: headId,
|
|
|
- // Level: level, //默认1级
|
|
|
- // RecordTime: uint32(util.GetTimeSeconds()),
|
|
|
- //}
|
|
|
-
|
|
|
- tmpRequest.ResMsg = &gmmodel.GiftSt{}
|
|
|
- parm := gmmodel.GetHttpNodeParam()
|
|
|
- httpNode := baseserver.CreateHttpConnector(parm)
|
|
|
- err := httpNode.(rocommon.HTTPConnector).Request("GET", urlPath, tmpRequest)
|
|
|
+ uidStr := strconv.FormatUint(uuid, 10)
|
|
|
+ res := &serverproto.SCGiftRewardAck{
|
|
|
+ Uuid: uuid,
|
|
|
+ }
|
|
|
+ if _, ok := model.ConvertCdkRewardMap[code]; !ok {
|
|
|
+ res.Error = 3
|
|
|
+ return
|
|
|
+ }
|
|
|
+ v := model.ConvertCdkRewardMap[code]
|
|
|
+ if v == nil {
|
|
|
+ util.ErrorF("uid:%v cdk get config is nil", uuid)
|
|
|
+ res.Error = 3
|
|
|
+ return
|
|
|
+ }
|
|
|
+ now := time.Now()
|
|
|
+ if now.Before(v.Start) || now.After(v.End) {
|
|
|
+ res.Error = 2
|
|
|
+ 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.InfoF("uid=%v http Request err=%v", uidStr, err)
|
|
|
- ackMsg := &serverproto.SCGiftRewardAck{
|
|
|
- Error: int32(serverproto.ErrorCode_ERROR_GIFT_CODE_USE_FAIL),
|
|
|
- Uuid: uuid,
|
|
|
- }
|
|
|
- gmmodel.SendSocial(ackMsg)
|
|
|
+ util.ErrorF("uid:%v cdk get redis err:%v", uuid, err)
|
|
|
+ res.Error = 3
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
+ if b {
|
|
|
+ res.Error = 1
|
|
|
+ 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
|
|
|
+ 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, tmpRequest.ResMsg)
|
|
|
- ackMsg := &serverproto.SCGiftRewardAck{
|
|
|
- Error: int32(tmpRequest.ResMsg.(*gmmodel.GiftSt).Error),
|
|
|
- Uuid: uuid,
|
|
|
- }
|
|
|
- if 0 == ackMsg.Error {
|
|
|
- for _, data := range tmpRequest.ResMsg.(*gmmodel.GiftSt).Content {
|
|
|
- itemId, _ := model.Str2Num(data.ItemId)
|
|
|
- itemCount, _ := model.Str2Num(data.ItemCount)
|
|
|
- ackMsg.RewardList = append(ackMsg.RewardList, &serverproto.KeyValueType{
|
|
|
- Key: int32(itemId),
|
|
|
- Value: int32(itemCount),
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- gmmodel.SendSocial(ackMsg)
|
|
|
- }()
|
|
|
+ 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) {
|