跨服排行榜展示问题

back_recharge
duhui 2021-07-30 15:37:33 +08:00
parent ec519b4fb9
commit 7b032b0181
3 changed files with 16 additions and 5 deletions

View File

@ -210,7 +210,7 @@ public class RankLogic {
CommonProto.UserRank.Builder first;
int group = GlobleSystemLogic.getInstence().getCrossGroup();
if (RankContext.isCrossRank2(type) && group != -1){
first = rankEnum.getFirstByCross(String.valueOf(group));
first = rankEnum.getFirstByCross("");
}else {
first = rankEnum.getFirst(param);
}

View File

@ -82,7 +82,7 @@ public abstract class AbstractRank implements IRank {
}
PlayerInfoProto.RankResponse.Builder allUserResponse = getAllUserResponse(scores,start);
//当前用户信息
getMyInfo(user,rkey,allUserResponse);
getCrossMyInfo(user,rkey,allUserResponse);
return allUserResponse.build();
}
@ -176,13 +176,13 @@ public abstract class AbstractRank implements IRank {
* @throws Exception
*/
public CommonProto.UserRank.Builder getFirstByCross(String rKey) throws Exception {
Set<ZSetOperations.TypedTuple<String>> rankByKey = RedisUtil.getInstence().getZsetreverseRangeWithScores(redisKey,rKey, 0, 0, false);
Set<ZSetOperations.TypedTuple<String>> rankByKey =
RedisUtil.getInstence().getZsetreverseRangeWithScores(getCrossRedisKey(),rKey, 0, 0, false);
CommonProto.UserRank.Builder builder = CommonProto.UserRank.newBuilder();
if(rankByKey.size()!=1){
return builder;
}
ZSetOperations.TypedTuple<String> data = rankByKey.iterator().next();
LOGGER.info("有问题的ArenaId{}",Integer.parseInt(data.getValue()));
User everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true);
if (everyUser == null){
return builder;
@ -250,6 +250,16 @@ public abstract class AbstractRank implements IRank {
allUserResponse.setMyRankInfo(towerRankInfo);
}
protected void getCrossMyInfo(User user,String rkey,PlayerInfoProto.RankResponse.Builder allUserResponse){
int myRank= RedisUtil.getInstence().getZSetreverseRank(getCrossRedisKey(),rkey,Integer.toString(user.getId())).intValue();
Double zSetScore = RedisUtil.getInstence().getZSetScore(getCrossRedisKey(), rkey, Integer.toString(user.getId()));
CommonProto.RankInfo towerRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(myRank)
.setParam1(getParam1(zSetScore))
.setParam2(getParam2(zSetScore)).build();
allUserResponse.setMyRankInfo(towerRankInfo);
}
/**
* Redis
* @param score

View File

@ -75,7 +75,8 @@ public class CrossGuildForceRank extends GuildForceRank {
@Override
public CommonProto.UserRank.Builder getFirstByCross(String rKey) throws UnknownHostException {
Set<ZSetOperations.TypedTuple<String>> rankByKey = RedisUtil.getInstence().getZsetreverseRangeWithScores(redisKey,rKey, 0, 0, false);
Set<ZSetOperations.TypedTuple<String>> rankByKey =
RedisUtil.getInstence().getZsetreverseRangeWithScores(getCrossRedisKey(),rKey, 0, 0, false);
CommonProto.UserRank.Builder builder = CommonProto.UserRank.newBuilder();
if(rankByKey.size()!=1){
return builder;