go_dreamfactory/modules/worldtask/api_trigger.go
2023-06-12 18:38:15 +08:00

60 lines
1.6 KiB
Go

package worldtask
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
func (this *apiComp) TriggerCheck(session comm.IUserSession, req *pb.WorldtaskTriggerReq) (errdata *pb.ErrorData) {
if len(req.Params) < 1 {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(),
}
}
return
}
func (this *apiComp) Trigger(session comm.IUserSession, req *pb.WorldtaskTriggerReq) (errdata *pb.ErrorData) {
if errdata = this.TriggerCheck(session, req); errdata != nil {
return
}
rsp := &pb.WorldtaskTriggerResp{Flag: true, RtaskType: req.RtaskType}
// 校验
if req.CondiId != 0 {
condIds, err := this.module.ModuleBuried.CheckCondition(session.GetUserId(), req.CondiId)
if err == nil && len(condIds) > 0 {
rsp.Flag = true
}
// 触发
} else if req.RtaskType != 0 && len(req.Params) > 0 {
conds := []int32{}
switch len(req.Params) {
case 2:
conds = make([]int32, 1)
conds[0] = req.Params[1]
case 3:
conds = make([]int32, 2)
conds[0] = req.Params[1]
conds[1] = req.Params[2]
case 4:
conds = make([]int32, 3)
conds[0] = req.Params[1]
conds[1] = req.Params[2]
conds[2] = req.Params[3]
case 5:
conds = make([]int32, 4)
conds[0] = req.Params[1]
conds[1] = req.Params[2]
conds[2] = req.Params[3]
conds[3] = req.Params[4]
}
this.module.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.TaskType(req.RtaskType), req.Params[0], conds...))
rsp.Flag = true
}
session.SendMsg(string(this.module.GetType()), "trigger", rsp)
return
}