From e7653fbe3475e048759c2a3049d58be53d11f83a Mon Sep 17 00:00:00 2001 From: wh_zcy Date: Tue, 27 Sep 2022 21:32:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/rtask/api_battlefinish.go | 5 +- modules/rtask/condiFindHandle.go | 96 +++++++++++++++---------------- modules/rtask/model_rtask.go | 20 ++++--- 3 files changed, 64 insertions(+), 57 deletions(-) diff --git a/modules/rtask/api_battlefinish.go b/modules/rtask/api_battlefinish.go index dac6f942d..c6600b25f 100644 --- a/modules/rtask/api_battlefinish.go +++ b/modules/rtask/api_battlefinish.go @@ -20,6 +20,8 @@ func (this *apiComp) BattleFinish(session comm.IUserSession, req *pb.RtaskBattle return } + this.moduleRtask.Debugf("随机任务请求 rtaskID:%v 完成 subtaskID:%v chooseID:%v", req.RtaskId, req.RtaskSubId, req.ChooseId) + defer func() { rsp := &pb.RtaskFinishPush{ RtaskId: req.RtaskId, @@ -27,8 +29,9 @@ func (this *apiComp) BattleFinish(session comm.IUserSession, req *pb.RtaskBattle if err := session.SendMsg(string(this.moduleRtask.GetType()), "finish", rsp); err != nil { code = pb.ErrorCode_SystemError } + this.moduleRtask.Debugf("随机任务完成 rtaskID:%v subtaskID:%v chooseID:%v", req.RtaskId, req.RtaskSubId, req.ChooseId) }() - + // 获取当前任务配置 conf := this.moduleRtask.configure.getRtaskById(req.RtaskId) if conf == nil { diff --git a/modules/rtask/condiFindHandle.go b/modules/rtask/condiFindHandle.go index 7415b3d5b..5316592e9 100644 --- a/modules/rtask/condiFindHandle.go +++ b/modules/rtask/condiFindHandle.go @@ -10,7 +10,7 @@ import ( func (this *ModelRtaskRecord) equalFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) { //只查询参数于配置相等的情况下设置condiId,否则返回0 if ok, err1 := soEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } condiId = cfg.Id @@ -19,7 +19,7 @@ func (this *ModelRtaskRecord) equalFirstParam(cfg *cfg.GameRdtaskCondiData, vals func (this *ModelRtaskRecord) greatEqualFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) { if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } condiId = cfg.Id @@ -28,7 +28,7 @@ func (this *ModelRtaskRecord) greatEqualFirstParam(cfg *cfg.GameRdtaskCondiData, func (this *ModelRtaskRecord) lessEqualFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) { if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } condiId = cfg.Id @@ -47,67 +47,67 @@ func (this *ModelRtaskRecord) equalParams(cfg *cfg.GameRdtaskCondiData, vals ... switch paramLen { case 1: if ok, err1 := soEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } case 2: if ok, err1 := soEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } case 3: if ok, err1 := soEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } case 4: if ok, err1 := soEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } case 5: if ok, err1 := soEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[4], cfg.Data5); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } default: @@ -130,67 +130,67 @@ func (this *ModelRtaskRecord) greatThanParams(cfg *cfg.GameRdtaskCondiData, vals switch paramLen { case 1: if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } case 2: if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } case 3: if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } case 4: if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } case 5: if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[4], cfg.Data5); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } default: @@ -213,67 +213,67 @@ func (this *ModelRtaskRecord) lessThanParams(cfg *cfg.GameRdtaskCondiData, vals switch paramLen { case 1: if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } case 2: if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } case 3: if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } case 4: if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } case 5: if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } if ok, err1 := soGreatEqual(vals[4], cfg.Data5); !ok { - err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type) + err = errors.WithMessagef(err1, "id: %v type:%v vals:%v", cfg.Id, cfg.Type, vals) return } default: diff --git a/modules/rtask/model_rtask.go b/modules/rtask/model_rtask.go index 3e9b1669a..203b9f9ec 100644 --- a/modules/rtask/model_rtask.go +++ b/modules/rtask/model_rtask.go @@ -75,17 +75,21 @@ func (this *ModelRtask) checkHandle(uid string, frtaskIds []int32, conf *cfg.Gam // 确定选项前的校验 func (this *ModelRtask) checkCondi(uid string, condiId int32) (err error, ok bool) { if condiId == 0 { - return nil, true + return errors.New("condiId is nil"), true } //验证限定条件 var condi *rtaskCondi - if condi, ok = this.moduleRtask.handleMap[condiId]; ok { - if condi.verify != nil { - if ok, err = condi.verify(uid, condi.cfg); !ok { - err = errors.WithMessagef(err, "uid: %v do rtask %v condition not reach", uid, condiId) - return - } - } + if condi, ok = this.moduleRtask.handleMap[condiId]; !ok { + errors.Errorf("condiID: %v handle no found", condiId) + return + } + if condi.verify == nil { + errors.Errorf("condiID: %v", condiId) + return + } + if ok, err = condi.verify(uid, condi.cfg); !ok { + err = errors.WithMessagef(err, "uid: %v do rtask [condiId:%v] condition not reach", uid, condiId) + return } return }