From 3ed9406b49335cb838023c0bb97f78189f6c4bcb Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 13 Jan 2023 10:58:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=96=E5=88=92=E9=9C=80=E6=B1=82=EF=BC=9A?= =?UTF-8?q?=E8=BD=A6=E8=BF=9F=E6=96=97=E6=B3=95=E5=8A=9F=E8=83=BD=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/CarDelayFunction.java | 50 +++++++------------ .../jieling/handler/FastChallengeHandler.java | 9 ++-- .../jieling/handler/SaveTeamPosHandler.java | 1 - .../GetQiMenDunJiaHitListHandler.java | 6 ++- .../activity/TasuilingxiaoHandler.java | 9 +--- .../family/GetCarChallengeListHandler.java | 20 +------- .../java/com/ljsd/jieling/logic/dao/Hero.java | 10 ++-- .../jieling/logic/family/GuildFightLogic.java | 29 ++++++----- .../java/config/SWorldBossRewardConfig.java | 24 ++++----- 9 files changed, 59 insertions(+), 99 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java b/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java index 9d5eac8da..91528390b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java @@ -51,10 +51,11 @@ public class CarDelayFunction implements FunctionManager { // 获取车迟斗法当前boss的索引id int indexId = GuildFightLogic.carDelayProgressIndication.getBossIndexId(); // 根据索引id取出当前的奖励配置 - Map> rewardByTypeAndRankMap = SWorldBossRewardConfig.rewardByBossIdMap.get(indexId); - - TreeMap personRewardConfigTreeMap = rewardByTypeAndRankMap.get(2); - TreeMap guildRewardConfigTreeMap = rewardByTypeAndRankMap.get(1); + Map> rewardByTypeAndRankMap = SWorldBossRewardConfig.rewardByBossIdMap.get(indexId); + // 个人 + TreeMap personRewardConfigTreeMap = rewardByTypeAndRankMap.get(2); + // 工会 + TreeMap guildRewardConfigTreeMap = rewardByTypeAndRankMap.get(1); AbstractRank personRank = RankContext.getRankEnum(RankEnum.CAR_DEALY_RANK.getType()); AbstractRank guildRank = RankContext.getRankEnum(RankEnum.CAR_DEALY_GUILD_RANK.getType()); @@ -70,18 +71,15 @@ public class CarDelayFunction implements FunctionManager { guildRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(guildRank.getRedisKey(), "", 0, -1); } - - int rank=0; + // 个人 String personTitle = SErrorCodeEerverConfig.getI18NMessage("family_fight_rank_personreward_title"); - int nowTime = TimeUtils.nowInt(); int times=0; - for(ZSetOperations.TypedTuple item : personRangeWithScores){ - rank++; - String value = item.getValue(); - int uid = Integer.parseInt(value); - String rewardByRank = personRewardConfigTreeMap.floorEntry(rank).getValue(); - String personContent = SErrorCodeEerverConfig.getI18NMessageNeedConvert("family_fight_rank_personreward_txt",new Object[]{rank},new int[]{0},"#"); + for(ZSetOperations.TypedTuple rankInfo : personRangeWithScores){ + int uid = Integer.parseInt(rankInfo.getValue()); + long score = rankInfo.getScore().longValue(); + String rewardByRank = personRewardConfigTreeMap.floorEntry(score).getValue(); + String personContent = SErrorCodeEerverConfig.getI18NMessageNeedConvert("family_fight_rank_personreward_txt",new Object[]{score},new int[]{0},"#"); MailLogic.getInstance().sendMail(uid,personTitle,personContent,rewardByRank,nowTime, Global.MAIL_EFFECTIVE_TIME); if(times++%20==0){ MongoUtil.getLjsdMongoTemplate().lastUpdate(); @@ -89,32 +87,20 @@ public class CarDelayFunction implements FunctionManager { } MongoUtil.getLjsdMongoTemplate().lastUpdate(); -// Map userLevelGuildMap = RedisUtil.getInstence().getMapValues(RedisKey.USER_LEVEL_GUILD_INFO, "", Integer.class, Integer.class); -// Map> usersByGuildId = new HashMap<>(); -// userLevelGuildMap.forEach((userId,guildId)->{ -// usersByGuildId.putIfAbsent(guildId,new HashSet<>()); -// usersByGuildId.get(guildId).add(userId); -// }); - rank=0; + // 工会 String guildTitle = SErrorCodeEerverConfig.getI18NMessage("family_fight_rank_familyreward_title"); - for(ZSetOperations.TypedTuple item : guildRangeWithScores){ - rank++; - - String value = item.getValue(); - int guildId = Integer.parseInt(value); - String rewardByRank = guildRewardConfigTreeMap.floorEntry(rank).getValue(); + for(ZSetOperations.TypedTuple rankInfo : guildRangeWithScores){ + int guildId = Integer.parseInt(rankInfo.getValue()); GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId); if(guildInfo==null){ continue; } + long score = rankInfo.getScore().longValue(); + String rewardByRank = guildRewardConfigTreeMap.floorEntry(score).getValue(); guildInfo.clearCarFightSb(); GuilidManager.saveOrUpdateGuildInfo(guildInfo); - Collection> values = guildInfo.getMembers().values(); -// if(userLevelGuildMap.containsKey(guildId)){ -// values.add(usersByGuildId.get(guildId)); -// } - String guildContent = SErrorCodeEerverConfig.getI18NMessageNeedConvert("family_fight_rank_familyreward_txt",new Object[]{rank},new int[0],"#"); - for(Set uids : values){ + String guildContent = SErrorCodeEerverConfig.getI18NMessageNeedConvert("family_fight_rank_familyreward_txt",new Object[]{score},new int[0],"#"); + for(Set uids : guildInfo.getMembers().values()){ for(Integer uid:uids){ MailLogic.getInstance().sendMail(uid,guildTitle,guildContent,rewardByRank,nowTime, Global.MAIL_EFFECTIVE_TIME); if(times++%20==0){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/FastChallengeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/FastChallengeHandler.java index 9db56a560..4eeeda2e1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/FastChallengeHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/FastChallengeHandler.java @@ -249,7 +249,6 @@ public class FastChallengeHandler extends BaseHandler value = RedisUtil.getInstence().getMapValue(key, "", guildIdStr, HashSet.class); if (value == null){ - value = new HashSet(); + value = new HashSet<>(); } if (!value.contains(uid) && uid != 0){ value.add(uid); - RedisUtil.getInstence().putMapEntry(RedisKey.CAR_DEALY_GUILD_FIGHT_PEOPLE_NUM, "", String.valueOf(guildId),value); + RedisUtil.getInstence().putMapEntry(key, "", guildIdStr,value); } return value.size(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/SaveTeamPosHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/SaveTeamPosHandler.java index 3ee19d2e5..aa1a5a380 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/SaveTeamPosHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/SaveTeamPosHandler.java @@ -1,6 +1,5 @@ package com.ljsd.jieling.handler; -import com.ljsd.jieling.logic.dao.HeroManager; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetQiMenDunJiaHitListHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetQiMenDunJiaHitListHandler.java index 94c04fd15..64e4e780a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetQiMenDunJiaHitListHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetQiMenDunJiaHitListHandler.java @@ -4,14 +4,16 @@ import com.google.protobuf.GeneratedMessage; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.handler.BaseHandler; -import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import org.springframework.stereotype.Component; import rpc.protocols.ActivityProto; import rpc.protocols.MessageTypeProto; -import java.util.*; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; /** * @Author hj diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/TasuilingxiaoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/TasuilingxiaoHandler.java index c706fc3e5..7f05b42e1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/TasuilingxiaoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/TasuilingxiaoHandler.java @@ -1,16 +1,12 @@ package com.ljsd.jieling.handler.activity; + import com.google.protobuf.GeneratedMessage; import com.ljsd.fight.FightType; -import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.jbean.ActivityMission; -import com.ljsd.jieling.jbean.ActivityProgressInfo; -import com.ljsd.jieling.ktbeans.ReportEventEnum; -import com.ljsd.jieling.ktbeans.ReportUtil; -import com.ljsd.jieling.logic.activity.event.GoldRefreshEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.TaSuiLingXiaoEvent; import com.ljsd.jieling.logic.dao.*; @@ -21,7 +17,6 @@ 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.RankEnum; -import com.ljsd.jieling.logic.rank.RankLogic; import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; import com.ljsd.jieling.util.ItemUtil; import config.SMonsterConfig; @@ -30,8 +25,8 @@ import config.SNewHeroConfig; import manager.STableManager; import org.springframework.stereotype.Component; import rpc.protocols.ActivityProto; -import rpc.protocols.MessageTypeProto; import rpc.protocols.CommonProto; +import rpc.protocols.MessageTypeProto; import java.util.ArrayList; import java.util.HashMap; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GetCarChallengeListHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GetCarChallengeListHandler.java index a5fabcd14..523a4e5cb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GetCarChallengeListHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/GetCarChallengeListHandler.java @@ -67,7 +67,7 @@ public class GetCarChallengeListHandler extends BaseHandler { int matchNums = matchSection[0] + matchSection[1]; GuildInfo guildInfo = GuilidManager.getGuildInfo(guildId); Set members = new HashSet<>(); - guildInfo.getMembers().values().forEach(integers ->members.addAll(integers)); + guildInfo.getMembers().values().forEach(members::addAll); List beforeList = new ArrayList<>(5); List afterList = new ArrayList<>(5); @@ -241,24 +241,6 @@ public class GetCarChallengeListHandler extends BaseHandler { } -// private static void process(int start,int end,Set members,int matchNums, Set infos){ -// while (start>=0 && infos.size()> zsetreverseRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.CAR_DEALY_RANK, "", start, end); -// for(ZSetOperations.TypedTuple item : zsetreverseRangeWithScores){ -// if(!members.contains(Integer.parseInt(item.getValue()))){ -// infos.add(new ZsetTypedTupleWithRank(item,rank)); -// } -// rank++; -// } -// end=start; -// start-=matchNums; -// if(end<=0){ -// break; -// } -// } -// } - static class ZsetTypedTupleWithRank{ ZSetOperations.TypedTuple item; int rank; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java index 4390d64f1..9f6d6e337 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java @@ -242,7 +242,7 @@ public class Hero extends MongoBase implements Comparable,Cloneable { // 如果鸿蒙碑开启 返回鸿蒙系统中神将返回鸿蒙碑等级 if (heroManager.getHongmengTablet() > 0) { // 存在共鸣或者使者 - if (heroManager.getResonances().values().contains(id) || heroManager.getHongmengGuards().values().contains(id)) { + if (heroManager.getResonances().containsValue(id) || heroManager.getHongmengGuards().containsValue(id)) { // 鸿蒙碑超过等级上限,返回鸿蒙碑等级 if (heroManager.getHongmengTablet() <= maxLevel) { return heroManager.getHongmengTablet(); @@ -251,12 +251,12 @@ public class Hero extends MongoBase implements Comparable,Cloneable { return scHero.getMaxRank() >= 10 ? heroManager.getHongmengTablet() : maxLevel; } } - if (heroManager.getResonances().values().contains(id)) { + if (heroManager.getResonances().containsValue(id)) { // 模板 HongMengAddAttribute hongMengAddAttribute = heroManager.getResonanceAddition().get(HongMengAttributeEnum.LEVEL); if (hongMengAddAttribute != null) { // 是否达到限制等级 - return hongMengAddAttribute.value >= maxLevel ? maxLevel : hongMengAddAttribute.value; + return Math.min(hongMengAddAttribute.value, maxLevel); } } return level; @@ -363,11 +363,11 @@ public class Hero extends MongoBase implements Comparable,Cloneable { public int getBreakIdByHongMeng(HeroManager heroManager) { // 英雄在共鸣池中 if (heroManager.getHongmengTablet() > 0){ - if (heroManager.getResonances().values().contains(id) || heroManager.getHongmengGuards().values().contains(id)) { + if (heroManager.getResonances().containsValue(id) || heroManager.getHongmengGuards().containsValue(id)) { return HeroLogic.getInstance().calRobotBreakByLevel(templateId, getLevel(heroManager)); } }else{ - if (heroManager.getResonances().values().contains(id)) { + if (heroManager.getResonances().containsValue(id)) { return HeroLogic.getInstance().calRobotBreakByLevel(templateId, getLevel(heroManager)); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java index 028febe70..6fa853ac8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java @@ -1265,9 +1265,9 @@ public class GuildFightLogic { return; } carProgressTmp = 1; - calendar.set(calendar.HOUR_OF_DAY,battleTime[1][0]); - calendar.set(calendar.MINUTE,battleTime[1][1]); - calendar.set(calendar.SECOND,0); + calendar.set(Calendar.HOUR_OF_DAY,battleTime[1][0]); + calendar.set(Calendar.MINUTE,battleTime[1][1]); + calendar.set(Calendar.SECOND,0); endTime = (int)(calendar.getTimeInMillis()/1000); }else if(sourceCompare>=grapCompareStart && sourceCompare=battleCompaeEnd && sourceComparegrapCompaeEnd){ calendar.setTimeInMillis(calendar.getTimeInMillis() + 24*3600*1000L); } - calendar.set(calendar.HOUR_OF_DAY,grabTime[0][0]); - calendar.set(calendar.MINUTE,grabTime[0][1]); - calendar.set(calendar.SECOND,0); + calendar.set(Calendar.HOUR_OF_DAY,grabTime[0][0]); + calendar.set(Calendar.MINUTE,grabTime[0][1]); + calendar.set(Calendar.SECOND,0); grapStartTime = (int)(calendar.getTimeInMillis()/1000); - calendar.set(calendar.HOUR_OF_DAY,battleTime[0][0]); - calendar.set(calendar.MINUTE,battleTime[0][1]); - calendar.set(calendar.SECOND,0); + calendar.set(Calendar.HOUR_OF_DAY,battleTime[0][0]); + calendar.set(Calendar.MINUTE,battleTime[0][1]); + calendar.set(Calendar.SECOND,0); battleStartTime = (int)(calendar.getTimeInMillis()/1000); carProgress = carProgressTmp; - carDelayProgressIndication= Family.CarDelayProgressIndication.newBuilder().setBossIndexId(id).setProgress(carProgress).setEndTime(endTime). + carDelayProgressIndication = Family.CarDelayProgressIndication.newBuilder().setBossIndexId(id).setProgress(carProgress).setEndTime(endTime). setBattleStartTime(battleStartTime).setGrabStartTime(grapStartTime). build(); sendAllProgressUpdate(); // System.out.println(JsonFormat.printToString(carDelayProgressIndication) + "--"); } - } public static void sendAllProgressUpdate(){ diff --git a/tablemanager/src/main/java/config/SWorldBossRewardConfig.java b/tablemanager/src/main/java/config/SWorldBossRewardConfig.java index 8456952da..d53f9b22e 100644 --- a/tablemanager/src/main/java/config/SWorldBossRewardConfig.java +++ b/tablemanager/src/main/java/config/SWorldBossRewardConfig.java @@ -21,30 +21,22 @@ public class SWorldBossRewardConfig implements BaseConfig { private int bossId; + private long score; + /** - * 类型,排名,奖励 + * boss索引id,类型,积分,奖励 */ - public static Map> rewardByTypeAndRankMap = new HashMap<>(); - /** - * boss索引id,类型,排名,奖励 - */ - public static Map>> rewardByBossIdMap = new HashMap<>(); + public static Map>> rewardByBossIdMap = new HashMap<>(); @Override public void init() throws Exception { Map config = STableManager.getConfig(SWorldBossRewardConfig.class); - Map> rewardByTypeAndRankMapTmp = new HashMap<>(); - Map>> rewardByBossIdMapTmp = new HashMap<>(); + Map>> rewardByBossIdMapTmp = new HashMap<>(); config.forEach((id,item)->{ - rewardByTypeAndRankMapTmp.putIfAbsent(item.getType(),new TreeMap<>()); - rewardByTypeAndRankMapTmp.get(item.getType()).put(item.getSection()[0], StringUtil.parseArrayToString(item.getReward())); - rewardByBossIdMapTmp.putIfAbsent(item.getBossId(),new TreeMap<>()); rewardByBossIdMapTmp.get(item.getBossId()).putIfAbsent(item.getType(),new TreeMap<>()); - rewardByBossIdMapTmp.get(item.getBossId()).get(item.getType()).put(item.getSection()[0], StringUtil.parseArrayToString(item.getReward())); + rewardByBossIdMapTmp.get(item.getBossId()).get(item.getType()).put(item.getScore(), StringUtil.parseArrayToString(item.getReward())); }); - - rewardByTypeAndRankMap = rewardByTypeAndRankMapTmp; rewardByBossIdMap = rewardByBossIdMapTmp; } @@ -67,4 +59,8 @@ public class SWorldBossRewardConfig implements BaseConfig { public int getBossId() { return bossId; } + + public long getScore() { + return score; + } } \ No newline at end of file