优化竞技场排行信息

main
grimm 2025-03-20 00:29:02 +08:00
parent 13b8ac585f
commit 96b04d6e71
4 changed files with 97 additions and 57 deletions

View File

@ -12,7 +12,7 @@ public class PlayerInfoCache {
private int maxForce;
private int sex;
private long offLineTime;// 离线时间
private int likeNums;//竞技场被点赞数
public String getName() {
return name;
@ -102,4 +102,12 @@ public class PlayerInfoCache {
this.offLineTime = offLineTime;
}
public int getLikeNums() {
return likeNums;
}
public void setLikeNums(int likeNums) {
this.likeNums = likeNums;
}
}

View File

@ -507,45 +507,45 @@ public class ArenaLogic {
String value = item.getValue();
int score = item.getScore().intValue();
int uid = Integer.parseInt(value);
User user;
try {
user = UserManager.getUser(uid, true);
if (null == user) {
continue;
PlayerInfoCache userInfo = UserManager.getPlayerInfoCacheWithRedisAndSaveMap(uid);
if(userInfo == null){
User user = UserManager.getUser(uid, true);
if(user != null){
userInfo = PlayerLogic.getInstance().initPlayerInfoCache(user);
}
}catch (Exception e) {
}
if(userInfo == null){
continue;
}
int totalForce = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.TEAM_ARENA_DEFENSE, false);
if (totalForce == 0) {
continue;
}
List<TeamPosHeroInfo> teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(GlobalsDef.TEAM_ARENA_DEFENSE).getListTeamPosHeroInfo();
if (teamPosHeroInfoList == null) {
teamPosHeroInfoList = new ArrayList<>();
}
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
List<Integer> heroTids = new ArrayList<>(teamPosHeroInfoList.size());
for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfoList) {
if (!heroMap.containsKey(teamPosHeroInfo.getHeroId())) {
continue;
}
heroTids.add(heroMap.get(teamPosHeroInfo.getHeroId()).getTemplateId());
}
// int totalForce = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.TEAM_ARENA_DEFENSE, false);
// if (totalForce == 0) {
// continue;
// }
// List<TeamPosHeroInfo> teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(GlobalsDef.TEAM_ARENA_DEFENSE).getListTeamPosHeroInfo();
// if (teamPosHeroInfoList == null) {
// teamPosHeroInfoList = new ArrayList<>();
// }
// Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
//
// List<Integer> heroTids = new ArrayList<>(teamPosHeroInfoList.size());
// for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfoList) {
// if (!heroMap.containsKey(teamPosHeroInfo.getHeroId())) {
// continue;
// }
// heroTids.add(heroMap.get(teamPosHeroInfo.getHeroId()).getTemplateId());
// }
List<Integer> heroTids = new ArrayList<>();
CommonProto.Team teamBuild = CommonProto.Team.newBuilder().addAllHeroTid(heroTids).build();
PlayerManager playerInfoManager = user.getPlayerInfoManager();
CommonProto.ArenaPersonInfo personInfoBuild = CommonProto.ArenaPersonInfo.newBuilder()
.setUid(uid)
.setLevel(playerInfoManager.getLevel())
.setName(playerInfoManager.getNickName())
.setLevel(userInfo.getLevel())
.setName(userInfo.getName())
.setScore(score)
.setHead(playerInfoManager.getHead())
.setHead(userInfo.getHead())
.setRank(++start)
.setLikeNums(user.getArenaManager().getLikeNums())
.setTotalForce(totalForce)
.setHeadFrame(playerInfoManager.getHeadFrame())
.setLikeNums(userInfo.getLikeNums())
.setTotalForce(userInfo.getMaxForce())
.setHeadFrame(userInfo.getHeadFrame())
.build();
arenaRankMemberInfo.add(CommonProto.ArenaEnemy.newBuilder()
.setPersonInfo(personInfoBuild)

View File

@ -1318,6 +1318,8 @@ public class PlayerLogic {
cache.setDesignation(playerInfoManager.getDesignation());
cache.setMaxForce(playerInfoManager.getMaxForce());
cache.setOffLineTime(playerInfoManager.getLoginTime());
//仅每次登录同步,不用实时同步
cache.setLikeNums(user.getArenaManager().getLikeNums());
RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(user.getId()), cache);
//同步到内存中
UserManager.updatePlayerInfoCache(cache);
@ -1342,6 +1344,7 @@ public class PlayerLogic {
cache.setDesignation(playerInfoManager.getDesignation());
cache.setMaxForce(playerInfoManager.getMaxForce());
cache.setOffLineTime(playerInfoManager.getLoginTime());
cache.setLikeNums(0);
RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(user.getId()), cache);
//同步到内存中
UserManager.updatePlayerInfoCache(cache);

View File

@ -4,9 +4,11 @@ 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.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.PlayerInfoCache;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.logic.rank.RankEnum;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
@ -47,17 +49,26 @@ public class GuildForceRank extends AbstractRank {
if(guildInfo != null) {
Set<Integer> chairMan = guildInfo.getMembers().get(GlobalsDef.CHAIRMAN);
int chairManId = chairMan.iterator().next();
User user = UserManager.getUser(chairManId);
CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder()
.setUid(user.getId())
.setUserName(user.getPlayerInfoManager().getNickName())
.setLevel(user.getPlayerInfoManager().getLevel())
.setHead(user.getPlayerInfoManager().getHead())
.setHeadFrame(user.getPlayerInfoManager().getHeadFrame())
.setForce(user.getPlayerInfoManager().getMaxForce())
.setSex(user.getPlayerInfoManager().getSex())
.setGuildName(guildInfo.getName())
.setRankInfo(everyRankInfo);
CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder();
PlayerInfoCache everyUser = UserManager.getPlayerInfoCacheWithRedisAndSaveMap(chairManId);
if(everyUser == null){
User user = UserManager.getUser(chairManId, true);
if(user != null){
everyUser = PlayerLogic.getInstance().initPlayerInfoCache(user);
}
}
if(everyUser == null){
return;
}
everyRank.setUid(chairManId)
.setUserName(everyUser.getName())
.setHead(everyUser.getHead())
.setHeadFrame(everyUser.getHeadFrame())
.setLevel(everyUser.getLevel())
.setRankInfo(everyRankInfo)
.setForce(everyUser.getMaxForce())
.setSex(everyUser.getSex())
.setGuildName(guildInfo.getName());
builder.addRanks(everyRank);
}
}
@ -109,15 +120,24 @@ public class GuildForceRank extends AbstractRank {
Set<Integer> chairMan = guildInfo.getMembers().get(GlobalsDef.CHAIRMAN);
int chairManId = chairMan.iterator().next();
User user = UserManager.getUser(chairManId);
PlayerInfoCache everyUser = UserManager.getPlayerInfoCacheWithRedisAndSaveMap(chairManId);
if(everyUser == null){
User user = UserManager.getUser(chairManId, true);
if(user != null){
everyUser = PlayerLogic.getInstance().initPlayerInfoCache(user);
}
}
if(everyUser == null){
return everyRank;
}
everyRank.setUid(chairManId)
.setUserName(user.getPlayerInfoManager().getNickName())
.setHead(user.getPlayerInfoManager().getHead())
.setHeadFrame(user.getPlayerInfoManager().getHeadFrame())
.setLevel(user.getPlayerInfoManager().getLevel())
.setUserName(everyUser.getName())
.setHead(everyUser.getHead())
.setHeadFrame(everyUser.getHeadFrame())
.setLevel(everyUser.getLevel())
.setRankInfo(everyRankInfo)
.setForce(user.getPlayerInfoManager().getMaxForce())
.setSex(user.getPlayerInfoManager().getSex())
.setForce(everyUser.getMaxForce())
.setSex(everyUser.getSex())
.setGuildName(guildInfo.getName());
return everyRank;
}
@ -148,15 +168,24 @@ public class GuildForceRank extends AbstractRank {
Set<Integer> chairMan = guildInfo.getMembers().get(GlobalsDef.CHAIRMAN);
int chairManId = chairMan.iterator().next();
User user = UserManager.getUser(chairManId);
PlayerInfoCache everyUser = UserManager.getPlayerInfoCacheWithRedisAndSaveMap(chairManId);
if(everyUser == null){
User user = UserManager.getUser(chairManId, true);
if(user != null){
everyUser = PlayerLogic.getInstance().initPlayerInfoCache(user);
}
}
if(everyUser == null){
return everyRank;
}
everyRank.setUid(chairManId)
.setUserName(user.getPlayerInfoManager().getNickName())
.setHead(user.getPlayerInfoManager().getHead())
.setHeadFrame(user.getPlayerInfoManager().getHeadFrame())
.setLevel(user.getPlayerInfoManager().getLevel())
.setUserName(everyUser.getName())
.setHead(everyUser.getHead())
.setHeadFrame(everyUser.getHeadFrame())
.setLevel(everyUser.getLevel())
.setRankInfo(everyRankInfo)
.setForce(user.getPlayerInfoManager().getMaxForce())
.setSex(user.getPlayerInfoManager().getSex())
.setForce(everyUser.getMaxForce())
.setSex(everyUser.getSex())
.setGuildName(guildInfo.getName());
return everyRank;
}