跨服旧数据兼容

back_recharge
duhui 2021-11-15 10:20:30 +08:00
parent 39b276f03d
commit 1e166894d2
6 changed files with 44 additions and 15 deletions

View File

@ -152,6 +152,13 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler<WorldProto
} }
teamInfo = FightUtil.makeCrossPersonData(csPlayer, proto.getTeamId(), null, crossArenaManager); teamInfo = FightUtil.makeCrossPersonData(csPlayer, proto.getTeamId(), null, crossArenaManager);
arenaEnemys = ArenaLogic.getInstance().getUserCrossArenaEnemy(csPlayer,proto.getChallengeRank(),false).build(); arenaEnemys = ArenaLogic.getInstance().getUserCrossArenaEnemy(csPlayer,proto.getChallengeRank(),false).build();
// 旧数据兼容
if (csPlayer.getLuoFuForce() == 0){
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(csPlayer.getUserId(), false);
if (redis != null){
csPlayer = redis;
}
}
defendForce = csPlayer.getLuoFuForce(); defendForce = csPlayer.getLuoFuForce();
} else { } else {
//机器人 //机器人

View File

@ -133,22 +133,16 @@ public class CrossServiceLogic {
csPlayer.setGuildId(p.getGuildId()); csPlayer.setGuildId(p.getGuildId());
csPlayer.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); csPlayer.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); csPlayer.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); csPlayer.setLuoFuForce(luoFu);
csPlayer.setLuoFuForce(luoFu);
}
return csPlayer; return csPlayer;
} }

View File

@ -1010,6 +1010,13 @@ public class ArenaLogic {
Object get = RedisUtil.getInstence().hget(RedisKey.ARENA_PROUD_COUNT, String.valueOf(csPlayer.getUserId())); Object get = RedisUtil.getInstence().hget(RedisKey.ARENA_PROUD_COUNT, String.valueOf(csPlayer.getUserId()));
int proudTime = get==null?1:Integer.parseInt((String)get); int proudTime = get==null?1:Integer.parseInt((String)get);
String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId()); String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId());
// 旧数据兼容
if (csPlayer.getLuoFuForce() == 0){
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(csPlayer.getUserId(), false);
if (redis != null){
csPlayer = redis;
}
}
CommonProto.ArenaPersonInfo personInfoBuild = CommonProto.ArenaPersonInfo.newBuilder() CommonProto.ArenaPersonInfo personInfoBuild = CommonProto.ArenaPersonInfo.newBuilder()
.setUid(csPlayer.getUserId()) .setUid(csPlayer.getUserId())
.setLevel(csPlayer.getLevel()) .setLevel(csPlayer.getLevel())

View File

@ -1222,7 +1222,7 @@ public class HeroLogic {
if (teamId == TeamEnum.FORMATION_NORMAL.getTeamId()) { if (teamId == TeamEnum.FORMATION_NORMAL.getTeamId()) {
Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(iSession.getUid())); Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(iSession.getUid()));
} }
//跨服 玉虚论道 //跨服编队
if (TeamEnum.isCrossTeam(teamId)) { if (TeamEnum.isCrossTeam(teamId)) {
CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user); CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user);
} }

View File

@ -267,6 +267,13 @@ public abstract class AbstractRank implements IRank {
public CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer csPlayer, CommonProto.RankInfo.Builder everyRankInfo){ public CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer csPlayer, CommonProto.RankInfo.Builder everyRankInfo){
String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId()); String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId());
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId()); GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
// 兼容
if (csPlayer.getMainLineForce() == 0){
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(csPlayer.getUserId(), false);
if (redis != null){
csPlayer = redis;
}
}
return CommonProto.UserRank.newBuilder() return CommonProto.UserRank.newBuilder()
.setUid(csPlayer.getUserId()) .setUid(csPlayer.getUserId())
.setLevel(csPlayer.getLevel()) .setLevel(csPlayer.getLevel())

View File

@ -76,6 +76,13 @@ public class CrossArenaRank extends AbstractRank {
if (query == null){ if (query == null){
return; return;
} }
// 旧数据兼容
if (query.getLuoFuForce() == 0){
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(query.getUserId(), false);
if (redis != null){
query = redis;
}
}
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder() CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(index) .setRank(index)
.setParam1(query.getLuoFuForce()) .setParam1(query.getLuoFuForce())
@ -89,6 +96,13 @@ public class CrossArenaRank extends AbstractRank {
@Override @Override
public CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer csPlayer, CommonProto.RankInfo.Builder everyRankInfo){ public CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer csPlayer, CommonProto.RankInfo.Builder everyRankInfo){
CommonProto.UserRank.Builder oneUserRank = super.getCrossOneUserRank(csPlayer, everyRankInfo); CommonProto.UserRank.Builder oneUserRank = super.getCrossOneUserRank(csPlayer, everyRankInfo);
// 旧数据兼容
if (csPlayer.getLuoFuForce() == 0){
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(csPlayer.getUserId(), false);
if (redis != null){
csPlayer = redis;
}
}
oneUserRank.setForce(csPlayer.getLuoFuForce()); oneUserRank.setForce(csPlayer.getLuoFuForce());
return oneUserRank; return oneUserRank;
} }