From a4458a65dfb6d6e195c5ccd320f8a13f912dce5a Mon Sep 17 00:00:00 2001 From: wh_zcy Date: Fri, 11 Nov 2022 17:56:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=98=E6=96=97=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/worldtask/api_finish.go | 37 ++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/modules/worldtask/api_finish.go b/modules/worldtask/api_finish.go index 7d4ca7947..787c64f31 100644 --- a/modules/worldtask/api_finish.go +++ b/modules/worldtask/api_finish.go @@ -72,23 +72,30 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe } } - if curTaskConf.Completetask != 0 { - if code = this.module.ModuleRtask.CheckCondi(uid, curTaskConf.Completetask); code != pb.ErrorCode_Success { - code = pb.ErrorCode_WorldtaskNoComplete - this.module.Debugf("任务条件:%v 未完成", curTaskConf.Completetask) + var nextTaskId int32 + + finishCall := func() { + nextTaskId = curTaskConf.IdAfter + // 完成任务 + if err := this.module.modelWorldtask.finishTask(req.GroupId, req.TaskId, userTask); err != nil { + code = pb.ErrorCode_WorldtaskFinish return } + // 发奖 + if code = this.module.DispenseRes(session, curTaskConf.Reword, true); code != pb.ErrorCode_Success { + this.module.Errorf("资源发放失败 err:%v", err) + } } - // 完成任务 - if err := this.module.modelWorldtask.finishTask(req.GroupId, req.TaskId, userTask); err != nil { - code = pb.ErrorCode_WorldtaskFinish - return - } - - // 发奖 - if code = this.module.DispenseRes(session, curTaskConf.Reword, true); code != pb.ErrorCode_Success { - this.module.Errorf("资源发放失败 err:%v", err) + if curTaskConf.Completetask != 0 { + if c := this.module.ModuleRtask.CheckCondi(uid, curTaskConf.Completetask); c == pb.ErrorCode_Success { + // code = pb.ErrorCode_WorldtaskNoComplete + // this.module.Debugf("任务条件:%v 未完成", curTaskConf.Completetask) + // return + finishCall() + } + } else { + finishCall() } rsp := &pb.WorldtaskFinishResp{ @@ -102,10 +109,10 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe // 任务完成推送 if err := session.SendMsg(string(this.module.GetType()), WorldtaskNexttaskPush, &pb.WorldtaskNexttaskPush{ - NextTaskId: curTaskConf.IdAfter, + NextTaskId: nextTaskId, }); err != nil { code = pb.ErrorCode_SystemError } - + return }