修复StackOverflowError

back_recharge
jiahuiwen 2021-11-11 16:29:05 +08:00
parent 29518695a9
commit 44f88a241c
3 changed files with 37 additions and 38 deletions

View File

@ -107,43 +107,49 @@ public class CrossServiceLogic {
} }
private static CSPlayer formatUserToPlayer(User user){ private static CSPlayer formatUserToPlayer(User user){
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(user.getId()); CSPlayer csPlayer = RedisUtil.getInstence().getObject(getKey(user.getId()), CSPlayer.class);
int newScore=0,oldScore =0,crossYxldMaxLevel=0 ; int newScore=0,oldScore =0,crossYxldMaxLevel=0 ;
if(csPlayer!=null){ if (csPlayer != null) {
newScore = csPlayer.getCrossYuxulundaoNewScore(); newScore = csPlayer.getCrossYuxulundaoNewScore();
oldScore = csPlayer.getCrossYuxulundaoOldScore(); oldScore = csPlayer.getCrossYuxulundaoOldScore();
crossYxldMaxLevel = csPlayer.getCrossYxldMaxLevel(); crossYxldMaxLevel = csPlayer.getCrossYxldMaxLevel();
} else {
csPlayer = new CSPlayer();
} }
CSPlayer player = new CSPlayer();
PlayerManager p = user.getPlayerInfoManager(); PlayerManager p = user.getPlayerInfoManager();
player.setUserId(user.getId()); csPlayer.setUserId(user.getId());
player.setLevel(p.getLevel()); csPlayer.setLevel(p.getLevel());
player.setName(p.getNickName()); csPlayer.setName(p.getNickName());
player.setHead(p.getHead()); csPlayer.setHead(p.getHead());
player.setHeadFrame(p.getHeadFrame()); csPlayer.setHeadFrame(p.getHeadFrame());
player.setSkin(p.getUserSkin()); csPlayer.setSkin(p.getUserSkin());
player.setUserTitle(p.getUserTitle()); csPlayer.setUserTitle(p.getUserTitle());
player.setPracticeLevel(user.getHeroManager().getPracticeLevel()); csPlayer.setPracticeLevel(user.getHeroManager().getPracticeLevel());
player.setServerId(GameApplication.serverId); csPlayer.setServerId(GameApplication.serverId);
player.setSex(p.getSex()); csPlayer.setSex(p.getSex());
player.setUserMount(p.getUserMount()); csPlayer.setUserMount(p.getUserMount());
player.setCrossYuxulundaoNewScore(newScore); csPlayer.setCrossYuxulundaoNewScore(newScore);
player.setCrossYuxulundaoOldScore(oldScore); csPlayer.setCrossYuxulundaoOldScore(oldScore);
player.setGuildId(p.getGuildId()); csPlayer.setGuildId(p.getGuildId());
player.setCrossYxldMaxLevel(crossYxldMaxLevel); csPlayer.setCrossYxldMaxLevel(crossYxldMaxLevel);
//玉虚三个队伍总战力 //玉虚三个队伍总战力
if (csPlayer.getMaxFore() == 0) {
int force1 = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CROSS_YU_XU_LUN_DAO_ONE.getTeamId(), false); int force1 = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CROSS_YU_XU_LUN_DAO_ONE.getTeamId(), false);
int force2 = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CROSS_YU_XU_LUN_DAO_TWO.getTeamId(), false); int force2 = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CROSS_YU_XU_LUN_DAO_TWO.getTeamId(), false);
int force3 = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CROSS_YU_XU_LUN_DAO_THREE.getTeamId(), false); int force3 = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CROSS_YU_XU_LUN_DAO_THREE.getTeamId(), false);
player.setMaxFore(force1+force2+force3); csPlayer.setMaxFore(force1+force2+force3);
}
// 主线编队战力 // 主线编队战力
if (csPlayer.getMainLineForce() == 0) {
int mainLine = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false); int mainLine = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false);
player.setMainLineForce(mainLine); csPlayer.setMainLineForce(mainLine);
}
// 罗浮编队战力 // 罗浮编队战力
if (csPlayer.getLuoFuForce() == 0) {
int luoFu = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false); int luoFu = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false);
player.setLuoFuForce(luoFu); csPlayer.setLuoFuForce(luoFu);
return player; }
return csPlayer;
} }

View File

@ -1,7 +1,5 @@
package com.ljsd.jieling.logic.dao.cross; package com.ljsd.jieling.logic.dao.cross;
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
/** /**
* @Author hj * @Author hj
* @Date 2021/8/31 15:30:04 * @Date 2021/8/31 15:30:04
@ -231,10 +229,6 @@ public class CSPlayer {
} }
public int getMainLineForce() { public int getMainLineForce() {
if (mainLineForce == 0){
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(userId, false);
mainLineForce = redis==null?0:redis.getMainLineForce();
}
return mainLineForce; return mainLineForce;
} }
@ -243,10 +237,6 @@ public class CSPlayer {
} }
public int getLuoFuForce() { public int getLuoFuForce() {
if (mainLineForce == 0){
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(userId, false);
luoFuForce = redis==null?0:redis.getLuoFuForce();
}
return luoFuForce; return luoFuForce;
} }

View File

@ -1710,6 +1710,9 @@ public class PlayerLogic {
} }
} }
String rpcString = RedisUtil.getInstence().getObject(RedisKey.LOGIC_SERVER_INFO, Integer.toString(serverId), String.class, -1); String rpcString = RedisUtil.getInstence().getObject(RedisKey.LOGIC_SERVER_INFO, Integer.toString(serverId), String.class, -1);
if (rpcString == null) {
return null;
}
String[] split = rpcString.split(":"); String[] split = rpcString.split(":");
if (split.length < 4) { if (split.length < 4) {
LOGGER.error("获取玩家rpc地址长度错误rpc{},玩家id{},服务器id{}", rpcString, uid, serverId); LOGGER.error("获取玩家rpc地址长度错误rpc{},玩家id{},服务器id{}", rpcString, uid, serverId);