diff --git a/comm/imodule.go b/comm/imodule.go index 31e714a3d..e2037a266 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -542,5 +542,6 @@ type ( IBuriedUpdateNotify IOpenCmdNotice AcceptCaravanTask(session IUserSession, groupId int32) (tid, groud int32, errdata *pb.ErrorData) + ClearCaravanTask(session IUserSession, task int32) } ) diff --git a/modules/wtask/module.go b/modules/wtask/module.go index fda2854b2..3630c0f30 100644 --- a/modules/wtask/module.go +++ b/modules/wtask/module.go @@ -248,6 +248,34 @@ func (this *WTask) AcceptCaravanTask(session comm.IUserSession, groupId int32) ( return } +// 清除商队任务 +func (this *WTask) ClearCaravanTask(session comm.IUserSession, task int32) { + var ( + wtask *pb.DBWTask + err error + change bool + ) + + if wtask, err = this.modelwtask.getUserWTasks(session.GetUserId()); err != nil { + this.Errorln(err) + return + } + for i, v := range wtask.Accepts { + if v == task { + wtask.Accepts = append(wtask.Accepts[0:i], wtask.Accepts[i+1:]...) + change = true + } + } + + if change { + this.pushtaskprogress(session, wtask, true) + if err = this.modelwtask.updateUserWTasks(session.GetUserId(), wtask); err != nil { + this.Errorln(err) + return + } + } +} + // 校验任务进度 func (this *WTask) pushtaskprogress(session comm.IUserSession, wtask *pb.DBWTask, ispush bool) (progress []*pb.DBWTaskItem, errdata *pb.ErrorData) { var (