增加英雄排行榜信息

main
grimm 2025-04-17 02:45:26 +08:00
parent f442f479c1
commit 1bf25acd2b
4 changed files with 35 additions and 2 deletions

View File

@ -13,6 +13,7 @@ public class PlayerInfoCache {
private int sex; private int sex;
private long offLineTime;// 离线时间 private long offLineTime;// 离线时间
private int likeNums;//竞技场被点赞数 private int likeNums;//竞技场被点赞数
private int maxHeroId;
public String getName() { public String getName() {
return name; return name;
@ -110,4 +111,12 @@ public class PlayerInfoCache {
this.likeNums = likeNums; this.likeNums = likeNums;
} }
public int getMaxHeroId() {
return maxHeroId;
}
public void setMaxHeroId(int maxHeroId) {
this.maxHeroId = maxHeroId;
}
} }

View File

@ -2,12 +2,15 @@ package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.activity.event.*;
import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.HeroManager; import com.ljsd.jieling.logic.dao.HeroManager;
import com.ljsd.jieling.logic.dao.PlayerInfoCache;
import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.logic.rank.RankContext; import com.ljsd.jieling.logic.rank.RankContext;
import com.ljsd.jieling.logic.rank.RankEnum; import com.ljsd.jieling.logic.rank.RankEnum;
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
@ -83,14 +86,27 @@ class HeroForceRankActivity extends RankActivity {
Map<String, Hero> heroMap = heroManager.getHeroMap(); Map<String, Hero> heroMap = heroManager.getHeroMap();
int maxForce = 0; int maxForce = 0;
String heroId = ""; String heroId = "";
int templateId = 0;
for(Hero hero: heroMap.values()){ for(Hero hero: heroMap.values()){
int _force = HeroLogic.getInstance().calHeoForce(user, hero, 0); int _force = HeroLogic.getInstance().calHeoForce(user, hero, 0);
if (_force > maxForce){ if (_force > maxForce){
maxForce = _force; maxForce = _force;
heroId = hero.getId(); heroId = hero.getId();
templateId = hero.getTemplateId();
}
}
//最强战力英雄id变了
if(heroManager.getMaxForceHero() == null || !heroManager.getMaxForceHero().equals(heroId)){
heroManager.setMaxForceHero(heroId);
PlayerInfoCache playerInfoCache = UserManager.getPlayerInfoCacheWithRedis(user.getId());
if(playerInfoCache != null){
if(templateId > 0 && templateId != playerInfoCache.getMaxHeroId()){
//最强英雄id变了更新redis缓存中的最强英雄id
playerInfoCache.setMaxHeroId(templateId);
RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(user.getId()), playerInfoCache);
}
} }
} }
heroManager.setMaxForceHero(heroId);
heroManager.setMaxHeroForce(maxForce); heroManager.setMaxHeroForce(maxForce);
} }

View File

@ -1320,6 +1320,13 @@ public class PlayerLogic {
cache.setOffLineTime(playerInfoManager.getLoginTime()); cache.setOffLineTime(playerInfoManager.getLoginTime());
//仅每次登录同步,不用实时同步 //仅每次登录同步,不用实时同步
cache.setLikeNums(user.getArenaManager().getLikeNums()); cache.setLikeNums(user.getArenaManager().getLikeNums());
String maxForceHero = user.getHeroManager().getMaxForceHero();
if(maxForceHero!= null){
Hero hero = user.getHeroManager().getHero(maxForceHero);
if(hero!= null && hero.getTemplateId() != cache.getMaxHeroId()){
cache.setMaxHeroId(hero.getTemplateId());
}
}
RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(user.getId()), cache); RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(user.getId()), cache);
//同步到内存中 //同步到内存中
UserManager.updatePlayerInfoCache(cache); UserManager.updatePlayerInfoCache(cache);
@ -1345,6 +1352,7 @@ public class PlayerLogic {
cache.setMaxForce(playerInfoManager.getMaxForce()); cache.setMaxForce(playerInfoManager.getMaxForce());
cache.setOffLineTime(playerInfoManager.getLoginTime()); cache.setOffLineTime(playerInfoManager.getLoginTime());
cache.setLikeNums(0); cache.setLikeNums(0);
cache.setMaxHeroId(10051);
RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(user.getId()), cache); RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(user.getId()), cache);
//同步到内存中 //同步到内存中
UserManager.updatePlayerInfoCache(cache); UserManager.updatePlayerInfoCache(cache);

View File

@ -60,7 +60,7 @@ public class NewHeroForceRank extends AbstractRank {
// oneUserRank.setHeroStar(hero.getStar()); // oneUserRank.setHeroStar(hero.getStar());
// } // }
//英雄信息不展示,设置默认值 //英雄信息不展示,设置默认值
oneUserRank.setHeroTemplateId(10001); oneUserRank.setHeroTemplateId(everyUser.getMaxHeroId());
oneUserRank.setHeroLevel(200); oneUserRank.setHeroLevel(200);
oneUserRank.setHeroStar(10); oneUserRank.setHeroStar(10);
builder.addRanks(oneUserRank); builder.addRanks(oneUserRank);