From 3f5c8b6277dbae9cd29d14bf0d7b60f9bee1281f Mon Sep 17 00:00:00 2001 From: wh_zcy Date: Mon, 5 Dec 2022 11:36:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=BB=E5=8A=A1=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/rtask/model_rtask.go | 7 +++++- modules/rtask/module.go | 45 +++++++++++++++--------------------- 2 files changed, 24 insertions(+), 28 deletions(-) diff --git a/modules/rtask/model_rtask.go b/modules/rtask/model_rtask.go index 422ebf0ef..7b9be748b 100644 --- a/modules/rtask/model_rtask.go +++ b/modules/rtask/model_rtask.go @@ -87,7 +87,12 @@ func (this *ModelRtask) checkCondi(uid string, condiId int32) (err error, ok boo errors.Errorf("condiID: %v", condiId) return } - if ok, err = condi.verify(uid, condi.cfg); !ok { + conf, err:= this.moduleRtask.configure.getRtaskTypeById(condiId) + if err!= nil { + errors.Errorf("conf not found condiID: %v", condiId) + return + } + if ok, err = condi.verify(uid, conf); !ok { err = errors.WithMessagef(err, "uid: %v do rtask [condiId:%v] condition not reach", uid, condiId) return } diff --git a/modules/rtask/module.go b/modules/rtask/module.go index e0f448dca..8922e9259 100644 --- a/modules/rtask/module.go +++ b/modules/rtask/module.go @@ -23,7 +23,7 @@ var _ comm.IRtask = (*ModuleRtask)(nil) // 限定条件 type rtaskCondi struct { - cfg *cfg.GameRdtaskCondiData + condId int32 //任务条件配置ID verify verifyHandle //校验任务条件 find condiFindHandle //检索任务条件 update updateDataHandle //更新任务数据 @@ -93,77 +93,66 @@ func (this *ModuleRtask) initRtaskVerifyHandle() { switch comm.TaskType(typeCfg.Type) { case comm.Rtype1: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.equalFirstParam, verify: this.modelRtask.verfiyRtype1, update: this.modelRtaskRecord.overrideUpdate, }) case comm.Rtype2: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.equalFirstParam, verify: this.modelRtask.verifyRtype2, update: this.modelRtaskRecord.overrideUpdate, }) case comm.Rtype3: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.equalFirstParam, verify: this.modelRtask.verifyRtype3, update: this.modelRtaskRecord.overrideUpdate, }) case comm.Rtype4: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.equalFirstParam, verify: this.modelRtask.verifyRtype4, update: this.modelRtaskRecord.overrideUpdate, }) case comm.Rtype5: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.equalFirstParam, verify: this.modelRtask.verifyRtype5, update: this.modelRtaskRecord.overrideUpdate, }) case comm.Rtype6: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.equalFirstParam, verify: this.modelRtask.verifyRtype6, update: this.modelRtaskRecord.overrideUpdate, }) case comm.Rtype8: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.equalFirstParam, verify: this.modelRtask.verfiyRtype8, update: this.modelRtaskRecord.overrideUpdate, }) case comm.Rtype9: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.equalFirstParam, verify: this.modelRtask.verfiyRtype9, update: this.modelRtaskRecord.overrideUpdate, }) case comm.Rtype10: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.equalFirstParam, verify: this.modelRtask.verfiyRtype10, update: this.modelRtaskRecord.overrideUpdate, }) case comm.Rtype11, comm.Rtype84, comm.Rtype85: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.lessEqualFirstParam, verify: this.modelRtaskRecord.verifyFirstGreatEqualParam, update: this.modelRtaskRecord.overrideUpdate, }) case comm.Rtype18: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.greatEqualFirstParam, verify: this.modelRtaskRecord.verifyFirstGreatEqualParam, update: this.modelRtaskRecord.addUpdate, @@ -176,35 +165,30 @@ func (this *ModuleRtask) initRtaskVerifyHandle() { comm.Rtype62, comm.Rtype64, comm.Rtype69, comm.Rtype72, comm.Rtype88, comm.Rtype104, comm.Rtype96, comm.Rtype105, comm.Rtype128, comm.Rtype130, comm.Rtype131: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.lessEqualFirstParam, verify: this.modelRtaskRecord.verifyFirstGreatEqualParam, update: this.modelRtaskRecord.addUpdate, }) case comm.Rtype20: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.equalFirstParam, verify: this.modelRtask.verifyRtype20, update: this.modelRtaskRecord.overrideUpdate, }) case comm.Rtype22, comm.Rtype109: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.equalFirstParam, verify: this.modelRtaskRecord.verifyFirstEqualParam, update: this.modelRtaskRecord.overrideUpdate, }) case comm.Rtype63: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, verify: this.modelRtask.verifyRtype63, }) case comm.Rtype16, comm.Rtype17, comm.Rtype35, comm.Rtype44, comm.Rtype59, comm.Rtype61, comm.Rtype70: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.equalParams, verify: this.modelRtaskRecord.verifyFromDb, update: this.modelRtaskRecord.overrideUpdate, @@ -217,7 +201,6 @@ func (this *ModuleRtask) initRtaskVerifyHandle() { comm.Rtype52, comm.Rtype55, comm.Rtype56, comm.Rtype65, comm.Rtype66, comm.Rtype67, comm.Rtype68, comm.Rtype140: this.registerVerifyHandle(v.Id, &rtaskCondi{ - cfg: typeCfg, find: this.modelRtaskRecord.lessThanParams, verify: this.modelRtaskRecord.verifyFromDb, update: this.modelRtaskRecord.addUpdate, @@ -254,24 +237,25 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T condis []*rtaskCondi ) - for _, codi := range this.configure.getRtaskCondis(int32(rtaskType)) { - v, ok := this.handleMap[codi.Id] + for _, codiConf := range this.configure.getRtaskCondis(int32(rtaskType)) { + v, ok := this.handleMap[codiConf.Id] if !ok { - this.Warn("未注册事件处理器", log.Fields{"uid": uid, "condiId": codi.Id}) + this.Warn("未注册事件处理器", log.Fields{"uid": uid, "condiId": codiConf.Id}) code = pb.ErrorCode_RtaskCondiNoFound return } if v.find == nil { - this.Warn("未设置find Handle", log.Fields{"uid": uid, "condiId": codi.Id}) + this.Warn("未设置find Handle", log.Fields{"uid": uid, "condiId": codiConf.Id}) return } - if condiId, err = v.find(v.cfg, params...); condiId == 0 { + if condiId, err = v.find(codiConf, params...); condiId == 0 { if err != nil { this.Warnln(errors.WithMessage(err, uid).Error()) } } else { + v.condId = codiConf.Id condis = append(condis, v) } @@ -279,18 +263,25 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T // update for _, v := range condis { + conf, err:= this.configure.getRtaskTypeById(v.condId) + if err!= nil { + this.Errorln(err) + code = pb.ErrorCode_RtaskCondiNoFound + return + } + if v.update != nil { - if err := v.update(uid, v.cfg, params...); err != nil { + if err := v.update(uid, conf, params...); err != nil { code = pb.ErrorCode_DBError } } //任务完成则推送 - if code := this.CheckCondi(uid, v.cfg.Id); code == pb.ErrorCode_Success { + if code := this.CheckCondi(uid, conf.Id); code == pb.ErrorCode_Success { module, err := this.service.GetModule(comm.ModuleWorldtask) if err == nil { if worldtask, ok := module.(comm.IWorldtask); ok { - if err := worldtask.TaskcondNotify(session, v.cfg.Id); err != nil { + if err := worldtask.TaskcondNotify(session, conf.Id); err != nil { var customErr = new(comm.CustomError) if errors.As(err, &customErr) { notifyErr := &pb.NotifyErrorNotifyPush{ @@ -306,7 +297,7 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T notifyErr.Code = pb.ErrorCode_UserSessionNobeing session.SendMsg(string(comm.ModuleWorldtask), "finish", notifyErr) } else { - log.Error("任务条件达成通知", log.Fields{"uid": uid, "condId": v.cfg.Id, "err": err.Error()}) + log.Error("任务条件达成通知", log.Fields{"uid": uid, "condId": conf.Id, "err": err.Error()}) } } }