玉虚论道排行榜删除机器人 rpc调用修改

back_recharge
xuexinpeng 2021-09-29 17:27:41 +08:00
parent 4a1f019c1a
commit 7204d7187c
12 changed files with 217 additions and 125 deletions

View File

@ -66,9 +66,10 @@ public class GameLogicService implements IService {
Gson gson = new Gson();
CoreSettings coreSettings = ConfigurableApplicationContextManager.getBean(CoreSettings.class);
String ip = coreSettings.getIp();
int port = coreSettings.getGmport();
int gmport = coreSettings.getGmport();
int worldport = coreSettings.getWorldport();
String rpcUrl = ip + ":" + port+ ":" + worldport;
int port = coreSettings.getPort();
String rpcUrl = ip + ":" + gmport+ ":" + worldport+":"+port;
RedisUtil.getInstence().set(RedisKey.LOGIC_SERVER_INFO+RedisKey.Delimiter_colon+GameApplication.serverId,gson.toJson(rpcUrl));
}

View File

@ -356,6 +356,7 @@ public class RedisKey {
//玉虚论道
public static final String CROSS_YUXULUNDAO_RANK = "CROSS_YUXULUNDAO_RANK";//排行榜信息
public static final String CROSS_YUXULUNDAO_RANK_PERSON = "CROSS_YUXULUNDAO_RANK_PERSON";//排行榜信息
public static final String CROSS_YUXULUNDAO_ROBOT_INFO = "CROSS_YUXULUNDAO_ROBOT_INFO";//机器人信息
public static final String CROSS_YUXULUNDAO_RECORD = "CROSS_YUXULUNDAO_RECORD";//战斗回放
public static final String CROSS_SERVER_USER = "CROSS_SERVER_USER";//redis存储个人基本信息

View File

@ -1422,7 +1422,7 @@ public class RedisUtil {
RedisKey.CROSS_SERVICE_ARENA.equals(type)||RedisKey.WORLD_ARENA_RANK_MY_MATH.equals(type)||
RedisKey.WORLD_ARENA_MY_PRON.equals(type)||RedisKey.WORLD_ARENA_RRECORD.equals(type)||
RedisKey.CROSS_YUXULUNDAO_RANK.equals(type)||RedisKey.CROSS_YUXULUNDAO_ROBOT_INFO.equals(type)||
RedisKey.CROSS_YUXULUNDAO_RECORD.equals(type)
RedisKey.CROSS_YUXULUNDAO_RECORD.equals(type)|| RedisKey.CROSS_YUXULUNDAO_RANK_PERSON.equals(type)
) {
return type + RedisKey.Delimiter_colon + key;
}

View File

@ -1,6 +1,7 @@
package com.ljsd.jieling.handler.crossServer;
import com.google.gson.Gson;
import com.ljsd.GameApplication;
import com.ljsd.fight.ArenaRecord;
import com.ljsd.fight.FightType;
import com.ljsd.jieling.config.json.CoreSettings;
@ -74,13 +75,12 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler<ArenaInfoProto.
int defUid = request.getChallengeUid();
int type = request.getChallengeType();
SMServerArenaSetting setting = STableManager.getConfig(SMServerArenaSetting.class).get(2);
if (type == 0) {
//免费挑战
int privId = setting.getPrivId()[0];
/*int privId = setting.getPrivId()[0];
if (!PlayerLogic.getInstance().checkAndUpdate(user, privId, 1)) {
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
} else if (type == 1) {
}*/
if (type == 1) {
//物品消耗挑战
int[] itemCost = setting.getCost();
int[][] comItemCost = new int[1][];
@ -89,7 +89,9 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler<ArenaInfoProto.
if (!enough) {
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}
}
}else {
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}
List<Integer> yuxuTeamId = Lists.newArrayList();
yuxuTeamId.add(GlobalsDef.CROSS_YU_XU_LUN_DAO_ONE);
yuxuTeamId.add(GlobalsDef.CROSS_YU_XU_LUN_DAO_TWO);
@ -151,10 +153,10 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler<ArenaInfoProto.
if (defUid >= 1000) {
if (defQuery.getCrossYuxulundaoNewScore() >= winerGetScore) {
defQuery.setCrossYuxulundaoNewScore(defQuery.getCrossYuxulundaoNewScore() + loserGetScore);
rank.addRank(user.getId(), String.valueOf(crossGroup), defQuery.getCrossYuxulundaoNewScore());
rank.addRank(defUid, String.valueOf(crossGroup), defQuery.getCrossYuxulundaoNewScore());
} else {
//分数不够扣
rank.addRank(user.getId(), String.valueOf(crossGroup), 0);
rank.addRank(defUid, String.valueOf(crossGroup), 0);
defQuery.setCrossYuxulundaoNewScore(0);
}
}
@ -174,7 +176,7 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler<ArenaInfoProto.
}
if (defUid >= 1000) {
defQuery.setCrossYuxulundaoNewScore(defQuery.getCrossYuxulundaoNewScore() + winerGetScore);
rank.addRank(user.getId(), String.valueOf(crossGroup), defQuery.getCrossYuxulundaoNewScore());
rank.addRank(defUid, String.valueOf(crossGroup), defQuery.getCrossYuxulundaoNewScore());
}
}
@ -254,6 +256,7 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler<ArenaInfoProto.
int myRank = RedisUtil.getInstence().getZSetreverseRank(RedisKey.CROSS_YUXULUNDAO_RANK, Integer.toString(crossGroup), Integer.toString(user.getId())).intValue();
res.setMyRank(myRank);
int privId = STableManager.getConfig(SMServerArenaSetting.class).get(2).getPrivId()[0];
PlayerLogic.getInstance().checkAndUpdate(user, privId, 1);
int changeTimes = user.getPlayerInfoManager().getVipPrivilageValue(privId);
res.setChangedTimes(changeTimes);
List<Integer> dailyReward = user.getArenaManager().getCrossYuxulundaoDailyRewad();
@ -272,32 +275,10 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler<ArenaInfoProto.
public static int[] getFightResultByPersonToPerson(User myUser, int defUserUid, int[] myteamId, int[] defTeamId, ArenaRecord arenaRecord, ArenaInfoProto.CrossYuXuLunDaoChallengeResponse.Builder builder) throws Exception {
int[] result = new int[3];
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(defUserUid);
//其他服玩家
//rpc 数据调用测试
//其他服玩家rpc 数据调用
CrossArenaManager crossArenaManager = null;
CoreSettings coreSettings = ConfigurableApplicationContextManager.getBean(CoreSettings.class);
if (!csPlayer.getRpcIp().equals(coreSettings.getIp()) || csPlayer.getRpcPort() != coreSettings.getPort()) {
String ip = csPlayer.getRpcIp();
int port = csPlayer.getRpcPort();
int uid = csPlayer.getUserId();
StringBuilder sb = new StringBuilder();
sb.append("RPCCORE").append("|")
.append(ip).append("|")
.append(port).toString();
ClientAdapterPo<RPCRequestIFace.Client> rPCClient = null;
try {
rPCClient = ClientAdapterPo.getClientAdapterPo(sb.toString());
crossArenaManager = rPCClient.getClient().getHeroManagerInfo(uid);
} catch (Exception e) {
LOGGER.info("callback=>", e);
} finally {
if (rPCClient != null) {
rPCClient.returnObject(sb.toString());
} else {
LOGGER.info("callback=> rPCClient is null ");
return null;
}
}
if(GameApplication.serverId != csPlayer.getServerId()){
crossArenaManager = PlayerLogic.getInstance().getCrossArenaManagerData(csPlayer);
}
arenaRecord.setCreateTime(TimeUtils.nowInt()); // 时间
arenaRecord.setAttackId(defUserUid); //id

View File

@ -307,8 +307,6 @@ public class CrossServiceLogic {
int force3 = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.CROSS_YU_XU_LUN_DAO_THREE, false);
player.setMaxFore(force1+force2+force3);
CoreSettings coreSettings = ConfigurableApplicationContextManager.getBean(CoreSettings.class);
player.setRpcIp(coreSettings.getIp());
player.setRpcPort(coreSettings.getPort());
return player;
}
/**

View File

@ -81,8 +81,9 @@ public class CrossYuxulundaoLogic {
//TODO 删除初始化一些数据
String key1 = RedisUtil.getInstence().getKey(RedisKey.CROSS_YUXULUNDAO_RANK, String.valueOf(crossGroup));
String key2 = RedisUtil.getInstence().getKey(RedisKey.CROSS_YUXULUNDAO_ROBOT_INFO, String.valueOf(crossGroup));
String key3 = RedisUtil.getInstence().getKey(RedisKey.CROSS_YUXULUNDAO_RANK_PERSON, String.valueOf(crossGroup));
//String key3 = RedisUtil.getInstence().getKey(RedisKey.CROSS_YUXULUNDAO_RECORD, String.valueOf(crossGroup));
RedisUtil.getInstence().del(key1, key2);
RedisUtil.getInstence().del(key1, key2,key3);
AbstractRank rank = RankContext.getRankEnum(RankEnum.CROSS_YUXULUNDAO_RANK.getType());
int robotIndex = 100;
Random random = new Random();
@ -115,7 +116,7 @@ public class CrossYuxulundaoLogic {
return;
}
String title = SErrorCodeEerverConfig.getI18NMessage("MsRankTitle");
String rkey = RedisUtil.getInstence().getKey(RedisKey.CROSS_YUXULUNDAO_RANK, Integer.toString(crossGroup));
String rkey = RedisUtil.getInstence().getKey(RedisKey.CROSS_YUXULUNDAO_RANK_PERSON, Integer.toString(crossGroup));
Set<String> arenaRank = RedisUtil.getInstence().getReverseZset(rkey, 0, -1);
List<Integer> arenaRankfilt = arenaRank.stream().mapToInt(n -> Integer.parseInt(n)).filter(n -> n > 1000).boxed().collect(Collectors.toList());
for (int i = 0; i < arenaRankfilt.size(); i++) {

View File

@ -81,14 +81,7 @@ public class CSPlayer {
*
*/
private int crossYxldMaxLevel = 0 ; //历史达到的最高等级
/**
* rpcIp
*/
private String rpcIp ;
/**
* rpcPort
*/
private int rpcPort ;
public CSPlayer(User user) {
PlayerManager manager = user.getPlayerInfoManager();
@ -238,19 +231,4 @@ public class CSPlayer {
this.crossYxldMaxLevel = crossYxldMaxLevel;
}
public String getRpcIp() {
return rpcIp;
}
public void setRpcIp(String rpcIp) {
this.rpcIp = rpcIp;
}
public int getRpcPort() {
return rpcPort;
}
public void setRpcPort(int rpcPort) {
this.rpcPort = rpcPort;
}
}

View File

@ -670,7 +670,7 @@ public class FightUtil {
}
CoreSettings coreSettings = ConfigurableApplicationContextManager.getBean(CoreSettings.class);
List<CommonProto.FightUnitInfo> heroFightInfos = new ArrayList<>();
if (csPlayer.getRpcIp().equals(coreSettings.getIp()) && csPlayer.getRpcPort() == coreSettings.getPort()) {
if (GameApplication.serverId == csPlayer.getServerId()) {
//本服玩家
User user = UserManager.getUser(csPlayer.getUserId());
List<TeamPosHeroInfo> teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().getOrDefault(teamId, new ArrayList<>());

View File

@ -862,40 +862,7 @@ public class PlayerLogic {
PlayerInfoProto.GetPlayerOneTeamInfoResponse.Builder playerTeamInfo = PlayerInfoProto.GetPlayerOneTeamInfoResponse.newBuilder().setTeamInfo(builder.build());
return playerTeamInfo.build();
}
public static CrossArenaManager getCrossArenaManager(CSPlayer csPlayer )throws Exception{
if(csPlayer==null){
return null;
//throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
//基本信息从redis中拿 剩下的队伍 属性 数据量大的数据rpc调用
// String serverName = CrossDeathPathLogic.getInstance().getServerNameByDeathPath(csPlayer.getServerId());
//rpc 数据调用测试
String ip =csPlayer.getRpcIp();
int port = csPlayer.getRpcPort();
int uid = csPlayer.getUserId();
StringBuilder sb = new StringBuilder();
sb.append("RPCCORE").append("|")
.append(ip).append("|")
.append(port).toString();
ClientAdapterPo<RPCRequestIFace.Client> rPCClient = null;
CrossArenaManager crossArenaManager = null ;
try{
rPCClient = ClientAdapterPo.getClientAdapterPo(sb.toString());
crossArenaManager = rPCClient.getClient().getHeroManagerInfo(uid);
}catch (Exception e) {
LOGGER.info("callback=>", e);
} finally {
if(rPCClient != null){
rPCClient.returnObject(sb.toString());
}else{
LOGGER.info("callback=> rPCClient is null ");
}
}
return crossArenaManager;
}
//获取跨服玩家信息
public CommonProto.TeamOneInfo getCrossYxldMyTeamInfo(User user,List<Integer> team) throws Exception{
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(user.getId());
@ -966,6 +933,36 @@ public class PlayerLogic {
}
return builder.build();
}
public CrossArenaManager getCrossArenaManagerData(CSPlayer csPlayer )throws Exception{
String rpcString = RedisUtil.getInstence().getObject(RedisKey.LOGIC_SERVER_INFO, String.valueOf(csPlayer.getServerId()), String.class, -1);
String ip = rpcString.split(":")[0];
String port = rpcString.split(":")[3];
//rpc 数据调用
//String ip =csPlayer.getRpcIp();
//int port = csPlayer.getRpcPort();
int uid = csPlayer.getUserId();
StringBuilder sb = new StringBuilder();
sb.append("RPCCORE").append("|")
.append(ip).append("|")
.append(port).toString();
ClientAdapterPo<RPCRequestIFace.Client> rPCClient = null;
CrossArenaManager crossArenaManager = null ;
try{
rPCClient = ClientAdapterPo.getClientAdapterPo(sb.toString());
crossArenaManager = rPCClient.getClient().getHeroManagerInfo(uid);
}catch (Exception e) {
LOGGER.info("callback=>", e);
} finally {
if(rPCClient != null){
rPCClient.returnObject(sb.toString());
}else{
LOGGER.info("callback=> rPCClient is null ");
return null;
}
}
return crossArenaManager;
}
//获取跨服玩家信息
public CommonProto.TeamOneInfo getCrossYxldOneTeamInfo(int id,List<Integer> team) throws Exception {
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(id);
@ -986,36 +983,15 @@ public class PlayerLogic {
.setServerName(serverName);
//如果是本服玩家 直接本服调用数据
CoreSettings coreSettings = ConfigurableApplicationContextManager.getBean(CoreSettings.class);
if(csPlayer.getRpcIp().equals(coreSettings.getIp()) && csPlayer.getRpcPort()== coreSettings.getPort()){
if(GameApplication.serverId == csPlayer.getServerId()){
User user = UserManager.getUser(id);
return PlayerLogic.getInstance().getCrossYxldMyTeamInfo(user, team);
}
//rpc 数据调用测试
String ip =csPlayer.getRpcIp();
int port = csPlayer.getRpcPort();
int uid = csPlayer.getUserId();
StringBuilder sb = new StringBuilder();
sb.append("RPCCORE").append("|")
.append(ip).append("|")
.append(port).toString();
ClientAdapterPo<RPCRequestIFace.Client> rPCClient = null;
CrossArenaManager crossArenaManager = null ;
try{
rPCClient = ClientAdapterPo.getClientAdapterPo(sb.toString());
crossArenaManager = rPCClient.getClient().getHeroManagerInfo(uid);
}catch (Exception e) {
LOGGER.info("callback=>", e);
} finally {
if(rPCClient != null){
rPCClient.returnObject(sb.toString());
}else{
LOGGER.info("callback=> rPCClient is null ");
return null;
}
CrossArenaManager crossArenaManager = getCrossArenaManagerData(csPlayer) ;
if(crossArenaManager == null){
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);
}
//rpc 数据调用测试
for(int teamId: team){
CommonProto.TeamOneTeamInfo.Builder teamOneTeamInfo = CommonProto.TeamOneTeamInfo.newBuilder();
List<com.ljsd.jieling.thrift.idl.TeamPosHeroInfo> teamPosHeroInfos = crossArenaManager.getTeams().get(teamId);

View File

@ -57,7 +57,8 @@ public enum RankEnum {
CROSS_GUILD_FORCE_RANK(36,RedisKey.GUILD_FORCE_RANK,CrossGuildForceRank::new,true),//跨服公会总战力排行
CROSS_YUXULUNDAO_RANK(37,RedisKey.CROSS_YUXULUNDAO_RANK,CrossYuXuLunDaoRank::new,true),//跨服玉虚论道
CROSS_SEVEN_WORLD_RANK(39,RedisKey.SEVEN_WORLD_INTEGRAL_RANK,CrossRank::new,true)//跨服七届试炼
CROSS_SEVEN_WORLD_RANK(39,RedisKey.SEVEN_WORLD_INTEGRAL_RANK,CrossRank::new,true),//跨服七届试炼
CROSS_YUXULUNDAO_RANK_PERSON(40,RedisKey.CROSS_YUXULUNDAO_RANK_PERSON,CrossYuXuLunDaoPersonRank::new,true),//跨服玉虚论道真人排行榜
;
private int type;

View File

@ -0,0 +1,143 @@
package com.ljsd.jieling.logic.rank.rankImpl;
import com.ljsd.jieling.core.GlobalsDef;
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.activity.crossService.CrossServiceLogic;
import com.ljsd.jieling.logic.arena.ArenaLogic;
import com.ljsd.jieling.logic.dao.CrossArenaEnemy;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
import com.ljsd.jieling.logic.hero.HeroLogic;
import org.springframework.data.redis.core.ZSetOperations;
import rpc.protocols.CommonProto;
import rpc.protocols.PlayerInfoProto;
import java.util.Set;
public class CrossYuXuLunDaoPersonRank extends AbstractRank{
public CrossYuXuLunDaoPersonRank(int type, String redisKey) {
super(type, redisKey);
}
@Override
public PlayerInfoProto.RankResponse getRank(int uid, String rkey, int page, int rankEndLine) throws Exception {
return super.getRank(uid, String.valueOf(ArenaLogic.getInstance().getViewSeason()), page, rankEndLine);
}
@Override
public long[] getDataByScore(Double score) {
return new long[]{score.intValue()};
}
@Override
public double getScore(double... data) {
return data[0];
}
/**
*
*/
public void addOrUpdateRank(int uid,String rkey,double... data){
String key = RedisKey.getKey(redisKey,rkey,false);
//decr
RedisUtil.getInstence().zsetAddOne(key,String.valueOf(uid), getScore(data));
}
@Override
protected void getCrossOptional(int index, ZSetOperations.TypedTuple<String> data, PlayerInfoProto.RankResponse.Builder builder) throws Exception {
if(Integer.parseInt(data.getValue())<1000){
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(index)
.setParam1(0)
.setParam2(getParam2(data.getScore()))
.setParam3(getParam3(data.getScore()));
CrossArenaEnemy mapEntry = RedisUtil.getInstence().getMapEntry(RedisKey.CROSS_YUXULUNDAO_ROBOT_INFO, String.valueOf(GlobleSystemLogic.getInstence().getCrossGroup()), data.getValue(), CrossArenaEnemy.class);
if(mapEntry==null){
return;
}
String serverName = CrossDeathPathLogic.getInstance().getServerNameByDeathPath(mapEntry.getServerID());
everyRankInfo.setParam1(mapEntry.getTotalForce());
CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder()
.setUid(mapEntry.getEnemyId_UUid())
.setUserName(mapEntry.getRandomName())
.setLevel(mapEntry.getLevel()==0?100:mapEntry.getLevel())
.setUserSkin(80012)
.setRankInfo(everyRankInfo)
.setServerName(serverName)
.setSex(0).setCrossScore(mapEntry.getEnemyStatus());
builder.addRanks(everyRank);
}else{
//ArenaOfUser query = CrossServiceLogic.getInstance().query(Integer.valueOf(data.getValue()));
CSPlayer cPlayer = CrossServiceLogic.getPlayerByRedis(Integer.valueOf(data.getValue()));
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(index)
.setParam1(getParam1(data.getScore()))
.setParam2(getParam2(data.getScore()))
.setParam3(getParam3(data.getScore()));
//CommonProto.UserRank.Builder everyRank = getCrossOneUserRank(query,everyRankInfo);
CommonProto.UserRank.Builder everyRank = getCrossOneUserRank(cPlayer,everyRankInfo);
builder.addRanks(everyRank);
}
}
public static CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer player , CommonProto.RankInfo.Builder everyRankInfo){
String serverName = CrossServiceLogic.getInstance().getServerNameByUId(player.getUserId());
//CSPlayer player = CrossServiceLogic.getPlayerByRedis(uid);
return CommonProto.UserRank.newBuilder()
.setUid(player.getUserId())
.setLevel(player.getLevel())
.setUserName(player.getName())
.setRankInfo(everyRankInfo)
.setForce(player.getMaxFore())
.setSex(player.getSex())
.setHead(player.getHead())
.setGuildName("")
.setHeadFrame(player.getHeadFrame())
.setUserMount(player.getUserMount())
.setUserSkin(player.getSkin())
.setUserTitle(player.getUserTitle())
.setPracticeLevel(player.getPracticeLevel())
.setServerName(serverName)
.setCrossScore((int)everyRankInfo.getParam1());
}
@Override
public void getCrossMyInfo(User user, String rkey, PlayerInfoProto.RankResponse.Builder allUserResponse){
String crossGroup = String.valueOf(GlobleSystemLogic.getInstence().getCrossGroup());
int myRank= RedisUtil.getInstence().getZSetreverseRank(redisKey, crossGroup,Integer.toString(user.getId()),false).intValue();
Double zSetScore = RedisUtil.getInstence().getZSetScore(redisKey, crossGroup, Integer.toString(user.getId()),false);
int totalForce = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.WORLD_TEAM_ARENA_DEFENSE,false);
CommonProto.RankInfo towerRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(myRank)
.setParam1(totalForce)
.setParam2(zSetScore.intValue())
.build();
allUserResponse.setMyRankInfo(towerRankInfo);
}
@Override
public PlayerInfoProto.RankResponse getCrossRank(int uid, String rkey, int page, int rankEndLine) throws Exception {
if(rankEndLine==-1){
rankEndLine = 100;
}
User user = UserManager.getUser(uid);
if (page == 0) {
page = 1;
}
int start = (page - 1) * rankEndLine, end = page * rankEndLine - 1;
int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup();
Set<ZSetOperations.TypedTuple<String>> scores =
RedisUtil.getInstence().getZsetreverseRangeWithScores(redisKey, String.valueOf(crossGroup), start, end, false);
if(start % rankEndLine == 0){
start++;
}
PlayerInfoProto.RankResponse.Builder allUserResponse = getCrossAllUserResponse(scores,start);
//当前用户信息
getCrossMyInfo(user,rkey,allUserResponse);
return allUserResponse.build();
}
}

View File

@ -13,6 +13,8 @@ import com.ljsd.jieling.logic.dao.gm.ArenaOfUser;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.logic.rank.RankContext;
import com.ljsd.jieling.logic.rank.RankEnum;
import org.springframework.data.redis.core.ZSetOperations;
import rpc.protocols.CommonProto;
import rpc.protocols.PlayerInfoProto;
@ -145,5 +147,15 @@ public class CrossYuXuLunDaoRank extends AbstractRank{
return allUserResponse.build();
}
@Override
public void addRank(int uid,String rkey,double... data){
String key = RedisKey.getKey(redisKey,rkey,false);
RedisUtil.getInstence().zsetAddOne(key,String.valueOf(uid), getScore(data));
//跨服玉虚论道真人排行榜
if(uid>1000){
AbstractRank rank = RankContext.getRankEnum(RankEnum.CROSS_YUXULUNDAO_RANK_PERSON.getType());
rank.addRank(uid, rkey, data);
}
}
}