diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFeteRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFeteRequestHandler.java index e29ba8bbd..21de5dbf6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFeteRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFeteRequestHandler.java @@ -94,7 +94,7 @@ public class FamilyFeteRequestHandler extends BaseHandler levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class); if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + addexp >= levelConfigMap.get(guildInfo.getLevel()).getExp()) { guildInfo.updateExp(guildInfo.getExp() + addexp - levelConfigMap.get(guildInfo.getLevel()).getExp()); - guildInfo.updateLevel(guildInfo.getLevel() + 1); + GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1); RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), new GuildCache(GameApplication.serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName())); } else { guildInfo.updateExp(guildInfo.getExp() + addexp); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_addfete.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_addfete.java index 5fe189467..0617064a8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_addfete.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_addfete.java @@ -34,7 +34,7 @@ public class Cmd_addfete extends GmRoleAbstract { guildInfo.addFete(addexp); Map levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class); if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + addexp >= levelConfigMap.get(guildInfo.getLevel()).getExp()) { - guildInfo.updateLevel(guildInfo.getLevel() + 1); + GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1); guildInfo.updateExp(guildInfo.getExp() + addexp - levelConfigMap.get(guildInfo.getLevel()).getExp()); RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), new GuildCache(GameApplication.serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName())); } else { 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 6c0b49ed2..30251f308 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 @@ -217,7 +217,7 @@ public class GuildChallengeLogic { Map levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class); if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) { guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp()); - guildInfo.updateLevel(guildInfo.getLevel() + 1); + GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1); RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), new GuildCache(GameApplication.serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName())); } else { guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp()); @@ -248,7 +248,7 @@ public class GuildChallengeLogic { Map levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class); if (GuildLogic.checkGuildLevelMax(guildInfo)&&guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) { guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp()); - guildInfo.updateLevel(guildInfo.getLevel() + 1); + GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1); RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), new GuildCache(GameApplication.serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName())); } else { guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp()); 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 dd69c365e..be5a224be 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 @@ -818,7 +818,7 @@ public class GuildFightLogic { redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT_TOTAL_EXP,"",str,getExp); if(guildInfo.getExp()+getExp>=levelConfigMap.get(guildInfo.getLevel()).getExp()){ guildInfo.updateExp(guildInfo.getExp()+getExp-levelConfigMap.get(guildInfo.getLevel()).getExp()); - guildInfo.updateLevel(guildInfo.getLevel()+1); + GuildLogic.upLevel(guildInfo,guildInfo.getLevel() + 1); RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO,"", String.valueOf(guildInfo.getId()),new GuildCache(GameApplication.serverId,guildInfo.getIcon(),guildInfo.getLevel(),guildInfo.getName())); }else{ guildInfo.updateExp(guildInfo.getExp()+getExp); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index 8aebb6a7e..18a409d3f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -1248,21 +1248,28 @@ public class GuildLogic { break; case 3: List serise = SGuildRedPackConfig.welfareRedPackBySerise.get(config.getGroupId()); + serise.stream().sorted((v1,v2)->{ + if(v1.getId()>v2.getId()){ + return -1; + }else{ + return 1; + } + }); for(SGuildRedPackConfig c : serise){ if(redPacketsMap.containsKey(c.getId())){ if(redPacketsMap.get(c.getId())>-1){ - if(c.getId() == config.getId()){ - redPacketsMap.put(c.getId(),1); - break; - } - }else{ - continue; + redPacketsMap.put(c.getId(),1); } + if(c.getId() == config.getId()){ + break; + } + continue; }else{ if(c.getId() == config.getId()){ redPacketsMap.put(config.getId(),1); - }else{ break; + }else{ + redPacketsMap.put(c.getId(),1); } } } @@ -1727,4 +1734,14 @@ public class GuildLogic { } } + public static void upLevel(GuildInfo guildInfo,int level) throws Exception{ + guildInfo.updateLevel(level); + for(int id : guildInfo.getMembers().get(GlobalsDef.CHAIRMAN)) { + User user = UserManager.getUser(id); + if (user == null) + continue; + Poster.getPoster().dispatchEvent(new WelfareRedPackEvent(user.getId(), WelfareRedPacketType.state_level.getType(),level)); + } + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/UserLevelEventProcessor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/UserLevelEventProcessor.java index 2d347f826..df8a69416 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/UserLevelEventProcessor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/UserLevelEventProcessor.java @@ -1,11 +1,14 @@ package com.ljsd.jieling.logic.mission.event; import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameMisionType; import com.ljsd.jieling.logic.mission.MissionType; import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo; +import com.ljsd.jieling.logic.redpacket.WelfareRedPackEvent; +import com.ljsd.jieling.logic.redpacket.WelfareRedPacketType; import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.network.session.ISession; @@ -25,5 +28,6 @@ public class UserLevelEventProcessor implements BaseGameEventProcessor{ ISession session = OnlineUserManager.getSessionByUid(user.getId()); BuyGoodsNewLogic.openPush(session,user,3,upLevel,0); BuyGoodsNewLogic.sendGiftGooodsIndication(user.getId()); + Poster.getPoster().dispatchEvent(new WelfareRedPackEvent(user.getId(), WelfareRedPacketType.player_level.getType(),upLevel)); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/redpacket/WelfareRedPacketType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/redpacket/WelfareRedPacketType.java index 5dd21ad98..7b341988f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/redpacket/WelfareRedPacketType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/redpacket/WelfareRedPacketType.java @@ -8,6 +8,8 @@ public enum WelfareRedPacketType { game_pokemon(5), hero_star(6), soul_demon(7), + player_level(8), + state_level(9), ; private int type; WelfareRedPacketType(int type){