package hunting import ( "go_dreamfactory/comm" "go_dreamfactory/pb" ) //参数校验 func (this *apiComp) RankListCheck(session comm.IUserSession, req *pb.HuntingRankListReq) (errdata *pb.ErrorData) { if req.BoosType == 0 { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), } } return } func (this *apiComp) RankList(session comm.IUserSession, req *pb.HuntingRankListReq) (errdata *pb.ErrorData) { var ( fRank []*pb.DBHuntingRank uids []string err error ranks []*pb.DBHuntingRecord players []*pb.DBHuntingRank ) if errdata = this.RankListCheck(session, req); errdata != nil { return // 参数校验失败直接返回 } if uids, err = this.module.modulerank.querySRankUser(int(req.BoosType)); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } if ranks, err = this.module.modulerank.queryPlayers(uids); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } players = make([]*pb.DBHuntingRank, len(ranks)) for i, v := range ranks { players[i] = &pb.DBHuntingRank{ Uinfo: v.Uinfo, Line: v.Data[req.BoosType].Line[v.Data[req.BoosType].Maxnandu], Difficulty: v.Data[req.BoosType].Maxnandu, Bosstype: req.BoosType, Costtime: v.Data[req.BoosType].Costime[v.Data[req.BoosType].Maxnandu], } } session.SendMsg(string(this.module.GetType()), HuntingRankListResp, &pb.HuntingRankListResp{ Ranks: players, Franks: fRank, }) return }