From ac1ac7a73419ac46a82208a5c93442304ed00e71 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 27 Aug 2019 15:07:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=BA=97=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=88=98=E4=BF=A1=E6=81=AF=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/family/GuildFightLogic.java | 57 ++++++++++++------- .../ljsd/jieling/logic/store/StoreLogic.java | 5 +- 2 files changed, 38 insertions(+), 24 deletions(-) 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 127f03af0..a762e1db2 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 @@ -337,7 +337,10 @@ public class GuildFightLogic { User userAttack = UserManager.getUser(session.getUid()); RedisUtil redisUtil = RedisUtil.getInstence(); //战斗次数 - int attackCount = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_ATTACK_COUNT,"",String.valueOf(userAttack.getId()),int.class); + Integer attackCount = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_ATTACK_COUNT,"",String.valueOf(userAttack.getId()),Integer.class); + if(attackCount==null){ + attackCount = 0; + } redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT_ATTACK_COUNT,"",String.valueOf(userAttack.getId()),attackCount+1); User userDefend = UserManager.getUser(defendUid); int defendGuildId = userDefend.getPlayerInfoManager().getGuildId(); @@ -416,7 +419,10 @@ public class GuildFightLogic { //获得星数处理 int attackGuildId = userAttack.getPlayerInfoManager().getGuildId(); String attackRankKey = RedisKey.getKey(RedisKey.FAMILY_FIGHT_STAR_RANK, String.valueOf(attackGuildId), false); - Double starCount = redisUtil.getZSetScore(RedisKey.FAMILY_FIGHT_STAR_RANK, String.valueOf(attackGuildId), String.valueOf(userAttack.getId())); + int starCount = redisUtil.getZSetScore(RedisKey.FAMILY_FIGHT_STAR_RANK, String.valueOf(attackGuildId), String.valueOf(userAttack.getId())).intValue(); + if(starCount==-1){ + starCount = 0; + } redisUtil.zsetAddOne(attackRankKey,String.valueOf(userAttack.getId()),starCount+getStar); //建筑星数 Integer haveGotStar = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_CAL_STAR, String.valueOf(attackGuildId), String.valueOf(defendBuildId), int.class); @@ -526,30 +532,37 @@ public class GuildFightLogic { *公会战结束删除匹配信息 */ private static void removeMatchingInfo(){ + startMatching = true; RedisUtil redisUtil = RedisUtil.getInstence(); + //匹配信息 String matchingKey = RedisKey.getKey(RedisKey.FAMILY_FIGHT_MATCHING_RANK,"",false); - Set matchingRank = redisUtil.getZset(matchingKey, 0, redisUtil.getZsetSize(matchingKey)); - //删除攻击次数信息 + //攻击次数信息 String attackCountKey = RedisKey.getKey(RedisKey.FAMILY_FIGHT_ATTACK_COUNT, "", false); - redisUtil.del(attackCountKey,matchingKey); - for(String index:matchingRank){ - Map fightDefend = redisUtil.getMapValues(RedisKey.FAMILY_FIGHT, index, Integer.class, FamilyFightInfo.class); - for (Map.Entry defendEntry:fightDefend.entrySet()){ - //删除布防信息 - redisUtil.removeMapEntrys(RedisKey.FAMILY_FIGHT,index,defendEntry.getKey()); - //删除公会结算 - String starRankKey = RedisKey.getKey(RedisKey.FAMILY_FIGHT_STAR_RANK, String.valueOf(index), false); - redisUtil.removeZSetRangeByRank(starRankKey,0,redisUtil.getZsetSize(starRankKey)); - } - for(int i = 1;i<=3;i++){ - //删除获得星数信息 - if(redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_CAL_STAR,String.valueOf(index),String.valueOf(i),Integer.class)!=null){ - redisUtil.removeMapEntrys(RedisKey.FAMILY_FIGHT_CAL_STAR,String.valueOf(index),i); - } - } - } + //布防信息 + String familyFightKey = RedisKey.getKey(RedisKey.FAMILY_FIGHT, "", false); + //建筑buff信息 + String familyBuffKey = RedisKey.getKey(RedisKey.FAMILY_FIGHT_MATCHING_RANK, "", false); + //获得星数信息 + String familyFightCalStarKey = RedisKey.getKey(RedisKey.FAMILY_FIGHT_CAL_STAR, "", false); + redisUtil.del(attackCountKey,matchingKey,familyFightKey,familyBuffKey,familyFightCalStarKey); +// for(String index:matchingRank){ +// Map fightDefend = redisUtil.getMapValues(RedisKey.FAMILY_FIGHT, index, Integer.class, FamilyFightInfo.class); +// for (Map.Entry defendEntry:fightDefend.entrySet()){ +// //删除布防信息 +// redisUtil.removeMapEntrys(RedisKey.FAMILY_FIGHT,index,defendEntry.getKey()); +// //删除公会结算 +// String starRankKey = RedisKey.getKey(RedisKey.FAMILY_FIGHT_STAR_RANK, String.valueOf(index), false); +// redisUtil.removeZSetRangeByRank(starRankKey,0,redisUtil.getZsetSize(starRankKey)); +// } +// for(int i = 1;i<=3;i++){ +// //删除获得星数信息 +// if(redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_CAL_STAR,String.valueOf(index),String.valueOf(i),Integer.class)!=null){ +// redisUtil.removeMapEntrys(RedisKey.FAMILY_FIGHT_CAL_STAR,String.valueOf(index),i); +// } +// } +// } //删除匹配信息 - redisUtil.removeZSetRangeByRank(matchingKey,0,redisUtil.getZsetSize(matchingKey)); +// redisUtil.removeZSetRangeByRank(matchingKey,0,redisUtil.getZsetSize(matchingKey)); } /** * 公会战结算 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index c16b17c41..60dbc75c1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -126,8 +126,9 @@ public class StoreLogic { public static void checkStoreRefresh(User user,Map storeInfoMap) throws Exception { long nowTime = System.currentTimeMillis(); StoreManager storeManager = user.getStoreManager(); - for (Map.Entry entry:storeInfoMap.entrySet()){ - StoreInfo storeInfo = entry.getValue(); + Iterator> it = storeInfoMap.entrySet().iterator(); + while(it.hasNext()){ + StoreInfo storeInfo = it.next().getValue(); SStoreTypeConfig sStoreTypeConfig = SStoreTypeConfig.getsStoreTypeConfigMap().get(storeInfo.getId()); if (sStoreTypeConfig.getStoreOpenRule() ==2){ if (nowTime > storeInfo.getEndTime()){