批量处理任务的接口

This commit is contained in:
wh_zcy 2023-03-10 15:25:17 +08:00
parent ad94d3e83b
commit 74699cca78
2 changed files with 59 additions and 8 deletions

View File

@ -411,6 +411,11 @@ const (
type TaskType int32
type TaskParam struct {
TT TaskType
Params []int32
}
// 日常任务事件类型
const (
TaskTypeUpEquip TaskType = 101 //任意装备升级

View File

@ -218,6 +218,55 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
}
}
func (this *ModuleRtask) processOneTask(session comm.IUserSession, rtaskType comm.TaskType, params ...int32) (code pb.ErrorCode) {
uid := session.GetUserId()
var condis []*rtaskCondi
for _, codiConf := range this.configure.getRtaskCondis(int32(rtaskType)) {
v, ok := this.handleMap[codiConf.Id]
if !ok {
this.Warn("未注册事件处理器",
log.Field{Key: "uid", Value: uid},
log.Field{Key: "condiId", Value: codiConf.Id},
)
code = pb.ErrorCode_RtaskCondiNoFound
return
}
if v.find == nil {
this.Warn("未设置find Handle",
log.Field{Key: "uid", Value: uid},
log.Field{Key: "condiId", Value: codiConf.Id},
)
return
}
if condiId, _ := v.find(codiConf, params...); condiId != 0 {
v.condId = codiConf.Id
condis = append(condis, v)
}
}
// update
for _, v := range condis {
conf, err := this.configure.getRtaskTypeById(v.condId)
if err != nil {
log.Errorf("get condId conf err:%v", err)
code = pb.ErrorCode_RtaskCondiNoFound
return
}
if v.update != nil {
if err := v.update(uid, conf, params...); err != nil {
log.Errorf("update task:%v", err)
code = pb.ErrorCode_DBError
}
}
}
return
}
func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.TaskType, params ...int32) (code pb.ErrorCode) {
uid := session.GetUserId()
if this.IsCross() {
@ -240,8 +289,6 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T
// log.Field{Key: "params", Value: params},
// )
var (
// err error
// condiId int32
condis []*rtaskCondi
)
@ -265,14 +312,9 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T
}
if condiId, _ := 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)
}
}
// update
@ -371,6 +413,10 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T
return
}
func (this *ModuleRtask) TriggerTask(uid string, taskParams ...comm.TaskParam) (code pb.ErrorCode) {
return
}
// 任务条件校验
func (this *ModuleRtask) CheckCondi(uid string, condiId int32) (code pb.ErrorCode) {
if _, ok := this.modelRtask.checkCondi(uid, condiId); !ok {