From 0c9f09b13c04d5e03ca7d44b99546acbe26fcf87 Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 28 Jul 2021 16:25:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E5=8D=81=E7=BB=9D=E9=98=B5?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/db/redis/RedisUtil.java | 2 +- .../java/com/ljsd/jieling/handler/RankHandler.java | 2 +- .../java/com/ljsd/jieling/logic/rank/RankEnum.java | 8 ++++---- .../java/com/ljsd/jieling/logic/rank/RankLogic.java | 7 +++---- .../jieling/logic/rank/rankImpl/AbstractRank.java | 13 ++++++++++++- .../jieling/logic/rank/rankImpl/CrossArenaRank.java | 5 +++++ .../rank/rankImpl/DeathPathEveryPersonRank.java | 1 + 7 files changed, 27 insertions(+), 11 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java index a19d96b3f..1768cf42e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java @@ -1289,7 +1289,7 @@ public class RedisUtil { } public String getKey(String type,String key,boolean judge){ - if (judge){ + if (!judge){ return type + RedisKey.Delimiter_colon + key; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/RankHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/RankHandler.java index 13f70c728..474ee19c5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/RankHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/RankHandler.java @@ -17,6 +17,6 @@ public class RankHandler extends BaseHandler { @Override public void processWithProto(ISession iSession, PlayerInfoProto.RankRequest proto) throws Exception { RankLogic.getInstance().getRank(iSession,proto.getType(),proto.getActiviteId(), - proto.getIndex(),MessageTypeProto.MessageType.GET_ONE_RANK_RESPONSE); + proto.getIndex(),proto.getIsCross(),MessageTypeProto.MessageType.GET_ONE_RANK_RESPONSE); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java index 921f27c2f..f1e126b18 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java @@ -24,10 +24,10 @@ public enum RankEnum { GUILD_RED_PACKAGE_RANK(13,RedisKey.GUILD_RED_PACKAGE_RANK,GuildRedPackageRank::new,false),//param1:红包总价格 param2:无 param3:无 CAR_DEALY_RANK(14,RedisKey.CAR_DEALY_RANK,CarDealyRank::new,false),//param1:伤害 param2:无 param3:无 CAR_DEALY_GUILD_RANK(19,RedisKey.CAR_DEALY_GUILD_RANK,CarDealyGuildRank::new,false),//param1:伤害 param2:无 param3:无 - DEATH_PATH_EVERY_PERSON_RANK(15,RedisKey.DEATH_PATH_EVERY_PERSON_RANK,DeathPathEveryPersonRank::new,false),//param1:当前阵玩家伤害 param2:无 param3:无 - DEATH_PATH_EVERY_GUILD_RANK(16,RedisKey.DEATH_PATH_EVERY_GUILD_RANK, DeathPathEveryGuildRank::new,false),//param1:当前阵公会伤害 param2:当前工会挑战人数 param3:无 - DEATH_PATH_TOTAL_PERSON_RANK(17,RedisKey.DEATH_PATH_TOTAL_PERSON_RANK,DeathPathTotalPersonRank::new,false),//param1:玩家总伤害 param2:无 param3:无 - DEATH_PATH_TOTAL_GUILD_RANK(18,RedisKey.DEATH_PATH_TOTAL_GUILD_RANK,DeathPathTotalGuildRank::new,false),//param1:工会总伤害 param2:无 param3:无 + DEATH_PATH_EVERY_PERSON_RANK(15,RedisKey.DEATH_PATH_EVERY_PERSON_RANK,DeathPathEveryPersonRank::new,true),//param1:当前阵玩家伤害 param2:无 param3:无 + DEATH_PATH_EVERY_GUILD_RANK(16,RedisKey.DEATH_PATH_EVERY_GUILD_RANK, DeathPathEveryGuildRank::new,true),//param1:当前阵公会伤害 param2:当前工会挑战人数 param3:无 + DEATH_PATH_TOTAL_PERSON_RANK(17,RedisKey.DEATH_PATH_TOTAL_PERSON_RANK,DeathPathTotalPersonRank::new,true),//param1:玩家总伤害 param2:无 param3:无 + DEATH_PATH_TOTAL_GUILD_RANK(18,RedisKey.DEATH_PATH_TOTAL_GUILD_RANK,DeathPathTotalGuildRank::new,true),//param1:工会总伤害 param2:无 param3:无 GUILD_FORCE_RANK(20,RedisKey.GUILD_FORCE_RANK,GuildForceRank::new,false),//param1:公会总战力 param2:无 param3:无 //达人排行榜 EXPERT_RANK(21,RedisKey.EXPERT_RANK,GoldRank::new,false),//param1:活动进度 param2:无 param3:无 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankLogic.java index 13372829a..dabe0589b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankLogic.java @@ -66,20 +66,19 @@ public class RankLogic { public static class Instance { public final static RankLogic instance = new RankLogic(); } - public void getRank(ISession session, int type, int activityId,int index,MessageTypeProto.MessageType messageType) throws Exception { + public void getRank(ISession session, int type, int activityId,int index,int isCross,MessageTypeProto.MessageType messageType) throws Exception { LOGGER.info("获取排行榜信息type={},activityId={}",type,activityId); - int page = 1; String rkey = ""; if(activityId != 0){ rkey = String.valueOf(activityId); } PlayerInfoProto.RankResponse rankResponse=null; AbstractRank rank = RankContext.getRankEnum(type); - if(RankContext.isCrossRank(type)){ + if(RankContext.isCrossRank(type) || isCross == 1){ //跨服 int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); if(crossGroup>0){ - rankResponse = rank.getRank(session.getUid(),String.valueOf(crossGroup),index/20+1, 20); + rankResponse = rank.getCrossRank(session.getUid(),String.valueOf(crossGroup),index/20+1, 20); } }else{ rankResponse = rank.getRank(session.getUid(),rkey,index/20+1, 20); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java index 35ed53fce..12bed3827 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java @@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.rank.rankImpl; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; +import com.ljsd.jieling.logic.GlobleSystemLogic; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.rank.IRank; @@ -36,7 +37,7 @@ public abstract class AbstractRank implements IRank { * @return 当前排行榜数据 * @throws Exception */ - public PlayerInfoProto.RankResponse getRank(int uid, String rkey, int page, int rankEndLine) throws Exception { + public PlayerInfoProto.RankResponse getRank(int uid, String rkey, int page, int rankEndLine) throws Exception { if(rankEndLine==-1){ rankEndLine = 100; } @@ -55,6 +56,16 @@ public abstract class AbstractRank implements IRank { return allUserResponse.build(); } + /** + * 跨服排行数据 + * @throws Exception + */ + public PlayerInfoProto.RankResponse getCrossRank(int uid, String rkey, int page, int rankEndLine) throws Exception { + int groupId = GlobleSystemLogic.getInstence().getCrossGroup(); + redisKey = RedisUtil.getInstence().getKey(String.valueOf(groupId),redisKey,false); + return getRank(uid,rkey,page,rankEndLine); + } + /** * 向排行榜添加或修改某条数据 * @param uid 修改用户id diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java index ab06fda14..71dcdc68d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java @@ -105,4 +105,9 @@ public class CrossArenaRank extends AbstractRank { e.printStackTrace(); } } + + @Override + public PlayerInfoProto.RankResponse getCrossRank(int uid, String rkey, int page, int rankEndLine) throws Exception { + return getRank(uid,rkey,page,rankEndLine); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/DeathPathEveryPersonRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/DeathPathEveryPersonRank.java index d53ac2a12..aaaba5ad2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/DeathPathEveryPersonRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/DeathPathEveryPersonRank.java @@ -23,6 +23,7 @@ public class DeathPathEveryPersonRank extends AbstractRank { return data[0]; } + @Override public void addRank(int uid,String rkey,double... data){ RedisUtil.getInstence().incrementZsetScore(redisKey,rkey,String.valueOf(uid), Double.valueOf(getScore(data)).intValue()); }