update
This commit is contained in:
parent
158ac69b08
commit
5acf0521c4
@ -214,7 +214,7 @@ type (
|
|||||||
//任务触发
|
//任务触发
|
||||||
SendToRtask(session IUserSession, rtaskType TaskType, params ...int32) (code pb.ErrorCode)
|
SendToRtask(session IUserSession, rtaskType TaskType, params ...int32) (code pb.ErrorCode)
|
||||||
//任务批量触发
|
//任务批量触发
|
||||||
TriggerTask(uid string, taskParams ...TaskParam) (code pb.ErrorCode)
|
TriggerTask(uid string, taskParams ...*TaskParam)
|
||||||
// 获取任务条件记录
|
// 获取任务条件记录
|
||||||
GetCondiData(uid string) *pb.DBRtaskRecord
|
GetCondiData(uid string) *pb.DBRtaskRecord
|
||||||
}
|
}
|
||||||
|
@ -218,8 +218,7 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *ModuleRtask) processOneTask(session comm.IUserSession, rtaskType comm.TaskType, params ...int32) (code pb.ErrorCode) {
|
func (this *ModuleRtask) processOneTask(uid string, rtaskType comm.TaskType, params ...int32) (code pb.ErrorCode) {
|
||||||
uid := session.GetUserId()
|
|
||||||
var condis []*rtaskCondi
|
var condis []*rtaskCondi
|
||||||
for _, codiConf := range this.configure.getRtaskCondis(int32(rtaskType)) {
|
for _, codiConf := range this.configure.getRtaskCondis(int32(rtaskType)) {
|
||||||
v, ok := this.handleMap[codiConf.Id]
|
v, ok := this.handleMap[codiConf.Id]
|
||||||
@ -245,6 +244,7 @@ func (this *ModuleRtask) processOneTask(session comm.IUserSession, rtaskType com
|
|||||||
condis = append(condis, v)
|
condis = append(condis, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
session, _ := this.GetUserSession(uid)
|
||||||
|
|
||||||
// update
|
// update
|
||||||
for _, v := range condis {
|
for _, v := range condis {
|
||||||
@ -262,7 +262,82 @@ func (this *ModuleRtask) processOneTask(session comm.IUserSession, rtaskType com
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//任务完成则推送
|
||||||
|
if code := this.CheckCondi(uid, conf.Id); code == pb.ErrorCode_Success {
|
||||||
|
module, err := this.service.GetModule(comm.ModuleWorldtask)
|
||||||
|
if err == nil {
|
||||||
|
go func() {
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
log.Errorf("[worldtask ] err:%v ", r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
if worldtask, ok := module.(comm.IWorldtask); ok {
|
||||||
|
if err := worldtask.TaskcondNotify(session, conf.Id); err != nil {
|
||||||
|
var customErr = new(comm.CustomError)
|
||||||
|
if errors.As(err, &customErr) {
|
||||||
|
notifyErr := &pb.NotifyErrorNotifyPush{
|
||||||
|
ReqMainType: string(comm.ModuleWorldtask),
|
||||||
|
ReqSubType: "finish",
|
||||||
|
Message: "",
|
||||||
|
}
|
||||||
|
|
||||||
|
if customErr.Code == pb.ErrorCode_WorldtaskLvNotEnough {
|
||||||
|
notifyErr.Code = pb.ErrorCode_WorldtaskLvNotEnough
|
||||||
|
session.SendMsg(string(comm.ModuleWorldtask), "finish", notifyErr)
|
||||||
|
} else if customErr.Code == pb.ErrorCode_UserSessionNobeing {
|
||||||
|
notifyErr.Code = pb.ErrorCode_UserSessionNobeing
|
||||||
|
session.SendMsg(string(comm.ModuleWorldtask), "finish", notifyErr)
|
||||||
|
} else {
|
||||||
|
log.Error("任务条件达成通知",
|
||||||
|
log.Field{Key: "uid", Value: uid},
|
||||||
|
log.Field{Key: "condId", Value: conf.Id},
|
||||||
|
log.Field{Key: "err", Value: err.Error()},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
userModule, err := this.service.GetModule(comm.ModuleUser)
|
||||||
|
if err == nil {
|
||||||
|
go func() {
|
||||||
|
defer func() { //程序异常 收集异常信息传递给前端显示
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
log.Errorf("[sociatytask ] err:%v ", r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
// 公会
|
||||||
|
if user, ok := userModule.(comm.IUser); ok {
|
||||||
|
ex, err := user.GetUserExpand(session.GetUserId())
|
||||||
|
if err == nil && ex.SociatyId != "" {
|
||||||
|
sociatyModule, err := this.service.GetModule(comm.ModuleSociaty)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if sociaty, ok := sociatyModule.(comm.ISociaty); ok {
|
||||||
|
if err2 := sociaty.TaskcondNotify(uid, ex.SociatyId, conf.Id); err2 != nil {
|
||||||
|
log.Error("公会任务条件达成通知",
|
||||||
|
log.Field{Key: "uid", Value: uid},
|
||||||
|
log.Field{Key: "sociatyId", Value: ex.SociatyId},
|
||||||
|
log.Field{Key: "condId", Value: conf.Id},
|
||||||
|
log.Field{Key: "err", Value: err2.Error()},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if module, err := this.service.GetModule(comm.ModuleRtask); err == nil {
|
||||||
|
if iRtask, ok := module.(comm.IRtask); ok {
|
||||||
|
iRtask.SendToRtask(session, comm.Rtype156, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
@ -414,7 +489,7 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *ModuleRtask) TriggerTask(uid string, taskParams ...comm.TaskParam) (code pb.ErrorCode) {
|
func (this *ModuleRtask) TriggerTask(uid string, taskParams ...*comm.TaskParam) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user