package enchant import ( "go_dreamfactory/comm" "go_dreamfactory/pb" ) //参数校验 func (this *apiComp) RankListCheck(session comm.IUserSession, req *pb.EnchantRankListReq) (errdata *pb.ErrorData) { return } func (this *apiComp) RankList(session comm.IUserSession, req *pb.EnchantRankListReq) (errdata *pb.ErrorData) { var ( uids []string ranks []*pb.DBEnchantRecord friends []*pb.DBEnchantRecord ranksmap map[string]*pb.DBEnchantRank frank []*pb.DBEnchantRank err error ) if errdata = this.RankListCheck(session, req); errdata != nil { return } if uids, err = this.module.modelRank.queryRankUser(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.modelRank.queryPlayers(uids); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } ranksmap = make(map[string]*pb.DBEnchantRank) for _, v := range ranks { ranksmap[v.Uid] = v.Data[req.BoosType] } players := make([]*pb.DBEnchantRank, 0, len(uids)) for _, v := range uids { if player, ok := ranksmap[v]; ok { players = append(players, player) } } // // 获取好友 fids := this.module.ModuleFriend.GetFriendList(session.GetUserId()) if friends, err = this.module.modelRank.queryPlayers(fids); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), Message: err.Error(), } return } for _, v := range friends { if v.Data != nil && v.Data[req.BoosType] != nil { frank = append(frank, v.Data[req.BoosType]) } } session.SendMsg(string(this.module.GetType()), "ranklist", &pb.EnchantRankListResp{ Ranks: players, Friends: frank, }) return }