开服冲榜补充

duhui 2022-11-02 18:20:03 +08:00
parent dc8e3b3c3c
commit ffc965a6fe
9 changed files with 144 additions and 99 deletions

View File

@ -33,9 +33,10 @@ public class DbClear {
public static StringRedisTemplate getRedisTemplate(){ public static StringRedisTemplate getRedisTemplate(){
JedisConnectionFactory connectionFactory = new JedisConnectionFactory(); JedisConnectionFactory connectionFactory = new JedisConnectionFactory();
//设置host //设置host
connectionFactory.setHostName("60.1.1.21"); connectionFactory.setHostName("60.1.1.32");
//设置端口 //设置端口
connectionFactory.setPort(6379); connectionFactory.setPort(6379);
connectionFactory.setPassword("ysj666");
//初始化connectionFactory //初始化connectionFactory
connectionFactory.afterPropertiesSet(); connectionFactory.afterPropertiesSet();
//实例化 //实例化

View File

@ -410,6 +410,10 @@ public class RedisKey {
* *
*/ */
public static final String EQUIP_SCORE_RANK = "EQUIP_SCORE_RANK"; public static final String EQUIP_SCORE_RANK = "EQUIP_SCORE_RANK";
/**
*
*/
public static final String SOUL_SEAL_RANK = "SOUL_SEAL_RANK";
/** /**
* mongo * mongo

View File

@ -19,6 +19,5 @@ public class SoulEquipWearHandler extends BaseHandler<HeroInfoProto.SoulEquipWea
HeroInfoProto.OptHeroSoul wearInfo = equipWearRequest.getWearInfo(); HeroInfoProto.OptHeroSoul wearInfo = equipWearRequest.getWearInfo();
HeroInfoProto.OptHeroSoul unloadInfo = equipWearRequest.getUnloadInfo(); HeroInfoProto.OptHeroSoul unloadInfo = equipWearRequest.getUnloadInfo();
HeroLogic.getInstance().wearSoulEquip(iSession,wearInfo,unloadInfo); HeroLogic.getInstance().wearSoulEquip(iSession,wearInfo,unloadInfo);
} }
} }

View File

@ -10,6 +10,7 @@ import com.ljsd.jieling.core.function.FunctionContext;
import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.logic.activity.*; import com.ljsd.jieling.logic.activity.*;
import com.ljsd.jieling.logic.activity.activityLogic.GmActivityLogic;
import com.ljsd.jieling.logic.activity.activityLogic.WeekCardLogic; import com.ljsd.jieling.logic.activity.activityLogic.WeekCardLogic;
import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.SuperBoxEvent; import com.ljsd.jieling.logic.activity.event.SuperBoxEvent;
@ -460,6 +461,8 @@ public class GlobalDataManaager implements IManager {
SevenWorldLogic.getInstance().sevenWorldInfoIndication(session); SevenWorldLogic.getInstance().sevenWorldInfoIndication(session);
// 御剑行 // 御剑行
RidingSwardLogic.getInstance().zeroClearRidingSwardByUser(user); RidingSwardLogic.getInstance().zeroClearRidingSwardByUser(user);
// 自动返利
GmActivityLogic.getInstance().zeroUpdateGmActivity(user);
//周卡邮件发放未领取奖励 //周卡邮件发放未领取奖励
// WeekCardLogic.getInstance().sendWeekCardRewardMail(session); // WeekCardLogic.getInstance().sendWeekCardRewardMail(session);
WeekCardLogic.getInstance().weekCardInfoIndication(user,0,0); WeekCardLogic.getInstance().weekCardInfoIndication(user,0,0);

View File

@ -5,12 +5,24 @@ import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent; import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent;
import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.TeamEnum; import com.ljsd.jieling.logic.dao.TeamEnum;
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
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.rank.RankContext;
import com.ljsd.jieling.logic.rank.RankEnum;
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
import config.SCHero;
import config.SChongRankInformation;
import config.SEquipConfig;
import manager.STableManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* *
@ -19,7 +31,7 @@ import java.util.List;
* 2022/4/26 10:29:18 * 2022/4/26 10:29:18
*/ */
public class SaveHeroForceEventHandler implements IEventHandler { public class SaveHeroForceEventHandler implements IEventHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(SaveHeroForceEventHandler.class);
public SaveHeroForceEventHandler() { public SaveHeroForceEventHandler() {
Poster.getPoster().listenEvent(this, SaveHeroForceEvent.class); Poster.getPoster().listenEvent(this, SaveHeroForceEvent.class);
} }
@ -38,6 +50,8 @@ public class SaveHeroForceEventHandler implements IEventHandler {
} }
// user // user
User user = UserManager.getUser(uid); User user = UserManager.getUser(uid);
// 英雄星级排行榜处理
heroStarHandle(user);
// 需要存储战力的编队 // 需要存储战力的编队
List<Integer> saveForceTeamList = TeamEnum.getSaveForceTeamList(); List<Integer> saveForceTeamList = TeamEnum.getSaveForceTeamList();
for (Integer teamId : saveForceTeamList) { for (Integer teamId : saveForceTeamList) {
@ -48,10 +62,126 @@ public class SaveHeroForceEventHandler implements IEventHandler {
// 主线编队需要更新排行榜信息 // 主线编队需要更新排行榜信息
if (teamId == TeamEnum.FORMATION_NORMAL.getTeamId()){ if (teamId == TeamEnum.FORMATION_NORMAL.getTeamId()){
Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(uid)); Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(uid));
// 装备和魂印排行榜处理
equipRankHandle(user);
soulSealRankHandle(user);
} }
// 重新计算战力,并更新 // 重新计算战力,并更新
int force = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false); int force = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false);
user.getTeamPosManager().putTeamForceMap(teamId,force); user.getTeamPosManager().putTeamForceMap(teamId,force);
} }
} }
/**
*
* @param user
*/
private void equipRankHandle(User user){
AbstractRank rank = RankContext.getRankEnum(RankEnum.EQUIP_SCORE_RANK.getType());
int scoreCompute = equipScoreCompute(user);
rank.addRank(user.getId(),"", scoreCompute);
}
/**
*
* @param user
*/
private void soulSealRankHandle(User user){
AbstractRank rank = RankContext.getRankEnum(RankEnum.SOUL_SEAL_RANK.getType());
int scoreCompute = soulSealScoreCompute(user);
rank.addRank(user.getId(),"", scoreCompute);
}
/**
*
* @param user
*/
private void heroStarHandle(User user){
AbstractRank rank = RankContext.getRankEnum(RankEnum.HERO_STAR_RANK.getType());
int scoreCompute = heroStarCompute(user);
rank.addRank(user.getId(),"", scoreCompute);
}
/**
*
* @param user
* @return
*/
private int heroStarCompute(User user){
int num = 0;
Map<Integer, Map<Integer, SChongRankInformation>> naturalMap = SChongRankInformation.getNaturalMap();
Map<Integer, SCHero> scHeroMap = SCHero.getsCHero();
for (Hero hero : user.getHeroManager().getHeroMap().values()) {
try {
SCHero scHero = scHeroMap.get(hero.getTemplateId());
SChongRankInformation information = naturalMap.get(scHero.getNatural()).get(hero.getStar());
if (information == null){
continue;
}
num += information.getScore();
}catch (NullPointerException e){
LOGGER.error("计算英雄星级评分报错uid:{},英雄id{}英雄模板id{}",user.getId(),hero.getId(),hero.getTemplateId());
}
}
return num;
}
/**
* 线
* @param user
* @return
*/
private int equipScoreCompute(User user){
List<TeamPosHeroInfo> infos = user.getTeamPosManager().getTeamPosForHero().get(TeamEnum.FORMATION_NORMAL.getTeamId());
if (infos == null){
return 0;
}
int num = 0;
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
Map<Integer, SEquipConfig> equipConfigMap = STableManager.getConfig(SEquipConfig.class);
for (TeamPosHeroInfo info : infos) {
Hero hero = heroMap.get(info.getHeroId());
if (hero == null){
continue;
}
for (Integer id : hero.getEquipByPositionMap().values()) {
SEquipConfig config = equipConfigMap.get(id);
if (config == null){
continue;
}
num += config.getScore();
}
}
return num;
}
/**
* 线
* @param user
* @return
*/
private int soulSealScoreCompute(User user){
List<TeamPosHeroInfo> infos = user.getTeamPosManager().getTeamPosForHero().get(TeamEnum.FORMATION_NORMAL.getTeamId());
if (infos == null){
return 0;
}
int num = 0;
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
Map<Integer, SEquipConfig> equipConfigMap = STableManager.getConfig(SEquipConfig.class);
for (TeamPosHeroInfo info : infos) {
Hero hero = heroMap.get(info.getHeroId());
if (hero == null){
continue;
}
for (Integer id : hero.getSoulEquipByPositionMap().values()) {
SEquipConfig config = equipConfigMap.get(id);
if (config == null){
continue;
}
num += config.getScore();
}
}
return num;
}
} }

View File

@ -33,9 +33,9 @@ public class Hero extends MongoBase implements Comparable<Hero>,Cloneable {
private Map<Integer,HeroEquipStrong> equipStrongMap = new HashMap<>(4); private Map<Integer,HeroEquipStrong> equipStrongMap = new HashMap<>(4);
// 英雄装备突破等级 // 英雄装备突破等级
private int equipAdvanceLv; private int equipAdvanceLv;
//魂印
private Map<Integer,Integer> soulEquipByPositionMap = new HashMap<>(); private Map<Integer,Integer> soulEquipByPositionMap = new HashMap<>();
// 神印
private Map<Integer, Integer> godSealByPositionMap = new HashMap<>(); private Map<Integer, Integer> godSealByPositionMap = new HashMap<>();
private int breakId; private int breakId;

View File

@ -21,7 +21,6 @@ import com.ljsd.jieling.ktbeans.ReportEventEnum;
import com.ljsd.jieling.ktbeans.ReportUtil; import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.ActivityType; import com.ljsd.jieling.logic.activity.ActivityType;
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic; import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.activity.event.*;
import com.ljsd.jieling.logic.activity.eventhandler.HeroFiveStarGetEventHandler; import com.ljsd.jieling.logic.activity.eventhandler.HeroFiveStarGetEventHandler;
@ -40,9 +39,6 @@ import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.MissionType; import com.ljsd.jieling.logic.mission.MissionType;
import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.logic.rank.RankContext;
import com.ljsd.jieling.logic.rank.RankEnum;
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
import com.ljsd.jieling.logic.redpacket.WelfareRedPackEvent; import com.ljsd.jieling.logic.redpacket.WelfareRedPackEvent;
import com.ljsd.jieling.logic.redpacket.WelfareRedPacketType; import com.ljsd.jieling.logic.redpacket.WelfareRedPacketType;
import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.logic.store.BuyGoodsNewLogic;
@ -5366,90 +5362,6 @@ public class HeroLogic {
*/ */
public void addOrUpdateHongmeng(ISession session) throws Exception { public void addOrUpdateHongmeng(ISession session) throws Exception {
addOrUpdateHongmeng(session, false); addOrUpdateHongmeng(session, false);
// 排行榜信息
User user = UserManager.getUser(session.getUid());
equipRankHandle(user);
heroStarHandle(user);
}
/**
*
* @param user
*/
private void equipRankHandle(User user){
AbstractRank rank = RankContext.getRankEnum(RankEnum.EQUIP_SCORE_RANK.getType());
double score = rank.getScoreById(user.getId(), "");
int scoreCompute = equipScoreCompute(user);
double count = scoreCompute - score;
rank.addRank(user.getId(),"", count);
}
/**
*
* @param user
*/
private void heroStarHandle(User user){
AbstractRank rank = RankContext.getRankEnum(RankEnum.HERO_STAR_RANK.getType());
double score = rank.getScoreById(user.getId(), "");
int scoreCompute = heroStarCompute(user);
double count = scoreCompute - score;
rank.addRank(user.getId(),"", count);
}
/**
*
* @param user
* @return
*/
private int heroStarCompute(User user){
int num = 0;
Map<Integer, Map<Integer, SChongRankInformation>> naturalMap = SChongRankInformation.getNaturalMap();
Map<Integer, SCHero> scHeroMap = SCHero.getsCHero();
for (Hero hero : user.getHeroManager().getHeroMap().values()) {
try {
SCHero scHero = scHeroMap.get(hero.getTemplateId());
SChongRankInformation information = naturalMap.get(scHero.getNatural()).get(hero.getStar());
if (information == null){
continue;
}
num += information.getScore();
}catch (NullPointerException e){
LOGGER.error("计算英雄星级评分报错uid:{},英雄id{}英雄模板id{}",user.getId(),hero.getId(),hero.getTemplateId());
}
}
return num;
}
/**
* 线
* @param user
* @return
*/
private int equipScoreCompute(User user){
List<TeamPosHeroInfo> infos = user.getTeamPosManager().getTeamPosForHero().get(TeamEnum.FORMATION_NORMAL.getTeamId());
if (infos == null){
return 0;
}
int num = 0;
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
Map<Integer, SEquipConfig> equipConfigMap = STableManager.getConfig(SEquipConfig.class);
for (TeamPosHeroInfo info : infos) {
Hero hero = heroMap.get(info.getHeroId());
if (hero == null){
continue;
}
for (Integer id : hero.getEquipByPositionMap().values()) {
SEquipConfig config = equipConfigMap.get(id);
if (config == null){
continue;
}
num += config.getScore();
}
}
return num;
} }
/** /**

View File

@ -35,8 +35,9 @@ public enum RankEnum {
FOUR_CHALLENGE_TIER_RANK(38,RedisKey.FOUR_CHALLENGE_TIER_RANK,SituationRank::new,false),//四灵试炼排行榜param1层数 param2无 param3:无 FOUR_CHALLENGE_TIER_RANK(38,RedisKey.FOUR_CHALLENGE_TIER_RANK,SituationRank::new,false),//四灵试炼排行榜param1层数 param2无 param3:无
POWER_RICE_RANK(42,RedisKey.POWER_RICE_RANK,PowerRiceRank::new,false),//战力冲刺排行榜 POWER_RICE_RANK(42,RedisKey.POWER_RICE_RANK,PowerRiceRank::new,false),//战力冲刺排行榜
EXPLORE_RANK(43,RedisKey.EXPLORE_RANK,ExploreRank::new,false),//探索排行榜 EXPLORE_RANK(43,RedisKey.EXPLORE_RANK,ExploreRank::new,false),//探索排行榜
HERO_STAR_RANK(101,RedisKey.HERO_STAR_RANK,ForceRank::new,false),//升星排行榜 HERO_STAR_RANK(101,RedisKey.HERO_STAR_RANK,ForceRank::new,false),//英雄星级排行榜
EQUIP_SCORE_RANK(102, RedisKey.EQUIP_SCORE_RANK,ForceRank::new,false),//装备排行榜 EQUIP_SCORE_RANK(102, RedisKey.EQUIP_SCORE_RANK,ForceRank::new,false),//装备排行榜
SOUL_SEAL_RANK(103, RedisKey.SOUL_SEAL_RANK,ForceRank::new,false),//魂印排行榜

View File

@ -1,12 +1,7 @@
package com.ljsd.jieling.logic.rank.rankImpl; package com.ljsd.jieling.logic.rank.rankImpl;
import rpc.protocols.CommonProto;
import rpc.protocols.PlayerInfoProto;
import org.springframework.data.redis.core.ZSetOperations;
import util.TimeUtils; import util.TimeUtils;
import java.util.*;
/** /**
* @author lvxinran * @author lvxinran
* @date 2019/11/29 * @date 2019/11/29