更新任务接口

This commit is contained in:
wh_zcy 2023-05-29 18:11:51 +08:00
parent b3e16d641e
commit 53387bbd0b
5 changed files with 94 additions and 64 deletions

View File

@ -4,6 +4,7 @@ import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/pb"
"go_dreamfactory/utils"
)
// 任务接取
@ -87,9 +88,10 @@ func (a *apiComp) Accept(session comm.IUserSession, req *pb.WorldtaskAcceptReq)
} else {
// 已完成的任务条件
rsp.CondiIds = a.module.ModuleBuried.CheckCondition(uid, curTaskConf.Completetask...)
a.module.ModuleBuried.ActiveCondition(uid, utils.NoContain(rsp.CondiIds, curTaskConf.Completetask)...)
}
a.sendMsg(session, WorldtaskSubtypeAccept, rsp)
a.module.ModuleBuried.ActiveCondition(uid, curTaskConf.Completetask...)
return
}

View File

@ -2,9 +2,7 @@ package worldtask
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/pb"
"go_dreamfactory/utils"
)
// 任务完成条件
@ -43,28 +41,32 @@ func (this *apiComp) CompleteCondi(session comm.IUserSession, req *pb.WorldtaskC
myWorldtask.Uid = uid
wt := myWorldtask.CurrentTask[req.GroupId]
if m, err := this.module.service.GetModule(comm.ModuleRtask); err == nil {
iwt, ok := m.(comm.IRtask)
if ok {
if code = iwt.CheckCondi(uid, req.CondiId); code != pb.ErrorCode_Success {
rsp.Code = code
rsp.CondiId = req.CondiId
rsp.TaskId = req.TaskId
this.module.Debug("任务完成条件不满足",
log.Field{Key: "uid", Value: uid},
log.Field{Key: "taskId", Value: req.TaskId},
log.Field{Key: "condiId", Value: req.CondiId},
)
this.sendMsg(session, WorldtaskComplete, rsp)
return
}
if wt == nil {
wt = &pb.Worldtask{}
}
if _, b := utils.Findx(wt.CondiIds, req.CondiId); !b {
wt.CondiIds = append(wt.CondiIds, req.CondiId)
}
}
// if m, err := this.module.service.GetModule(comm.ModuleRtask); err == nil {
// iwt, ok := m.(comm.IRtask)
// if ok {
// if code = iwt.CheckCondi(uid, req.CondiId); code != pb.ErrorCode_Success {
// rsp.Code = code
// rsp.CondiId = req.CondiId
// rsp.TaskId = req.TaskId
// this.module.Debug("任务完成条件不满足",
// log.Field{Key: "uid", Value: uid},
// log.Field{Key: "taskId", Value: req.TaskId},
// log.Field{Key: "condiId", Value: req.CondiId},
// )
// this.sendMsg(session, WorldtaskComplete, rsp)
// return
// }
// if wt == nil {
// wt = &pb.Worldtask{}
// }
// if _, b := utils.Findx(wt.CondiIds, req.CondiId); !b {
// wt.CondiIds = append(wt.CondiIds, req.CondiId)
// }
// }
// }
condIds := this.module.ModuleBuried.CheckCondition(uid, req.CondiId)
if len(condIds) > 0 {
wt.CondiIds = append(wt.CondiIds, condIds...)
}
myWorldtask.CurrentTask[req.GroupId] = wt

View File

@ -95,7 +95,9 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe
condiFlag bool
)
for _, condId := range curTaskConf.Completetask {
if this.module.modelWorldtask.checkCondi(uid, condId) {
conIds := this.module.ModuleBuried.CheckCondition(uid, condId)
// if this.module.modelWorldtask.checkCondi(uid, condId) {
if len(conIds) > 0 {
condiFlag = true
} else {
condiFlag = false
@ -194,28 +196,33 @@ func (this *apiComp) updateCheckCond(uid string, userTask *pb.DBWorldtask, nextT
TaskType: nextTaskConf.Des,
}
}
if m, err := this.module.service.GetModule(comm.ModuleRtask); err == nil {
iwt, ok := m.(comm.IRtask)
if ok {
if mc := iwt.CheckCondi(uid, condiId); mc != pb.ErrorCode_Success {
this.module.Debug("任务完成条件不满足",
log.Field{Key: "uid", Value: uid},
log.Field{Key: "taskId", Value: nextTaskId},
log.Field{Key: "condiId", Value: condiId},
)
} else {
if ok {
nwt.CondiIds = append(nwt.CondiIds, condiId)
} else {
condiIds := []int32{condiId}
nwt.CondiIds = condiIds
}
}
}
}
// if m, err := this.module.service.GetModule(comm.ModuleRtask); err == nil {
// iwt, ok := m.(comm.IRtask)
// if ok {
// if mc := iwt.CheckCondi(uid, condiId); mc != pb.ErrorCode_Success {
// this.module.Debug("任务完成条件不满足",
// log.Field{Key: "uid", Value: uid},
// log.Field{Key: "taskId", Value: nextTaskId},
// log.Field{Key: "condiId", Value: condiId},
// )
// } else {
// if ok {
// nwt.CondiIds = append(nwt.CondiIds, condiId)
// } else {
// condiIds := []int32{condiId}
// nwt.CondiIds = condiIds
// }
// }
// }
// }
condIds := this.module.ModuleBuried.CheckCondition(uid, condiId)
if len(condIds) > 0 {
nwt.CondiIds = condIds
userTask.CurrentTask[nextTaskConf.Group] = nwt
update["currentTask"] = userTask.CurrentTask
}
}
}
if len(update) > 0 {

View File

@ -208,24 +208,30 @@ func (this *ModelWorldtask) updateCheckCond(uid string, userLv int32, userTask *
TaskType: nextTaskConf.Des,
}
}
if m, err := this.service.GetModule(comm.ModuleRtask); err == nil {
iwt, ok := m.(comm.IRtask)
if ok {
if mc := iwt.CheckCondi(uid, condiId); mc != pb.ErrorCode_Success {
this.moduleWorldtask.Debug("任务完成条件不满足",
log.Field{Key: "uid", Value: uid},
log.Field{Key: "taskId", Value: nextTaskId},
log.Field{Key: "condiId", Value: condiId},
)
} else {
if ok {
nwt.CondiIds = append(nwt.CondiIds, condiId)
} else {
condiIds := []int32{condiId}
nwt.CondiIds = condiIds
}
}
}
// if m, err := this.service.GetModule(comm.ModuleRtask); err == nil {
// iwt, ok := m.(comm.IRtask)
// if ok {
// if mc := iwt.CheckCondi(uid, condiId); mc != pb.ErrorCode_Success {
// this.moduleWorldtask.Debug("任务完成条件不满足",
// log.Field{Key: "uid", Value: uid},
// log.Field{Key: "taskId", Value: nextTaskId},
// log.Field{Key: "condiId", Value: condiId},
// )
// } else {
// if ok {
// nwt.CondiIds = append(nwt.CondiIds, condiId)
// } else {
// condiIds := []int32{condiId}
// nwt.CondiIds = condiIds
// }
// }
// }
// }
condIds := this.moduleWorldtask.ModuleBuried.CheckCondition(uid, condiId)
if len(condIds) > 0 {
nwt.CondiIds = condIds
userTask.CurrentTask[nextTaskConf.Group] = nwt
update["currentTask"] = userTask.CurrentTask
}
userTask.CurrentTask[nextTaskConf.Group] = nwt
update["currentTask"] = userTask.CurrentTask

View File

@ -27,3 +27,16 @@ func RemoveDuplicate(arr []int32) []int32 {
}
return result
}
func NoContain(exist, all []int32) (contain []int32) {
existMap := make(map[int32]bool)
for _, b := range exist {
existMap[b] = true
}
for _, a := range all {
if !existMap[a] {
contain = append(contain, a)
}
}
return
}