diff --git a/modules/sociaty/api_cross_mine.go b/modules/sociaty/api_cross_mine.go index 197461d85..f00602ddd 100644 --- a/modules/sociaty/api_cross_mine.go +++ b/modules/sociaty/api_cross_mine.go @@ -30,8 +30,8 @@ func (this *apiComp) Mine(session comm.IUserSession, req *pb.SociatyMineReq) (er // 未加入公会 if userEx.SociatyId == "" { errdata = &pb.ErrorData{ - Code: pb.ErrorCode_SociatyNoAdded, - Title: pb.ErrorCode_SociatyNoAdded.ToString(), + Code: pb.ErrorCode_SociatyNoAdded, + Title: pb.ErrorCode_SociatyNoAdded.ToString(), } return } @@ -54,7 +54,7 @@ func (this *apiComp) Mine(session comm.IUserSession, req *pb.SociatyMineReq) (er } // 初始玩家公会任务 - sociatyTask := this.module.modelSociatyTask.getUserTask(uid, sociaty.Id) + sociatyTask, _ := this.module.modelSociatyTask.getUserTask(uid, sociaty.Id) if sociatyTask.SociatyId != "" { // 今日首次进入公会 if utils.IsFirstTody(sociatyTask.LastUpdateTime) { diff --git a/modules/sociaty/api_cross_receive.go b/modules/sociaty/api_cross_receive.go index b9a92c224..d71d8f757 100644 --- a/modules/sociaty/api_cross_receive.go +++ b/modules/sociaty/api_cross_receive.go @@ -31,7 +31,7 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.SociatyReceiveRe return } - sociatyTask := this.module.modelSociatyTask.getUserTask(uid, sociaty.Id) + sociatyTask, _ := this.module.modelSociatyTask.getUserTask(uid, sociaty.Id) for _, v := range sociatyTask.TaskList { if v.TaskId == req.TaskId { if v.Status != 1 { diff --git a/modules/sociaty/api_cross_tasklist.go b/modules/sociaty/api_cross_tasklist.go index 7a9d288a5..1663025ac 100644 --- a/modules/sociaty/api_cross_tasklist.go +++ b/modules/sociaty/api_cross_tasklist.go @@ -13,61 +13,72 @@ func (this *apiComp) TaskListCheck(session comm.IUserSession, req *pb.SociatyTas } func (this *apiComp) TaskList(session comm.IUserSession, req *pb.SociatyTaskListReq) (errdata *pb.ErrorData) { - uid := session.GetUserId() + var ( + sociatyTask *pb.DBSociatyTask + condis []*pb.ConIProgress + condisMap map[int32]*pb.ConIProgress = make(map[int32]*pb.ConIProgress) + comid *pb.ConIProgress + ok bool + tasklist []int32 + err error + ) - sociaty := this.module.modelSociaty.getUserSociaty(uid) + sociaty := this.module.modelSociaty.getUserSociaty(session.GetUserId()) if sociaty == nil { - this.module.Error("当前玩家所在的公会未找到", log.Field{Key: "uid", Value: uid}) + this.module.Error("当前玩家所在的公会未找到", log.Field{Key: "uid", Value: session.GetUserId()}) return } - rsp := &pb.SociatyTaskListResp{} - sociatyTask := this.module.modelSociatyTask.getUserTask(uid, sociaty.Id) - if sociatyTask.SociatyId != "" { - var taskList []*pb.SociatyTask - - for _, v := range sociatyTask.TaskList { - // if _, ok := this.module.modelSociaty.validTask(uid, v.TaskId); ok { - // status = 1 //完成 - // } - - conds, err := this.module.ModuleBuried.CheckCondition(uid, v.TaskId) - if err != nil { - this.module.Error(err.Error()) - continue - } - - for _, cond := range conds { - v.Cond = cond - if cond.State == pb.BuriedItemFinishState_buried_finish { - v.Status = 1 - } - } - - taskList = append(taskList, &pb.SociatyTask{ - TaskId: v.TaskId, - Status: v.Status, - Received: v.Received, - Cond: v.Cond, - }) + if sociatyTask, err = this.module.modelSociatyTask.getUserTask(session.GetUserId(), sociaty.Id); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), } - rsp.List = taskList + return + } + for _, v := range sociatyTask.TaskList { + if v.Status == 0 { + tasklist = append(tasklist, v.TaskId) + } + } + condis, err = this.module.ModuleBuried.CheckCondition(session.GetUserId(), tasklist...) + if err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ExternalModule, + Title: pb.ErrorCode_ExternalModule.ToString(), + Message: err.Error(), + } + return + } + for _, v := range condis { + condisMap[v.Conid] = v + } - if err := this.module.modelSociatyTask.updateTaskList(sociaty.Id, uid, taskList); err != nil { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_DBError, - Title: pb.ErrorCode_DBError.ToString(), - Message: err.Error(), + for _, v := range sociatyTask.TaskList { + if comid, ok = condisMap[v.TaskId]; ok { + v.Cond = comid + if comid.State == pb.BuriedItemFinishState_buried_finish { + v.Status = 1 } - - this.module.Error("更新公会任务列表失败", - log.Field{Key: "uid", Value: uid}, - log.Field{Key: "sociatyId", Value: sociaty.Id}, - log.Field{Key: "err", Value: err.Error()}) } } - session.SendMsg(string(this.module.GetType()), SociatySubTypeTasklist, rsp) + if err := this.module.modelSociatyTask.updateTaskList(sociaty.Id, session.GetUserId(), sociatyTask.TaskList); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + + this.module.Error("更新公会任务列表失败", + log.Field{Key: "uid", Value: session.GetUserId()}, + log.Field{Key: "sociatyId", Value: sociaty.Id}, + log.Field{Key: "err", Value: err.Error()}) + } + // } + + session.SendMsg(string(this.module.GetType()), SociatySubTypeTasklist, &pb.SociatyTaskListResp{List: sociatyTask.TaskList}) return } diff --git a/modules/sociaty/model_sociatytask.go b/modules/sociaty/model_sociatytask.go index 431663f53..2e40ed6b1 100644 --- a/modules/sociaty/model_sociatytask.go +++ b/modules/sociaty/model_sociatytask.go @@ -65,9 +65,9 @@ func (this *ModelSociatyTask) initSociatyTask(uid, sociatyId string) error { } // 公会任务列表 -func (this *ModelSociatyTask) getUserTask(uid, sociatyId string) (task *pb.DBSociatyTask) { +func (this *ModelSociatyTask) getUserTask(uid, sociatyId string) (task *pb.DBSociatyTask, err error) { task = &pb.DBSociatyTask{} - this.GetListObj(sociatyId, uid, task) + err = this.GetListObj(sociatyId, uid, task) return } diff --git a/modules/sociaty/module.go b/modules/sociaty/module.go index 6cda06bb8..34070c657 100644 --- a/modules/sociaty/module.go +++ b/modules/sociaty/module.go @@ -339,8 +339,8 @@ func (this *Sociaty) RpcUpdateUserTask(ctx context.Context, p *TaskParams, reply } func (this *Sociaty) RpcGetUserTask(ctx context.Context, p *pb.RPCGeneralReqA2, reply *pb.DBSociatyTask) error { - dt := this.modelSociatyTask.getUserTask(p.Param2, p.Param1) - if dt == nil { + dt, err := this.modelSociatyTask.getUserTask(p.Param2, p.Param1) + if err != nil { return errors.New("not found") } reply.Uid = dt.Uid