diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/CoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/core/CoreLogic.java index 7b6d886c2..8ed66da60 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/CoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/CoreLogic.java @@ -61,7 +61,7 @@ public class CoreLogic { return 0; } - public void checkCoreCdk() throws Exception{ + public void checkCoreCdk() { try { List all = MongoUtil.getCoreMongoTemplate().findAll(SCdkInfo.class); if(!all.isEmpty()){ @@ -72,7 +72,7 @@ public class CoreLogic { sCdkInfosCacheMap = sCdkInfosMap; } }catch (Exception e){ - LOGGER.error("Exception::cdkErr:"+e.toString()); + LOGGER.error("Exception::cdkErr:"+ e); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreManager.java index 6baf45b88..d3002e631 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreManager.java @@ -39,6 +39,15 @@ public class StoreManager extends MongoBase { updateString(getMongoKey() + ".storeInfoMap." + key, storeInfo); } + public void refreshStoreItem(Integer key,Integer itemKey) { + StoreInfo storeInfo= storeInfoMap.get(key); + if (storeInfo == null){ + return; + } + storeInfo.getItemNumMap().put(itemKey, 0); + updateString(getMongoKey() + ".storeInfoMap." + key, storeInfo); + } + public void newStoreInfo(int id,long lastRefreshTime,long startTime,long endTime,Map itemNumMap) throws Exception { StoreInfo storeInfo = new StoreInfo(id,lastRefreshTime,startTime,endTime,itemNumMap); addStoreInfo(storeInfo); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java index c97402ce8..9a7f429ac 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java @@ -102,12 +102,7 @@ public class GuildChallengeLogic { //先清除特权 if(guildInfo.getCurrBossId()!=0&&guildInfo.getCurrBossId()!= guildMyInfo.getLastMonsterId()&& guildMyInfo.getLastMonsterId()!=0){ if(!guildMyInfo.getRefreshedBoss().contains(guildMyInfo.getLastMonsterId())&&guildMyInfo.getGuildChallengeDamage()!=0){ - for(int clearPrivilege:config.getPrivilege()){ - user.getPlayerInfoManager().clearVipCount(clearPrivilege); - } - user.getPlayerInfoManager().removeVipPriviliageId(3013); - user.getStoreManager().removeStoreItemInfo(7,10031); - StoreLogic.getInstance().sendStoreUpdateIndication(uid,user.getStoreManager().getStoreInfoMap().get(7)); + refreshGuildChallengeStore(user, config.getPrivilege()); guildMyInfo.addRefreshedBoss(guildMyInfo.getLastMonsterId()); isRefresh = 1; } @@ -300,17 +295,12 @@ public class GuildChallengeLogic { if(guildMyInfo.getRefreshedBoss().contains(bossId)) { return; } - if(guildInfo.getBossHpRemain()!=-1){//如果击败的是最后一关 不需要刷新 - int[] refreshPrivilege = config.getPrivilege(); - for(int clearPrivilege:refreshPrivilege){ - user1.getPlayerInfoManager().clearVipCount(clearPrivilege); - } - user1.getPlayerInfoManager().removeVipPriviliageId(3013); - user1.getStoreManager().removeStoreItemInfo(7,10031); - StoreLogic.getInstance().sendStoreUpdateIndication(user1.getId(),user1.getStoreManager().getStoreInfoMap().get(7)); + //如果击败的是最后一关 不需要刷新 + if(guildInfo.getBossHpRemain()!=-1){ + refreshGuildChallengeStore(user1, config.getPrivilege()); + guildMyInfo.addRefreshedBoss(bossId); guildMyInfo.setLastMonsterId(bossId+1); guildMyInfo.setGuildChallengeDamage(0); - guildMyInfo.addRefreshedBoss(bossId); } }); ProtocolsManager.getInstance().updateAyncWorker(worker); @@ -333,7 +323,6 @@ public class GuildChallengeLogic { Family.GuildChallengeIndication.Builder indication = Family.GuildChallengeIndication.newBuilder() .setBlood(remainHp) .setCurBoss(guildInfo.getCurrBossId()); -// GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid); Map> members = guildInfo.getMembers(); for(Set items : members.values()){ for(Integer sendUid : items){ @@ -385,6 +374,19 @@ public class GuildChallengeLogic { MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true); } + /** + * 工会boss胜利刷新免费和付费的挑战次数 + * @param user 用户 + */ + private void refreshGuildChallengeStore(User user, int[] privilege){ + for(int clearPrivilege : privilege){ + user.getPlayerInfoManager().clearVipCount(clearPrivilege); + } + user.getPlayerInfoManager().refreshVipByType(3011); + user.getStoreManager().refreshStoreItem(7,10031); + StoreLogic.getInstance().sendStoreUpdateIndication(user.getId(),user.getStoreManager().getStoreInfoMap().get(7)); + } + /** * 购买buff */