package viking import ( "go_dreamfactory/comm" "go_dreamfactory/pb" ) //参数校验 func (this *apiComp) RankListCheck(session comm.IUserSession, req *pb.VikingRankListReq) (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.VikingRankListReq) (errdata *pb.ErrorData) { var ( fRank []*pb.DBVikingRank uids []string err error ranks []*pb.DBVikingRecord players []*pb.DBVikingRank ) 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.DBVikingRank, len(ranks)) for i, v := range ranks { players[i] = &pb.DBVikingRank{ 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], } } // 获取好友数据 uids = this.module.ModuleFriend.GetFriendList(session.GetUserId()) 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 } fRank = make([]*pb.DBVikingRank, len(ranks)) for i, v := range ranks { fRank[i] = &pb.DBVikingRank{ 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()), VikingRankListResp, &pb.VikingRankListResp{ Ranks: players, Franks: fRank, }) return }