From a06596737090cddfafbc12a631e42b44420c6e0b Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Mon, 7 Aug 2023 16:31:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E9=A2=86=E5=8F=96=E5=A5=96?= =?UTF-8?q?=E5=8A=B1=E6=95=B0=E6=8D=AE=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/activity/api_gethddata.go | 9 ++-- modules/activity/api_getreward.go | 90 ++++++++++++++++--------------- modules/activity/api_turntable.go | 5 +- modules/activity/model_hddata.go | 5 +- modules/activity/module.go | 4 +- 5 files changed, 57 insertions(+), 56 deletions(-) diff --git a/modules/activity/api_gethddata.go b/modules/activity/api_gethddata.go index 7c33c5250..0b3780dbc 100644 --- a/modules/activity/api_gethddata.go +++ b/modules/activity/api_gethddata.go @@ -1,7 +1,6 @@ package activity import ( - "fmt" "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" @@ -28,8 +27,8 @@ func (this *apiComp) GetHdData(session comm.IUserSession, req *pb.ActivityGetHdD continue } } - key := fmt.Sprintf("%s:%s", session.GetUserId(), id) - list, _ := this.module.modelhdData.getHddataByOid(session.GetUserId(), key) + //key := fmt.Sprintf("%s-%s", session.GetUserId(), id) + list, _ := this.module.modelhdData.getHddataByOid(session.GetUserId(), id) if activity.Itype == comm.HdTypeSign && !utils.IsToday(list.Lasttime) { list.Lasttime = curTime list.Val += 1 @@ -55,8 +54,8 @@ func (this *apiComp) GetHdData(session comm.IUserSession, req *pb.ActivityGetHdD // 获取开服庆典活动 if activity.Itype == comm.HdCelebration { - key := fmt.Sprintf("%s:%s", session.GetUserId(), id) - if data, err := this.module.modelhdData.getHddataByOid(session.GetUserId(), key); err != nil { + // key := fmt.Sprintf("%s-%s", session.GetUserId(), id) + if data, err := this.module.modelhdData.getHddataByOid(session.GetUserId(), id); err != nil { // 注意 Gotarr:map[int32]int32 key value 已经挑战的次数 if !utils.IsToday(data.Lasttime) { // 不是今天重置 data.Lasttime = configure.Now().Unix() diff --git a/modules/activity/api_getreward.go b/modules/activity/api_getreward.go index 87fa93514..1a01df89a 100644 --- a/modules/activity/api_getreward.go +++ b/modules/activity/api_getreward.go @@ -24,66 +24,68 @@ func (this *apiComp) GetReward(session comm.IUserSession, req *pb.ActivityGetRew return } var ( - activity *pb.DBHuodong // 活动数据 + activity *pb.DBHuodong // 活动详细信息 err error reward []*cfg.Gameatn atno []*pb.UserAtno ) - key := fmt.Sprintf("%s:%s", session.GetUserId(), req.Oid) - data, err := this.module.modelhdData.getHddataByOid(session.GetUserId(), key) - if err == nil { - if activity, err = this.module.modelhdList.getHdListByHdId(req.Oid); err == nil { - curTime := configure.Now().Unix() - if activity.Stime > curTime || curTime > activity.Etime { //不在活动时间范围内 - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ActivityNotIntime, - Title: pb.ErrorCode_ActivityNotIntime.ToString(), - } - return - } - } else { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ActivityInvalid, - Title: pb.ErrorCode_ActivityInvalid.ToString(), - } - return - } - if data.Val < req.Val { //没达到领奖条件 - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ActivityCantReward, - Title: pb.ErrorCode_ActivityCantReward.ToString(), - } - return - } - if data.Gotarr != nil { - if _, ok := data.Gotarr[req.Val]; ok { // 重复领奖 - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ActivityRepatReward, - Title: pb.ErrorCode_ActivityRepatReward.ToString(), - } - return - } - } - } else { + //key := fmt.Sprintf("%s-%s", session.GetUserId(), req.Oid) + data, err := this.module.modelhdData.getHddataByOid(session.GetUserId(), req.Oid) + if err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), } return } - // 发奖 - for _, v := range activity.Data.Prize { - if v.Val == req.Val { - for _, v1 := range v.Prize { + if activity, err = this.module.modelhdList.getHdListByHdId(req.Oid); err == nil { + curTime := configure.Now().Unix() + if activity.Stime > curTime || curTime > activity.Etime { //不在活动时间范围内 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ActivityNotIntime, + Title: pb.ErrorCode_ActivityNotIntime.ToString(), + } + return + } + } else { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ActivityInvalid, // 找不到活动数据 + Title: pb.ErrorCode_ActivityInvalid.ToString(), + Message: fmt.Sprintf("not found activity oid:%s", req.Oid), + } + return + } + + if data.Val < req.Val { //没达到领奖条件 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ActivityCantReward, + Title: pb.ErrorCode_ActivityCantReward.ToString(), + } + return + } + if data.Gotarr != nil { + if _, ok := data.Gotarr[req.Val]; ok { // 重复领奖 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ActivityRepatReward, + Title: pb.ErrorCode_ActivityRepatReward.ToString(), + } + return + } + } + + for range activity.Data.Prize { + if len(activity.Data.Prize) > int(req.Val) { + for _, v2 := range activity.Data.Prize[req.Val].Prize { reward = append(reward, &cfg.Gameatn{ - A: v1.A, - T: v1.T, - N: v1.N, + A: v2.A, + T: v2.T, + N: v2.N, }) } if errdata, atno = this.module.DispenseAtno(session, reward, true); errdata != nil { return } + break } } data.Gotarr[req.Val] = 1 diff --git a/modules/activity/api_turntable.go b/modules/activity/api_turntable.go index ff99ca13e..e8ec9d323 100644 --- a/modules/activity/api_turntable.go +++ b/modules/activity/api_turntable.go @@ -1,7 +1,6 @@ package activity import ( - "fmt" "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" @@ -30,8 +29,8 @@ func (this *apiComp) TurntableReward(session comm.IUserSession, req *pb.Activity atno []*pb.UserAtno reward []int32 ) - key := fmt.Sprintf("%s:%s", session.GetUserId(), req.Oid) - data, err := this.module.modelhdData.getHddataByOid(session.GetUserId(), key) + //key := fmt.Sprintf("%s-%s", session.GetUserId(), req.Oid) + data, err := this.module.modelhdData.getHddataByOid(session.GetUserId(), req.Oid) if err == nil { if activity, err = this.module.modelhdList.getHdListByHdId(req.Oid); err == nil { curTime := configure.Now().Unix() diff --git a/modules/activity/model_hddata.go b/modules/activity/model_hddata.go index c3f9cf023..6d9c9f8db 100644 --- a/modules/activity/model_hddata.go +++ b/modules/activity/model_hddata.go @@ -51,8 +51,9 @@ func (this *modelhdData) getHddataByOid(uid string, oid string) (result *pb.DBAc Lasttime: 0, Val: 0, } - if err = this.GetListObj(uid, oid, &result); err == mongo.ErrNoDocuments { - result.Id = fmt.Sprintf("%s:%s", uid, oid) + key := fmt.Sprintf("%s-%s", uid, oid) + if err = this.GetListObj(uid, key, result); err == mongo.ErrNoDocuments { + result.Id = key result.Uid = uid result.Hdoid = oid result.Lasttime = configure.Now().Unix() diff --git a/modules/activity/module.go b/modules/activity/module.go index 7bf2e14aa..66e621d3b 100644 --- a/modules/activity/module.go +++ b/modules/activity/module.go @@ -217,8 +217,8 @@ func (this *Activity) HDCelebration(session comm.IUserSession, systemtype int32, update := make(map[string]interface{}) bChange := false // 查询玩家活动记录 - key := fmt.Sprintf("%s:%s", session.GetUserId(), v.Id) - if data, err := this.modelhdData.getHddataByOid(session.GetUserId(), key); err != nil { + //key := fmt.Sprintf("%s-%s", session.GetUserId(), v.Id) + if data, err := this.modelhdData.getHddataByOid(session.GetUserId(), v.Id); err != nil { // 注意 Gotarr:map[int32]int32 key value 已经挑战的次数 if !utils.IsToday(data.Lasttime) { // 不是今天重置 data.Lasttime = configure.Now().Unix()