package dailytask import ( "fmt" "go_dreamfactory/comm" "go_dreamfactory/pb" ) // 参数校验 func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.DailytaskInfoReq) (errdata *pb.ErrorData) { return } // /获取自己的排行榜信息 func (this *apiComp) Info(session comm.IUserSession, req *pb.DailytaskInfoReq) (errdata *pb.ErrorData) { var ( dtask *pb.DBDailytask tasks []int32 progress []*pb.DBWTaskItem progressMap map[int32]*pb.DBWTaskItem = make(map[int32]*pb.DBWTaskItem) TaskProgress []*pb.DBDailytaskGroupProgress ok bool err error ) if errdata = this.InfoCheck(session, req); errdata != nil { return } if dtask, err = this.module.modelDailytask.getUserDTasks(session.GetUserId()); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } for _, v := range dtask.Groups { tasks = append(tasks, v.Tasks...) } if progress, errdata = this.module.wtask.InquireTaskProgress(session, tasks...); err != nil { return } for _, v := range progress { progressMap[v.Tid] = v } TaskProgress = make([]*pb.DBDailytaskGroupProgress, 0) for _, v := range dtask.Groups { pg := &pb.DBDailytaskGroupProgress{Group: v.Group, Tasks: make([]*pb.DBWTaskItem, 0)} for _, v := range v.Tasks { if _, ok = progressMap[v]; ok { pg.Tasks = append(pg.Tasks, progressMap[v]) } else { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: fmt.Sprintf("on found task:%d", v), } return } } TaskProgress = append(TaskProgress, pg) } session.SendMsg(string(this.module.GetType()), "info", &pb.DailytaskInfoResp{Task: TaskProgress}) return }