From b24ba14a0be1981fa8d798c5f5a4dbcda8db4a97 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 8 Dec 2022 15:23:30 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=89=AB=E8=8D=A1?= =?UTF-8?q?=E5=A5=96=E5=8A=B1=E7=88=86=E8=A1=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/fight/CombatLogic.java | 31 ++++++++-------- .../com/ljsd/jieling/util/CBean2Proto.java | 2 +- .../java/com/ljsd/jieling/util/ItemUtil.java | 35 ++++++++++++++++++- 3 files changed, 50 insertions(+), 18 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java index 38cb32004..4ebf3140b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java @@ -227,7 +227,7 @@ public class CombatLogic { err = StoreLogic.checkBuyGoodsAndUpdate(user,7,10008,1); } }else{ - err = StoreLogic.checkBuyGoodsAndUpdate(user,7,10015,1); + err = StoreLogic.checkBuyGoodsAndUpdate(user,7,10015,0); } if (!"".equals(err)){ throw new ErrorCodeException(ErrorCode.newDefineCode(err)); @@ -277,7 +277,7 @@ public class CombatLogic { } int[] randomRewardMin = targetMainLevelConfig.getRandomRewardMin(); ItemUtil.combineRewardByMainLine(user,false, true, randomRewardMin, times,itemObj,BIReason.ADVENTURE_BASE_REWARD); - ItemUtil.combineRewardByMainLine(user,true, false,targetMainLevelConfig.getRandomReward(), times,itemRandomObj,BIReason.ADVENTURE_RANDOM_REWARDD); + ItemUtil.combineRewardByMainLine(user,true, false, targetMainLevelConfig.getRandomReward(), times,itemRandomObj,BIReason.ADVENTURE_RANDOM_REWARDD); itemRandomObj.setEquipMap(equipAutoCombine(itemRandomObj.getEquipMap())); //清除无用活动道具 removeNoUseItem(user,itemRandomObj.getItemMap()); @@ -936,20 +936,17 @@ public class CombatLogic { int adventureRefresh = gameSetting.getAdventureRefresh(); int vipTimeAdd = PlayerLogic.getInstance().getMaxCountByPrivilegeType(user, VipPrivilegeType.ADVENTURE_ADD_TIME); int adventureOffline = (gameSetting.getAdventureOffline()+vipTimeAdd)*60*60/adventureRefresh; - ItemMap itemObj = new ItemMap(); - ItemMap itemRandom = new ItemMap(); baseBuilder = CommonProto.Drop.newBuilder(); randomBuilder = CommonProto.Drop.newBuilder(); int takeTimes= 0; + ArrayList baseList = new ArrayList<>(); + ArrayList randomList = new ArrayList<>(); for(Map.Entry fightStateInfoItem : fightStateInfo.entrySet()){ Integer fightId = fightStateInfoItem.getKey(); Integer times = fightStateInfoItem.getValue(); SMainLevelConfig sMainLevelConfig = SMainLevelConfig.config.get(fightId); - int[] randomRewardMin = sMainLevelConfig.getRandomRewardMin(); - ItemUtil.combineRewardByMainLine(user,true,true,randomRewardMin, times,itemObj,BIReason.ADVENTURE_BASE_REWARD); - if (!viewBaseReward){ - ItemUtil.combineRewardByMainLine(user,true,false,sMainLevelConfig.getRandomReward(), times,itemRandom,BIReason.ADVENTURE_RANDOM_REWARDD); - } + baseList.add(new int[][]{sMainLevelConfig.getRandomRewardMin(),new int[]{times}}); + randomList.add(new int[][]{sMainLevelConfig.getRandomReward(),new int[]{times}}); takeTimes+=times; } int fightId = mainLevelManager.getFightId(); @@ -961,15 +958,17 @@ public class CombatLogic { boolean reset = maxTimes0){ times = reset?maxTimes:times; - int[] randomRewardMin = targetMainLevelConfig.getRandomRewardMin(); - ItemUtil.combineRewardByMainLine(user,true,true,randomRewardMin, times,itemObj,BIReason.ADVENTURE_BASE_REWARD); - if (!viewBaseReward){ - ItemUtil.combineRewardByMainLine(user,true,false,targetMainLevelConfig.getRandomReward(), times,itemRandom,BIReason.ADVENTURE_RANDOM_REWARDD); - } + baseList.add(new int[][]{targetMainLevelConfig.getRandomRewardMin(),new int[]{times}}); + randomList.add(new int[][]{targetMainLevelConfig.getRandomReward(),new int[]{times}}); lastTimeTakes=times; } -// ItemUtil.extraAddItem(user,itemObj.getItemMap(),BIReason.ADVENTURE_BASE_REWARD); -// ItemUtil.extraAddItem(user,itemRandom.getItemMap(),BIReason.ADVENTURE_RANDOM_REWARDD); + + ItemMap itemObj = new ItemMap(); + ItemMap itemRandom = new ItemMap(); + ItemUtil.combineRewardByMainLine(user,true,true,baseList,itemObj,BIReason.ADVENTURE_BASE_REWARD); + if (!viewBaseReward){ + ItemUtil.combineRewardByMainLine(user,true,false, randomList,itemRandom,BIReason.ADVENTURE_RANDOM_REWARDD); + } //装备合成 itemRandom.setEquipMap(equipAutoCombine(itemRandom.getEquipMap())); if(viewBaseReward){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index bdc3fd4b3..fc8e6b2f1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -995,7 +995,7 @@ public class CBean2Proto { .build(); } - public static PlayerInfoProto.GetMainLevelInfoResponse getMainLevelInfoResponse(User user ) throws Exception { + public static PlayerInfoProto.GetMainLevelInfoResponse getMainLevelInfoResponse(User user ) throws Exception { long nowMs = TimeUtils.now(); int now = (int)(nowMs/1000); MainLevelManager mainLevelManager = user.getMainLevelManager(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 8ccc90e3f..676d41be0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -358,6 +358,39 @@ public class ItemUtil { extraAddItem(user,itemObj.getItemMap(),reason); } + /** + * 主线挂机奖励,避免循环 + * @throws ErrorCodeException + */ + public static void combineRewardByMainLine(User user,boolean isLoop,boolean fiexdOrRandom, List groupList,ItemMap itemObj,int reason)throws ErrorCodeException{ + for (int[][] list : groupList) { + int[] groups = list[0]; + int time = list[1][0]; + for (int id:groups){ + SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(id); + // 次数 + long num = time / sRewardGroup.getDrapRate(); + // 基础奖励和随机奖励 + if (fiexdOrRandom){ + combineRewardDropGroup(user, new int[]{id}, num,itemObj); + }else { + while (num-->0){ + combineRewardDropGroup(user, new int[]{id}, 1,itemObj); + } + } + // 不足掉落的时间,看脸随机 + int remainder = time % sRewardGroup.getDrapRate(); + // 1-掉落时间,随机数值 + int random = MathUtils.random(1, sRewardGroup.getDrapRate()); + if (random <= remainder){ + combineRewardDropGroup(user, new int[]{id}, 1,itemObj); + } + } + } + // 特权加成奖励 + extraAddItem(user,itemObj.getItemMap(),reason); + } + public static void extraAddItem(User user, Map itemMap,int reason){ ItemManager itemManager = user.getItemManager(); for(Map.Entry item : itemMap.entrySet()){ @@ -384,7 +417,7 @@ public class ItemUtil { selectItemArr(itemArr,itemObj); } - public static void drop(User user,CommonProto.Drop.Builder dropBuilder,ItemMap itemObj,int reason) throws Exception { + public static void drop(User user,CommonProto.Drop.Builder dropBuilder,ItemMap itemObj,int reason) throws Exception { // useRandomItem(user, randomMap, reason); mapToAdd(user,itemObj,dropBuilder,reason); } From 31e496e56637c094c022bd52060571dcdf233c7f Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 8 Dec 2022 17:27:18 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=A6=96=E6=99=B6=E7=B4=AF=E5=85=85?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E5=92=8C=E4=BB=99=E6=99=B6=E7=B4=AF=E5=85=85?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/tools/Utils.java | 27 ++- .../activity/GetShejiAwardRequestHandler.java | 2 +- .../SeletSubRewardPoolRequestHandler.java | 2 +- .../logic/activity/AbstractActivity.java | 33 ++-- .../jieling/logic/activity/ActivityLogic.java | 2 +- .../jieling/logic/activity/ActivityType.java | 4 +- .../logic/activity/ActivityTypeEnum.java | 6 +- .../activity/AllPeopleWelfareActivity.java | 4 +- .../activity/BrushPrivilegeActivity.java | 4 +- .../activity/ChoiceDrawCardActivity.java | 2 +- .../activity/ContinuousGiftActivity.java | 2 +- .../logic/activity/CowFlySkyActivity.java | 2 +- .../DailyPreferentialGiftActivity.java | 4 +- .../activity/EquipExpectRankActivity.java | 2 +- .../activity/EspecialEquipExpectActivity.java | 2 +- .../logic/activity/ExpeditionExpert.java | 7 +- .../logic/activity/FifteenActivity.java | 4 +- .../activity/GiveEndlessDrawActivity.java | 4 +- .../GiveOneHundredThousandActivity.java | 2 +- .../logic/activity/HeroStarActivity.java | 4 +- .../activity/HeroUpExpectRankActivity.java | 2 +- .../logic/activity/HeroUpStarActivity.java | 8 +- .../InfiniteResourcesPavilionActivity.java | 4 +- .../logic/activity/LevelExpectActivity.java | 2 +- .../LimitRandomSpecialMonsterActivityNew.java | 6 +- .../logic/activity/LimitUpCardActivity.java | 2 +- .../logic/activity/LuckyCatActivity.java | 2 +- .../logic/activity/LuckyGetActivity.java | 5 +- .../MissSearchExpectRankActivity.java | 2 +- .../logic/activity/MistyTripActivity.java | 2 +- .../activity/MoneyTotalRechargeActivity.java | 171 ++++++++++++++++++ .../activity/NewRechargeSumDayActivity.java | 2 +- .../logic/activity/NewWelfareActivity.java | 43 +---- .../logic/activity/RechargeFirstActivity.java | 4 +- .../activity/RechargeRewardActivity.java | 2 +- .../logic/activity/RechargeTotalActivity.java | 6 +- .../logic/activity/SevenWorldActivity.java | 4 +- .../logic/activity/SignInSumActivity.java | 2 +- .../activity/SoulEquipExpectActivity.java | 2 +- .../jieling/logic/activity/SubActivity.java | 6 +- .../activity/SummonTreasureActivity.java | 6 +- .../logic/activity/SuperBoxActivity.java | 4 +- .../logic/activity/SuperFundNewActivity.java | 4 +- .../logic/activity/TaSuiLingXiaoActivity.java | 17 +- .../logic/activity/ThreeWorldActivity.java | 6 +- .../logic/activity/event/SuperBoxEvent.java | 5 +- .../logic/activity/event/TotalItemEvent.java | 57 ++++++ .../ljsd/jieling/logic/item/ItemLogic.java | 2 +- .../jieling/logic/store/BuyGoodsNewLogic.java | 4 + .../java/com/ljsd/jieling/util/ItemUtil.java | 45 +++-- 50 files changed, 364 insertions(+), 182 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MoneyTotalRechargeActivity.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/TotalItemEvent.java diff --git a/netty/src/main/java/com/ljsd/jieling/tools/Utils.java b/netty/src/main/java/com/ljsd/jieling/tools/Utils.java index 7597d1d00..eedcbb5a3 100644 --- a/netty/src/main/java/com/ljsd/jieling/tools/Utils.java +++ b/netty/src/main/java/com/ljsd/jieling/tools/Utils.java @@ -6,10 +6,7 @@ import org.slf4j.LoggerFactory; import java.io.*; import java.lang.reflect.Array; import java.security.MessageDigest; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Random; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -87,13 +84,12 @@ public class Utils { int strLength =str.length; Random random = new Random(); int rand = 0 ; - StringBuffer stringBuffer = new StringBuffer(); + StringBuilder stringBuffer = new StringBuilder(); for (int i=0; i< num;i++){ rand = random.nextInt(strLength); stringBuffer.append(str[rand]); } - String randStr = String.valueOf(stringBuffer); - return randStr; + return String.valueOf(stringBuffer); } /** @@ -147,6 +143,21 @@ public class Utils { return objects; } + /** + * 二维数组list转map,仅限道具数组使用 + * @param list + * @return + */ + public static Map getItemMapObject(List list){ + HashMap map = new HashMap<>(); + for (int[][] item : list) { + for (int[] one : item) { + map.put(one[0], map.getOrDefault(one[0],0L)+one[1]); + } + } + return map; + } + /** * map转二维数组 */ @@ -168,4 +179,6 @@ public class Utils { return object; } + + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetShejiAwardRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetShejiAwardRequestHandler.java index eaf0849d1..007b72b0e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetShejiAwardRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetShejiAwardRequestHandler.java @@ -97,7 +97,7 @@ public class GetShejiAwardRequestHandler extends BaseHandler filterMissId) { + public void sendActivityProgress(ISession session, Set filterMissId){ if (session == null) { return; } PlayerInfoProto.ActivityUpateProgressIndication.Builder builder = PlayerInfoProto.ActivityUpateProgressIndication.newBuilder(); - - User user = UserManager.getUserInMem(session.getUid()); - if (user != null && activityMission != null) { - List missInfo = getAllMissInfo(user, activityMission, filterMissId); - CommonProto.ActivityInfo.Builder builder1 = CommonProto.ActivityInfo.newBuilder() - .setValue(activityMission.getV()) - .addAllMission(missInfo) - .setActivityId(id); - builder.setActivityInfo(builder1); - MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_PROGRESS_INDICATION_VALUE, builder.build(), true); + User user = UserManager.getUserNotCache(session.getUid()); + ActivityMission mission = Optional.ofNullable(user).map(v -> v.getActivityManager().getActivityMissionMap().get(id)).orElse(null); + if (mission == null) { + return; } + List missInfo = getAllMissInfo(user, mission, filterMissId); + CommonProto.ActivityInfo.Builder builder1 = CommonProto.ActivityInfo.newBuilder() + .setValue(mission.getV()) + .addAllMission(missInfo) + .setActivityId(id); + builder.setActivityInfo(builder1); + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_PROGRESS_INDICATION_VALUE, builder.build(), true); } - public void sendActivityProgress(User user, ActivityMission activityMission, Set filterMissId) { + public void sendActivityProgress(User user, Set filterMissId) { ISession session = OnlineUserManager.sessionMap.get(user.getId()); if (session != null){ - sendActivityProgress(session,activityMission,filterMissId); + sendActivityProgress(session,filterMissId); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 6adb2d350..990d10018 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1642,7 +1642,7 @@ public class ActivityLogic implements IEventHandler{ //发推送 AbstractActivity acticityType = ActivityTypeEnum.getActicityById(activityId); if(acticityType!=null){ - acticityType.sendActivityProgress(session, activityMission, null); + acticityType.sendActivityProgress(session, null); } MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.FU_XING_STORE_BUY_RESPONSE_VALUE,null,true); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index e0726e084..3ef772ea7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -105,7 +105,7 @@ public interface ActivityType { int CONTINUOUS_GIFT_NEW = 87;//新连续礼包 int ARENA_RANK_EXPERIMENT = 88;//竞技试炼 int DAILY_PREFERENTIAL_GIFT = 89;//每日特惠礼包开启的活动 - int NEW_DAILY_RECHARGE = 93;//新每日充值 + int NEW_DAILY_RECHARGE = 93;//新每日充值(单笔充值活动) int SPECIAL_MONSTER_RANDOM_ACTIVITY = 100;//灵兽宝阁活动 int SPECIAL_MONSTER_GIFT_ACTIVITY = 101;//灵兽礼包 @@ -149,4 +149,6 @@ public interface ActivityType { int NEW_RECHARGE_SUM_DAY_30 = 92;//超值返利30 int NEW_RECHARGE_SUM_DAY_12 = 111;//超值返利12 int GIVE_ONE_HUNDRED_THOUSAND_RECHARGE = 112;//送十万真充 + int MONSTER_MONEY_TOTLE_RECHARGE = 113;//妖晶累充 + int GOD_MONEY_TOTLE_RECHARGE = 114;//仙晶累充 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java index 16c32711e..e75b3e71b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java @@ -104,7 +104,7 @@ public enum ActivityTypeEnum { DAILY_PREFERENTIAL_GIFT(ActivityType.DAILY_PREFERENTIAL_GIFT,DailyPreferentialGiftActivity::new), //每日特惠中60元七天特惠活动 SUMMON_TREASURE(ActivityType.SUMMON_TREASURE,SummonTreasureActivity::new),//招募秘宝 NEW_PLAYER_SHOP(ActivityType.NEW_PLAYER_SHOP, NewPlayerShopActivity::new), - NEW_DAILY_RECHARGE(ActivityType.NEW_DAILY_RECHARGE, RechargeRewardActivity::new), + NEW_DAILY_RECHARGE(ActivityType.NEW_DAILY_RECHARGE, RechargeRewardActivity::new),//(单笔充值活动) HERO_UP_STAR_ACTIVITY(ActivityType.HERO_UP_STAR_ACTIVITY,HeroUpStarActivity::new), DAILY_SPECIAL(ActivityType.DAILY_SPECIAL,DefaultEmptyActivity::new),//每日特惠 fESTIVAL_LOGIN_ACTIVITY(ActivityType.fESTIVAL_LOGIN_ACTIVITY,NewEightActivity::new),//节日登录活动 @@ -123,7 +123,9 @@ public enum ActivityTypeEnum { RECHARGE_FIRST(ActivityType.RECHARGE_FIRST, RechargeFirstActivity::new),//直充购买礼包活动 FREE_RECHARGE(ActivityType.FREE_RECHARGE, DefaultEmptyActivity::new),//免费充值,仙充 OPEN_SERVER_COMPETE_RANK(ActivityType.OPEN_SERVER_COMPETE_RANK, OpenServerCompeteRankActivity::new),//开服冲榜 - GIVE_ONE_HUNDRED_THOUSAND_RECHARGE(ActivityType.GIVE_ONE_HUNDRED_THOUSAND_RECHARGE, GiveOneHundredThousandActivity::new) + GIVE_ONE_HUNDRED_THOUSAND_RECHARGE(ActivityType.GIVE_ONE_HUNDRED_THOUSAND_RECHARGE, GiveOneHundredThousandActivity::new),//送十万真充 + MONSTER_MONEY_TOTLE_RECHARGE(ActivityType.MONSTER_MONEY_TOTLE_RECHARGE, MoneyTotalRechargeActivity::new),//妖晶累充 + GOD_MONEY_TOTLE_RECHARGE(ActivityType.GOD_MONEY_TOTLE_RECHARGE, MoneyTotalRechargeActivity::new),//仙晶累充 ; private int type; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AllPeopleWelfareActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AllPeopleWelfareActivity.java index 56f6f3b2f..46ab5b3a3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AllPeopleWelfareActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AllPeopleWelfareActivity.java @@ -55,7 +55,7 @@ public class AllPeopleWelfareActivity extends AbstractActivity { // 活动数据处理 updateValue(event1.getGiftId()); // 状态推送 - sendActivityProgress(user, user.getActivityManager().getActivityMissionMap().get(id), null); + sendActivityProgress(user, null); } public static int getValue(int goodId){ @@ -156,7 +156,7 @@ public class AllPeopleWelfareActivity extends AbstractActivity { PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user,welfareConfig.getType(),missionId); return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BrushPrivilegeActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BrushPrivilegeActivity.java index 5e7af3587..0c1dfacce 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BrushPrivilegeActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BrushPrivilegeActivity.java @@ -77,7 +77,7 @@ public class BrushPrivilegeActivity extends AbstractActivity { uporsetValue(user, event1.getGiftId(), 1); // 客户端推送 ISession session = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(session, user.getActivityManager().getActivityMissionMap().get(id), null); + sendActivityProgress(session, null); } public void uporsetValue(User user, int giftId, int state) { @@ -202,7 +202,7 @@ public class BrushPrivilegeActivity extends AbstractActivity { PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user,newConfig.getExtraReward(),missionId); return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ChoiceDrawCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ChoiceDrawCardActivity.java index d083b9e84..4822495bf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ChoiceDrawCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ChoiceDrawCardActivity.java @@ -106,7 +106,7 @@ public class ChoiceDrawCardActivity extends AbstractActivity { // 检查是否需要重启奖励 checkResetProgress(user,mission); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user,reward,missionId); return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java index d0bb763dd..80d42a0aa 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java @@ -65,7 +65,7 @@ public class ContinuousGiftActivity extends AbstractActivity { // 客户端推送 ISession session = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(session, user.getActivityManager().getActivityMissionMap().get(id), null); + sendActivityProgress(session, null); } /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java index beba47908..578d4952d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java @@ -87,7 +87,7 @@ public class CowFlySkyActivity extends AbstractActivity { PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user,reward,missionId); return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyPreferentialGiftActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyPreferentialGiftActivity.java index 513b47b19..73aefd06a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyPreferentialGiftActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DailyPreferentialGiftActivity.java @@ -117,7 +117,7 @@ public class DailyPreferentialGiftActivity extends AbstractActivity{ if(day > mission.getV()){ mission.setV(day-1); } - sendActivityProgress(user, mission, null); + sendActivityProgress(user, null); } } @@ -173,7 +173,7 @@ public class DailyPreferentialGiftActivity extends AbstractActivity{ int[][] reward = sActivityRewardConfig.getReward(); activityMission.setV(day+1); checkAndSetProgress(activityMission, activityProgressInfo, missionId); - sendActivityProgress(session, activityMission, null); + sendActivityProgress(session, null); CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD); reportTakeActivityReward(user,reward,missionId); PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/EquipExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/EquipExpectRankActivity.java index d738dc528..f699625a7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/EquipExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/EquipExpectRankActivity.java @@ -47,7 +47,7 @@ class EquipExpectRankActivity extends ExpectRankActivity { } //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/EspecialEquipExpectActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/EspecialEquipExpectActivity.java index 40362394b..8b4d76bf0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/EspecialEquipExpectActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/EspecialEquipExpectActivity.java @@ -47,7 +47,7 @@ class EspecialEquipExpectActivity extends ExpectRankActivity { } //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpeditionExpert.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpeditionExpert.java index 7675624b3..6151e6d79 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpeditionExpert.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpeditionExpert.java @@ -5,17 +5,12 @@ import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.activity.event.EndExpeditionNodeEvent; import com.ljsd.jieling.logic.activity.event.IEvent; -import com.ljsd.jieling.logic.activity.event.MissingRoomBestEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.util.ToolsUtil; import config.SActivityRewardConfig; -import config.SGlobalActivity; -import java.util.ArrayList; -import java.util.List; import java.util.Map; /** @@ -48,7 +43,7 @@ public class ExpeditionExpert extends ExpectRankActivity implements IEventHandle updateProgressWithUser(user,activityMission,nodeEvent.getNodeScore()); //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java index 708fc6936..aec00b02b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java @@ -17,8 +17,6 @@ import util.TimeUtils; import java.util.*; -import static config.SGlobalActivity.getsGlobalActivityMapByType; - public class FifteenActivity extends AbstractActivity { public FifteenActivity(int id) { @@ -88,7 +86,7 @@ public class FifteenActivity extends AbstractActivity { if(isAll){ activityMission.setV(2); } - sendActivityProgress(session,activityMission , null); + sendActivityProgress(session, null); return true; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GiveEndlessDrawActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GiveEndlessDrawActivity.java index e6dc685cd..d39f2d1b7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GiveEndlessDrawActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GiveEndlessDrawActivity.java @@ -49,7 +49,7 @@ public class GiveEndlessDrawActivity extends AbstractActivity { ISession session = OnlineUserManager.sessionMap.get(event1.getUid()); User user = UserManager.getUser(event1.getUid()); // 状态推送 - sendActivityProgress(session, user.getActivityManager().getActivityMissionMap().get(id), null); + sendActivityProgress(session, null); } @Override @@ -160,7 +160,7 @@ public class GiveEndlessDrawActivity extends AbstractActivity { PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user,rewardConfig.getReward(),missionId); return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GiveOneHundredThousandActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GiveOneHundredThousandActivity.java index afdf092b7..63696685b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GiveOneHundredThousandActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GiveOneHundredThousandActivity.java @@ -148,7 +148,7 @@ public class GiveOneHundredThousandActivity extends AbstractActivity { PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user,rewardList,missionId); return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroStarActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroStarActivity.java index 8545d2c23..8370eb955 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroStarActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroStarActivity.java @@ -70,7 +70,7 @@ public class HeroStarActivity extends AbstractActivity { } //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } @Override @@ -128,7 +128,7 @@ public class HeroStarActivity extends AbstractActivity { if(sActivityRewardConfig==null){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - sendActivityProgress(session, activityMission, null); + sendActivityProgress(session, null); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfig.getReward(), BIReason.TAKE_ACTIVITY_REWARD); build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroUpExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroUpExpectRankActivity.java index dbe536793..0ade66932 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroUpExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroUpExpectRankActivity.java @@ -43,7 +43,7 @@ class HeroUpExpectRankActivity extends ExpectRankActivity { } //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroUpStarActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroUpStarActivity.java index d8a3713fb..d1d1c30a9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroUpStarActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroUpStarActivity.java @@ -9,11 +9,9 @@ import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; -import com.ljsd.jieling.util.ToolsUtil; import config.SActivityRewardConfig; import config.SGlobalActivity; import rpc.protocols.CommonProto; @@ -76,7 +74,7 @@ public class HeroUpStarActivity extends AbstractActivity { } //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } @@ -121,7 +119,7 @@ public class HeroUpStarActivity extends AbstractActivity { //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } @@ -144,7 +142,7 @@ public class HeroUpStarActivity extends AbstractActivity { if(sActivityRewardConfig==null){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - sendActivityProgress(session, activityMission, null); + sendActivityProgress(session, null); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfig.getReward(), BIReason.TAKE_ACTIVITY_REWARD); build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/InfiniteResourcesPavilionActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/InfiniteResourcesPavilionActivity.java index cc811f8cd..05759d1f2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/InfiniteResourcesPavilionActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/InfiniteResourcesPavilionActivity.java @@ -59,7 +59,7 @@ public class InfiniteResourcesPavilionActivity extends AbstractActivity { update(user, event1.getGiftId()); // 客户端推送 ISession session = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(session, user.getActivityManager().getActivityMissionMap().get(id), null); + sendActivityProgress(session, null); } @Override @@ -164,7 +164,7 @@ public class InfiniteResourcesPavilionActivity extends AbstractActivity { PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user,newConfig.getExtraReward(),missionId); return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LevelExpectActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LevelExpectActivity.java index 2a11cacec..00517a60d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LevelExpectActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LevelExpectActivity.java @@ -51,7 +51,7 @@ public class LevelExpectActivity extends ExpectRankActivity { //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivityNew.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivityNew.java index 3d0753fbd..08c03b2cd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivityNew.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivityNew.java @@ -5,16 +5,12 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; -import com.ljsd.jieling.logic.activity.event.IEvent; -import com.ljsd.jieling.logic.activity.event.Poster; -import com.ljsd.jieling.logic.activity.event.RandomCardEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.SActivityRewardConfig; -import config.SLotterySpecialConfig; import config.SSpiritAnimalSummon; import manager.STableManager; import rpc.protocols.CommonProto; @@ -94,7 +90,7 @@ public class LimitRandomSpecialMonsterActivityNew extends LimitRandomCardActivit // 检查是否需要重启奖励 checkResetProgress(user,mission); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user,reward,missionId); return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitUpCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitUpCardActivity.java index 7300ab484..6afa38767 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitUpCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitUpCardActivity.java @@ -42,7 +42,7 @@ public class LimitUpCardActivity extends AbstractActivity { } //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java index 42de97613..9a3de29a8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyCatActivity.java @@ -101,7 +101,7 @@ public class LuckyCatActivity extends AbstractActivity { activityProgressInfo.setState(ActivityType.HAD_TAKED); } - sendActivityProgress(session, activityMission, Collections.singleton(missionId)); + sendActivityProgress(session, Collections.singleton(missionId)); //drop int[][] reward = new int[1][]; int[] temp2 = new int[2]; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyGetActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyGetActivity.java index 8ec9dae64..ebb2ddb41 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyGetActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LuckyGetActivity.java @@ -8,10 +8,7 @@ import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; -import com.ljsd.jieling.util.ToolsUtil; import config.SActivityRewardConfig; -import config.SGlobalActivity; -import config.SSpecialConfig; import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; import util.TimeUtils; @@ -92,7 +89,7 @@ public class LuckyGetActivity extends AbstractActivity{ activityMission.setV(2); } - sendActivityProgress(session,activityMission , null); + sendActivityProgress(session, null); return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java index 44800ac51..ac9226e2a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MissSearchExpectRankActivity.java @@ -62,7 +62,7 @@ class MissSearchExpectRankActivity extends ExpectRankActivity { updateProgressWithUser(user,activityMission,1); //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MistyTripActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MistyTripActivity.java index 8aa899748..ea6e3ad99 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MistyTripActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MistyTripActivity.java @@ -54,7 +54,7 @@ public class MistyTripActivity extends AbstractActivity { //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MoneyTotalRechargeActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MoneyTotalRechargeActivity.java new file mode 100644 index 000000000..9446bb0e6 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MoneyTotalRechargeActivity.java @@ -0,0 +1,171 @@ +package com.ljsd.jieling.logic.activity; + +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.jbean.ActivityMission; +import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.SuperBoxEvent; +import com.ljsd.jieling.logic.activity.event.TotalItemEvent; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import config.SActivityRewardConfig; +import config.SRechargeCommodityNewConfig; +import config.SSuperZhenChong; +import rpc.protocols.CommonProto; +import rpc.protocols.PlayerInfoProto; +import util.TimeUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author hj + * bt版:妖晶累充,仙晶累充 + * 2022-9-6 + */ +public class MoneyTotalRechargeActivity extends AbstractActivity { + + MoneyTotalRechargeActivity(int id) { + super(id); + Poster.getPoster().listenEvent(this, TotalItemEvent.class); + } + + @Override + public void initActivity(User user) throws Exception { + // 活动信息初始化 + ActivityMission mission = new ActivityMission(); + ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>()); + user.getActivityManager().getActivityMissionMap().put(id, mission); + LOGGER.info("累充活动-bt版...uid={},activityId={}",user.getId(), id); + } + + @Override + public void onEvent(IEvent event) throws Exception { + // 类型验证 + if (!(event instanceof TotalItemEvent)) { + return; + } + // 获取信息 + TotalItemEvent event1 = (TotalItemEvent) event; + User user = UserManager.getUser(event1.getUserId()); + // 礼包处理 + update(user,event1.getMap()); + // 客户端推送 + ISession session = OnlineUserManager.getSessionByUid(user.getId()); + sendActivityProgress(session,null); + } + + + public void update(User user, Map map) { + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + SActivityRewardConfig rewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).get(0); + if (activityMission == null || rewardConfig == null){ + return; + } + int itemId = rewardConfig.getValues()[0][0]; + Long count = (long)activityMission.getV(); + for (Map.Entry entry : map.entrySet()) { + if (entry.getKey() == itemId){ + count += entry.getValue(); + } + } + activityMission.setV(count.intValue()); + } + + /** + * 获取状态 + * @param user + * @param config + * @return + * 0:不可领取 + * 1:可领取 + * 2:已领取 + */ + private int getState(User user, SActivityRewardConfig config){ + if (config == null){ + return 0; + } + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + ActivityProgressInfo info = mission.getActivityMissionMap().get(config.getId()); + if (info != null && info.getState() == 2){ + return 2; + } + if (mission.getV() >= config.getValues()[0][1]){ + return 1; + } + return 0; + } + + @Override + public List getAllMissInfo(User user,ActivityMission activityMission, Set filter) { + if (activityMission == null){ + return new ArrayList<>(); + } + // 策划表的配置 + List rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); + // 返回对象 + List missionInfos = new ArrayList<>(rewardConfigs.size()); + for (SActivityRewardConfig value : rewardConfigs) { + // 参数初始化 + int missionId = value.getId(); + int progress = activityMission.getV(); + int state = getState(user,value); + // 封装proto并返回 + CommonProto.ActivityInfo.MissionInfo build = CommonProto.ActivityInfo.MissionInfo.newBuilder() + .setMissionId(missionId) + .setProgress(progress) + .setState(state) + .build(); + missionInfos.add(build); + } + return missionInfos; + } + + /** + * 领取奖励 + * @param session + * @param missionId + * @return + * @throws Exception + */ + @Override + public boolean takeReward(ISession session, int missionId) throws Exception { + User user = UserManager.getUser(session.getUid()); + // activity check + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null){ + throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE,"活动信息不存在:"+id); + } + SActivityRewardConfig rewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId); + int state = getState(user, rewardConfig); + if (state != 1){ + throw new ErrorCodeException(ErrorCode.HAD_TAKE,"活动奖励领取失败:"+mission); + } + + // 更新数据库信息 + ActivityProgressInfo info = new ActivityProgressInfo(); + info.setState(2); + mission.getActivityMissionMap().put(missionId,info); + + // reward + CommonProto.Drop.Builder drop = ItemUtil.drop(user, rewardConfig.getReward(), BIReason.TAKE_ACTIVITY_REWARD); + + PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); + MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); + // 状态推送 + sendActivityProgress(session, null); + // 打点上报 + reportTakeActivityReward(user,rewardConfig.getReward(),missionId); + return true; + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java index 536542ca6..a94f85e84 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java @@ -50,7 +50,7 @@ class NewRechargeSumDayActivity extends AbstractActivity { goodUpdate(user, goodId); } // 状态推送 - sendActivityProgress(user, user.getActivityManager().getActivityMissionMap().get(id), null); + sendActivityProgress(user, null); } /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java index 5c01fe7a1..b927ca4e0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java @@ -32,39 +32,6 @@ public class NewWelfareActivity extends AbstractActivity { Poster.getPoster().listenEvent(this, NewWelfareEvent.class); } - @Override - public void initActivity(User user) throws Exception { - super.initActivity(user); - } - - - /** - * 更新进度 - * - * @param filterMissId miss过滤 - */ - @Override - public void sendActivityProgress(ISession session, ActivityMission activityMission, Set filterMissId) { - if (session == null) { - return; - } - PlayerInfoProto.ActivityUpateProgressIndication.Builder builder = PlayerInfoProto.ActivityUpateProgressIndication.newBuilder(); - - User user = UserManager.getUserInMem(session.getUid()); - if (user != null && activityMission != null) { - if (activityMission.getActivityState() != ActivityType.OPEN_STATE) { - return; - } - List missInfo = getAllMissInfo(user, activityMission, filterMissId); - CommonProto.ActivityInfo.Builder builder1 = CommonProto.ActivityInfo.newBuilder() - .setValue(activityMission.getV()) - .addAllMission(missInfo) - .setActivityId(id); - builder.setActivityInfo(builder1); - MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_PROGRESS_INDICATION_VALUE, builder.build(), true); - } - } - @Override public void onEvent(IEvent event) throws Exception { if (!(event instanceof NewWelfareEvent)) { @@ -87,7 +54,7 @@ public class NewWelfareActivity extends AbstractActivity { //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } } @@ -228,7 +195,7 @@ public class NewWelfareActivity extends AbstractActivity { if (isUpdate) { //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } } @@ -251,13 +218,10 @@ public class NewWelfareActivity extends AbstractActivity { activityMission.getActivityMissionMap().put(item.getKey(), item.getValue()); } } - - sendActivityProgress(session, activityMission, null); List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfigs.get(0).getReward(), BIReason.TAKE_ACTIVITY_REWARD); build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); reportTakeActivityReward(user, sActivityRewardConfigs.get(0).getReward(), missionId); - } else { //领取第三个奖励用 if (!activityProgressInfoMap.containsKey(missionId) || activityProgressInfoMap.get(missionId).getState() != 3) { @@ -269,11 +233,12 @@ public class NewWelfareActivity extends AbstractActivity { if (sActivityRewardConfig == null) { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - sendActivityProgress(session, activityMission, null); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfig.getReward(), BIReason.TAKE_ACTIVITY_REWARD); build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); reportTakeActivityReward(user, sActivityRewardConfig.getReward(), missionId); } + + sendActivityProgress(session, null); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeFirstActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeFirstActivity.java index 0e493ed26..cccd44f6c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeFirstActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeFirstActivity.java @@ -58,7 +58,7 @@ public class RechargeFirstActivity extends AbstractActivity { // 活动数据处理 updateValue(user, event1.getGiftId()); // 状态推送 - sendActivityProgress(user, user.getActivityManager().getActivityMissionMap().get(id), null); + sendActivityProgress(user, null); } /** @@ -165,7 +165,7 @@ public class RechargeFirstActivity extends AbstractActivity { PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user, reward, missionId); return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeRewardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeRewardActivity.java index 1f8a7012c..1933e08c7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeRewardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeRewardActivity.java @@ -54,7 +54,7 @@ public class RechargeRewardActivity extends AbstractActivity { } //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } @Override boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java index 33cc706b8..f61bc4bc3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java @@ -1,6 +1,5 @@ package com.ljsd.jieling.logic.activity; -import com.ljsd.GameApplication; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; @@ -17,7 +16,6 @@ import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.SActivityRewardConfig; import config.SGlobalActivity; -import config.SLuxuryFund; import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; import util.TimeUtils; @@ -73,7 +71,7 @@ class RechargeTotalActivity extends AbstractActivity { PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user,config.getReward(),missionId); return true; @@ -142,7 +140,7 @@ class RechargeTotalActivity extends AbstractActivity { } //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenWorldActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenWorldActivity.java index 51ecd0170..36614d75c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenWorldActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SevenWorldActivity.java @@ -68,7 +68,7 @@ public class SevenWorldActivity extends AbstractActivity { info.setState(1); mission.getActivityMissionMap().put(-1, info); // 状态推送 - sendActivityProgress(user, mission, null); + sendActivityProgress(user, null); } } @@ -151,7 +151,7 @@ public class SevenWorldActivity extends AbstractActivity { PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); return true; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SignInSumActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SignInSumActivity.java index 9e04e8cca..ad25b3035 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SignInSumActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SignInSumActivity.java @@ -69,7 +69,7 @@ class SignInSumActivity extends AbstractActivity { } reportTakeActivityReward(UserManager.getUser(session.getUid()),config.getReward(),missionId); ActivityMission activityMission = UserManager.getUser(session.getUid()).getActivityManager().getActivityMissionMap().get(this.id); - sendActivityProgress(session, activityMission, null); + sendActivityProgress(session, null); } return result; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SoulEquipExpectActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SoulEquipExpectActivity.java index ffc0afde0..07cd3d34b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SoulEquipExpectActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SoulEquipExpectActivity.java @@ -47,7 +47,7 @@ class SoulEquipExpectActivity extends ExpectRankActivity { } //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SubActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SubActivity.java index 6e6951fa2..0e25346d8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SubActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SubActivity.java @@ -144,7 +144,7 @@ public class SubActivity extends AbstractActivity { PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); // 推送 - sendActivityProgress(session, activityMission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user, rewardList, missionId); return true; @@ -215,9 +215,9 @@ public class SubActivity extends AbstractActivity { int curLay = user.getActivityManager().getSubRewardPoolInfo().getLay(); if (curLay != sBlessingConfigNew.getFloorCount() && rewardId == activityMission.getV()) { ActivityLogic.getInstance().resumeActivity(user, ActivityType.SUB_ACTIVITY); - sendActivityProgress(session, activityManager.getActivityMissionMap().get(id), null); + sendActivityProgress(session, null); } else { - sendActivityProgress(session, activityMission, Collections.singleton(missionId)); + sendActivityProgress(session, Collections.singleton(missionId)); } reportTakeActivityReward(user, rewards, missionId); PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SummonTreasureActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SummonTreasureActivity.java index 8654b4ce7..b14217101 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SummonTreasureActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SummonTreasureActivity.java @@ -9,8 +9,6 @@ import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; -import com.ljsd.jieling.logic.store.newRechargeInfo.PushRechargeType; import com.ljsd.jieling.logic.store.newRechargeInfo.bean.ReceiveWelfareBag; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; @@ -54,7 +52,7 @@ class SummonTreasureActivity extends AbstractActivity { // 推送客户端数据 ISession session = OnlineUserManager.getSessionByUid(user.getId()); mission.setV(user.getPlayerInfoManager().getGetFiveStarHeroNum()); - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); } } @@ -107,7 +105,7 @@ class SummonTreasureActivity extends AbstractActivity { PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user,reward,missionId); return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java index bb18efb91..2ad03f9ae 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperBoxActivity.java @@ -9,7 +9,6 @@ import com.ljsd.jieling.logic.activity.event.ActivityStateChangeEvent; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.SuperBoxEvent; -import com.ljsd.jieling.logic.dao.ServerConfig; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; @@ -24,7 +23,6 @@ import rpc.protocols.CommonProto; import util.TimeUtils; import java.util.*; -import java.util.stream.Collectors; /** * @author hj @@ -71,7 +69,7 @@ public class SuperBoxActivity extends AbstractActivity { // 客户端推送 ISession session = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(session, user.getActivityManager().getActivityMissionMap().get(id), null); + sendActivityProgress(session, null); } /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperFundNewActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperFundNewActivity.java index 6550db404..4470acd51 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperFundNewActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperFundNewActivity.java @@ -65,7 +65,7 @@ public class SuperFundNewActivity extends AbstractActivity { // 零点刷新 zeroRefresh(user,event1.getGiftId()); // 状态推送 - sendActivityProgress(user, user.getActivityManager().getActivityMissionMap().get(id), null); + sendActivityProgress(user, null); } /** @@ -198,7 +198,7 @@ public class SuperFundNewActivity extends AbstractActivity { PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); // 状态推送 - sendActivityProgress(session, mission, null); + sendActivityProgress(session, null); // 打点上报 reportTakeActivityReward(user,rewards,missionId); return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TaSuiLingXiaoActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TaSuiLingXiaoActivity.java index b81732071..a7c365104 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TaSuiLingXiaoActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TaSuiLingXiaoActivity.java @@ -1,29 +1,14 @@ package com.ljsd.jieling.logic.activity; -import com.ljsd.jieling.exception.ErrorCode; -import com.ljsd.jieling.exception.ErrorCodeException; -import com.ljsd.jieling.globals.BIReason; -import com.ljsd.jieling.jbean.ActivityManager; import com.ljsd.jieling.jbean.ActivityMission; -import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.OnlineUserManager; -import com.ljsd.jieling.logic.activity.event.BlessInfoRefreshEvent; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.TaSuiLingXiaoEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.util.ItemUtil; -import com.ljsd.jieling.util.MessageUtil; -import config.SActivityRewardConfig; -import config.SGlobalActivity; -import config.SLuckyCatConfig; -import rpc.protocols.MessageTypeProto; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import java.util.Map; public class TaSuiLingXiaoActivity extends AbstractActivity { @@ -70,6 +55,6 @@ public class TaSuiLingXiaoActivity extends AbstractActivity { }); //历史最高伤害 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ThreeWorldActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ThreeWorldActivity.java index 4e5c6c75e..350a78ccc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ThreeWorldActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ThreeWorldActivity.java @@ -2,15 +2,11 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.GameApplication; -import com.ljsd.jieling.db.redis.RedisKey; -import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.OnlineUserManager; -import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.util.ToolsUtil; import config.SActivityRewardConfig; import config.SGlobalActivity; import util.TimeUtils; @@ -52,7 +48,7 @@ class ThreeWorldActivity extends AbstractActivity { } //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); - sendActivityProgress(sessionByUid, activityMission, null); + sendActivityProgress(sessionByUid, null); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/SuperBoxEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/SuperBoxEvent.java index 30c9078d9..adc75cdba 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/SuperBoxEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/SuperBoxEvent.java @@ -21,7 +21,7 @@ public class SuperBoxEvent implements IEvent { /** * 礼包id */ - private int giftId; + private int giftId = default_id; /** * 数量 */ @@ -32,6 +32,9 @@ public class SuperBoxEvent implements IEvent { */ private int type; + public SuperBoxEvent() { + } + public SuperBoxEvent(int userId, int giftId) { this.userId = userId; this.giftId = giftId; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/TotalItemEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/TotalItemEvent.java new file mode 100644 index 000000000..cd2a7b0b4 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/TotalItemEvent.java @@ -0,0 +1,57 @@ +package com.ljsd.jieling.logic.activity.event; + +import com.ljsd.jieling.tools.Utils; +import com.ljsd.jieling.util.ItemMap; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author hj + * @Date 2021/5/26 11:05 + * @Description: 累计 + * @Version 1.0 + */ +public class TotalItemEvent implements IEvent { + + private int userId; + /** + * 数量 + */ + private Map map = new HashMap<>(); + + public TotalItemEvent() { + } + + public TotalItemEvent(int userId, Map map) { + this.userId = userId; + this.map = map; + } + + public TotalItemEvent(int userId, List list) { + this.userId = userId; + this.map = Utils.getItemMapObject(list); + } + + public TotalItemEvent(int userId, ItemMap itemMap) { + this.userId = userId; + this.map = itemMap.getItemMap(); + } + + public int getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + public Map getMap() { + return map; + } + + public void setMap(Map map) { + this.map = map; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index 4d4a774aa..3ecb17882 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -1038,7 +1038,7 @@ public class ItemLogic { //发推送 AbstractActivity acticityType = ActivityTypeEnum.getActicityById(activityId); if(acticityType!=null){ - acticityType.sendActivityProgress(session, misson, null); + acticityType.sendActivityProgress(session, null); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index d6457942c..b37b6e66b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -475,6 +475,10 @@ public class BuyGoodsNewLogic { public static void sendGoodsByType(User user,SRechargeCommodityNewConfig config,List dropList) throws Exception{ ISession session = OnlineUserManager.getSessionByUid(user.getId()); int type = config.getType(); + + // 道具累计活动充值活动 + Poster.getPoster().dispatchEvent(new TotalItemEvent(user.getId(),dropList)); + CommonProto.Drop.Builder drop = null; if(dropList != null && !dropList.isEmpty()){ drop = ItemUtil.drop(user, dropList, BIReason.DIRECT_BUY); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 676d41be0..bfabc8338 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -55,20 +55,25 @@ public class ItemUtil { private static Set dropAddition = new HashSet<>();//掉落权重加成id public static Map equipQulityNameMap = new HashMap<>(2); private static final Logger LOGGER = LoggerFactory.getLogger(ItemUtil.class); - private static Set currencyMap = new HashSet<>(2); + private static HashSet rmbItemSet = new HashSet<>(); + static { - - equipQulityNameMap.put(5,"传说"); equipQulityNameMap.put(6,"远古"); + currencyMap.add(Global.GEM); currencyMap.add(Global.GOLD); currencyMap.add(Global.SOULCRYSTAL); currencyMap.add(Global.DEVILJADE);//妖灵玉 currencyMap.add(Global.ELITEPROOF);//精英证明 currencyMap.add(Global.HEARTFIRE);//心火明晶 + + rmbItemSet.add(GlobalItemType.RMB_CARD);//现金卡 + rmbItemSet.add(GlobalItemType.DAY_RMB_CARD);//日抛现金卡 + rmbItemSet.add(GlobalItemType.XIAN_RECHARGE_CARD);//仙充卡 + rmbItemSet.add(GlobalItemType.DAY_XIAN_RECHARGE_CARD);//日抛仙充卡 } /** @@ -584,7 +589,6 @@ public class ItemUtil { /** * 成长百分比 - * @param sRewardItem * @return */ private static int getItemNum(User user,SRewardItem sRewardItem) { @@ -1527,28 +1531,29 @@ public class ItemUtil { * bt是否是记录累充人民币的类型 * 真充券: 只获得对应金额的妖晶和名望经验 * 现金卡: 计入游戏内所有累计充值的活动,不计入单笔充值和直购类活动 - * 仙充卡: 计入游戏内所有累计充值的活动和单笔充值活动,不计入直购类活动(用gm扶持) + * 仙充卡(用gm扶持): 计入游戏内所有累计充值的活动和单笔充值活动,不计入直购类活动 * @param user * @return */ - private static boolean rmbItemHandler(User user, SItem sItem){ - boolean result = true; + private static boolean rmbItemHandler(User user, SItem sItem) throws ErrorCodeException { + if (!rmbItemSet.contains(sItem.getItemType())){ + return false; + } NewRechargeInfo info = user.getPlayerInfoManager().getNewRechargeInfo(); int num = sItem.getExtraReward()[1][0]; - switch (sItem.getItemType()){ - case GlobalItemType.RMB_CARD: - case GlobalItemType.DAY_RMB_CARD: - BuyGoodsNewLogic.changeActivity(user,num,info); - break; - case GlobalItemType.XIAN_RECHARGE_CARD: - case GlobalItemType.DAY_XIAN_RECHARGE_CARD: - info.addRmb(num); - break; - default: - result = false; - break; + // 累充活动 + BuyGoodsNewLogic.changeActivity(user,num,info); + + // 道具累计活动充值活动 + ItemMap itemMap = new ItemMap(); + combineRewardDropGroup(user,sItem.getRewardGroup(),1, itemMap); + Poster.getPoster().dispatchEvent(new TotalItemEvent(user.getId(),itemMap)); + + // 单笔充值 + if (sItem.getItemType() == GlobalItemType.XIAN_RECHARGE_CARD || sItem.getItemType() == GlobalItemType.DAY_XIAN_RECHARGE_CARD){ + Poster.getPoster().dispatchEvent(new SingleRechargeEvent(user.getId(),num)); } - return result; + return true; } public static void addCard(User user,int cardId,List heroList,int reason) throws Exception { From 3463c2052bd0475569a1156a4055bc47f7a8caf5 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 8 Dec 2022 17:33:12 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=A6=96=E6=99=B6=E7=B4=AF=E5=85=85?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E5=92=8C=E4=BB=99=E6=99=B6=E7=B4=AF=E5=85=85?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8,=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/AbstractActivity.java | 10 +++--- .../activity/MoneyTotalRechargeActivity.java | 33 ++++++++++++++++--- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index 0d2771453..ebffbddc1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -120,15 +120,15 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { * @param activityMission * @return */ - public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission) { + public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission) throws Exception { Map activityProgressInfoMap = activityMission.getActivityMissionMap(); if (activityProgressInfoMap.isEmpty()) { return false; } - for (Map.Entry item : activityProgressInfoMap.entrySet()) { - ActivityProgressInfo activityProgressInfo = item.getValue(); - int missionStatus = activityProgressInfo.getState(); - if (missionStatus == ActivityType.WILL_TAKE) { + User user = UserManager.getUser(uid); + List allMissInfo = getAllMissInfo(user, activityMission); + for (CommonProto.ActivityInfo.MissionInfo info : allMissInfo) { + if (info.getState() == ActivityType.WILL_TAKE) { return false; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MoneyTotalRechargeActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MoneyTotalRechargeActivity.java index 9446bb0e6..bc4d26809 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MoneyTotalRechargeActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/MoneyTotalRechargeActivity.java @@ -6,16 +6,14 @@ import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.OnlineUserManager; -import com.ljsd.jieling.logic.activity.event.IEvent; -import com.ljsd.jieling.logic.activity.event.Poster; -import com.ljsd.jieling.logic.activity.event.SuperBoxEvent; -import com.ljsd.jieling.logic.activity.event.TotalItemEvent; +import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.SActivityRewardConfig; +import config.SGlobalActivity; import config.SRechargeCommodityNewConfig; import config.SSuperZhenChong; import rpc.protocols.CommonProto; @@ -168,4 +166,31 @@ public class MoneyTotalRechargeActivity extends AbstractActivity { return true; } + /** + * 检查活动是否完成或者可以领取 + * @param uid + * @param activityId + * @param activityMission + * @return + */ + public boolean checkActivityMissionFinishAndTake(int uid,int activityId,ActivityMission activityMission) throws Exception { + Map activityProgressInfoMap = activityMission.getActivityMissionMap(); + if (activityProgressInfoMap.isEmpty()) { + return false; + } + User user = UserManager.getUser(uid); + List allMissInfo = getAllMissInfo(user, activityMission); + for (CommonProto.ActivityInfo.MissionInfo info : allMissInfo) { + if (info.getState() != 2) { + return false; + } + } + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId); + if(sGlobalActivity.getResetGrade()==0){ + activityMission.setActivityState(ActivityType.FINISH_STATE); + Poster.getPoster().dispatchEvent(new ActivityStateChangeEvent(uid,activityId,ActivityType.FINISH_STATE)); + } + return true; + } + } From c6cb0c2bff5f63495edeee395b9ae0757b7a8c0d Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 8 Dec 2022 11:56:07 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9gm=E7=BA=BF=E4=B8=8B?= =?UTF-8?q?=E8=BF=94=E5=88=A9=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamecommon/src/main/java/util/TimeUtils.java | 14 ++ .../com/ljsd/jieling/db/redis/RedisKey.java | 1 + .../com/ljsd/jieling/db/redis/RedisUtil.java | 12 ++ .../jieling/handler/GetPlayerInfoHandler.java | 2 - .../com/ljsd/jieling/jbean/gm/GmActivity.java | 28 +-- .../jieling/jbean/gm/GmActivityManager.java | 11 - .../jieling/logic/GlobalDataManaager.java | 3 +- .../jieling/logic/activity/ActivityLogic.java | 5 +- .../activityLogic/GmActivityLogic.java | 193 ++++++++---------- .../jieling/logic/player/PlayerLogic.java | 2 +- .../ljsd/jieling/thread/task/MinuteTask.java | 7 - 11 files changed, 119 insertions(+), 159 deletions(-) diff --git a/gamecommon/src/main/java/util/TimeUtils.java b/gamecommon/src/main/java/util/TimeUtils.java index 3df7e48de..0a23866ae 100644 --- a/gamecommon/src/main/java/util/TimeUtils.java +++ b/gamecommon/src/main/java/util/TimeUtils.java @@ -767,6 +767,20 @@ public class TimeUtils { return c.getTimeInMillis(); } + /** + * 获取指定时间,几天后的零点 + * @return + */ + public static long getTomorrowZero(String time, int day) { + Calendar c = Calendar.getInstance(); + c.setTimeInMillis(stringToTimeLong2(time)); + c.add(Calendar.DATE, day); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + return c.getTimeInMillis(); + } + /** * 获取明天零点 * @return diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java index 11bb0b76b..6ba03d888 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java @@ -379,6 +379,7 @@ public class RedisKey { public static final String CROSS_LINGMAISECRET_RECORD = "CROSS_LINGMAISECRET_RECORD";//灵脉记录 public static final String CROSS_LINGMAI_RANK_PERSON = "CROSS_LINGMAI_RANK_PERSON";//灵脉积分排行 + public static final String GM_ACTIVITY_INFO = "GM_ACTIVITY_INFO";//GM活动信息 public static Set familyKey = new HashSet<>(); /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java index e0b70f067..89010589e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java @@ -1394,6 +1394,18 @@ public class RedisUtil { return result; } + public Map getMapValues2(String type,String key,Class keyClazz,Class valueClazz){ + Map result = new HashMap<>(); + String rkey = getKey(type, key, false); + Map entries = redisTemplate.opsForHash().entries(rkey); + for(Map.Entry item : entries.entrySet()){ + Object key1 = item.getKey(); + Object value = item.getValue(); + result.put(gson.fromJson(gson.toJson(key1),keyClazz),gson.fromJson(value.toString(),valueClazz)); + } + return result; + } + public Map getMapValues(String key,Class keyClazz,Class valueClazz){ Map result = new HashMap<>(); Map entries = redisTemplate.opsForHash().entries(key); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index 00848f1b0..72c45c50c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -20,7 +20,6 @@ import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.activity.ActivityTypeEnum; import com.ljsd.jieling.logic.activity.ChoiceDrawCardActivity; import com.ljsd.jieling.logic.activity.LimitRandomSpecialMonsterActivityNew; -import com.ljsd.jieling.logic.activity.activityLogic.GmActivityLogic; import com.ljsd.jieling.logic.activity.event.HeroUpStarEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent; @@ -83,7 +82,6 @@ public class GetPlayerInfoHandler extends BaseHandler{ PlayerLogic.getInstance().checkOldMonthCard(user); ActivityLogic.getInstance().flushForLogin(user,iSession); GlobalDataManaager.checkNeedReFlush(iSession,user,null); - GmActivityLogic.getInstance().updateGmActivity(user); BuyGoodsNewLogic.refreshWelfareState(user); user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0); long now = TimeUtils.now(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/jbean/gm/GmActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/jbean/gm/GmActivity.java index 22b689e71..7656b758d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/jbean/gm/GmActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/jbean/gm/GmActivity.java @@ -1,6 +1,7 @@ package com.ljsd.jieling.jbean.gm; import com.ljsd.common.mogodb.MongoBase; +import com.ljsd.jieling.db.mongo.gmActivity.ARBActivity; import com.ljsd.jieling.logic.dao.root.User; import java.util.HashMap; @@ -16,14 +17,19 @@ public class GmActivity extends MongoBase { private String id; private int type; private int value; - private String startTime; - private String endTime; public GmActivity() { //绑定关系 this.setRootCollection(User._COLLECTION_NAME); } + public GmActivity(ARBActivity arbActivity) { + this.id = arbActivity.getId(); + this.type = arbActivity.getType(); + //绑定关系 + this.setRootCollection(User._COLLECTION_NAME); + } + public String getId() { return id; } @@ -64,22 +70,4 @@ public class GmActivity extends MongoBase { this.value = value; updateString("value",value); } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - updateString("startTime",startTime); - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - updateString("endTime",endTime); - } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/jbean/gm/GmActivityManager.java b/serverlogic/src/main/java/com/ljsd/jieling/jbean/gm/GmActivityManager.java index 32db7c916..f74d66de0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/jbean/gm/GmActivityManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/jbean/gm/GmActivityManager.java @@ -13,8 +13,6 @@ import java.util.HashMap; public class GmActivityManager extends MongoBase { private HashMap activityMap = new HashMap<>(); - private int updateVersion; - public HashMap getActivityMap() { return activityMap; } @@ -33,13 +31,4 @@ public class GmActivityManager extends MongoBase { this.activityMap.remove(activityId); updateString("activityMap",activityMap); } - - public int getUpdateVersion() { - return updateVersion; - } - - public void setUpdateVersion(int updateVersion) { - this.updateVersion = updateVersion; - updateString("updateVersion",updateVersion); - } } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index ba34d4220..7e6c62e79 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -304,8 +304,7 @@ public class GlobalDataManaager implements IManager { new SummonTreasureHandler(); new ArchitectureUnLockHandler(); new SaveHeroForceEventHandler(); - // 四灵试炼转移数据,只执行一次 -// FourChallengeLogic.getInstance().redisToMongoDB(); + new GmActivityLogic(); ChampionshipLogic.minuteCheck(true); GuildFightLogic.minuteCheckForCarFight(); } catch (Exception e) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 990d10018..d65387d19 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -830,7 +830,7 @@ public class ActivityLogic implements IEventHandler{ } - public void checkActivityIsFinish(User user) { + public void checkActivityIsFinish(User user) throws Exception { ActivityManager activityManager = user.getActivityManager(); Map activityMissionMap = activityManager.getActivityMissionMap(); for (Map.Entry item : activityMissionMap.entrySet()) { @@ -839,9 +839,6 @@ public class ActivityLogic implements IEventHandler{ } ActivityMission activityMission = item.getValue(); //7201活动弃用 - if(activityMission == null){ - continue; - } if(item.getKey() == 7201){ continue; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/GmActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/GmActivityLogic.java index b021bb492..b57151561 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/GmActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/GmActivityLogic.java @@ -10,20 +10,14 @@ import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.jbean.gm.GmActivity; import com.ljsd.jieling.jbean.gm.GmActivityManager; import com.ljsd.jieling.jbean.gm.GmMission; -import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.activity.IEventHandler; import com.ljsd.jieling.logic.activity.event.AutoRechargeBackEvent; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; -import com.ljsd.jieling.logic.activity.event.SuperBoxEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mail.MailLogic; -import com.ljsd.jieling.network.server.ProtocolsManager; -import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.util.AyyncWorker; import com.ljsd.jieling.util.ItemUtil; -import config.SErrorCodeEerverConfig; import config.SRechargeCommodityNewConfig; import org.bson.types.ObjectId; import org.slf4j.Logger; @@ -34,6 +28,7 @@ import org.springframework.data.mongodb.core.query.Query; import util.StringUtil; import util.TimeUtils; +import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; @@ -59,8 +54,6 @@ public class GmActivityLogic implements IEventHandler { public final static GmActivityLogic instance = new GmActivityLogic(); } - private static int gameUpdateVersion = 0; - @Override public void onEvent(IEvent event) throws Exception { if (!(event instanceof AutoRechargeBackEvent)){ @@ -76,54 +69,83 @@ public class GmActivityLogic implements IEventHandler { } User user = UserManager.getUser(rechargeBackEvent.getUserId()); GmActivityManager manager = user.getGmActivityManager(); - HashMap activityMap = manager.getActivityMap(); - // 邮件信息 - String title = SErrorCodeEerverConfig.getI18NMessage("zidongfanli_mail_title"); - String content = SErrorCodeEerverConfig.getI18NMessage("zidongfanli_mail_text"); + Map arbActivityMap = getArbActivity(); - for (Map.Entry entry : activityMap.entrySet()) { - GmActivity gmActivity = entry.getValue(); + for (Map.Entry entry : arbActivityMap.entrySet()) { + ARBActivity arbActivity = entry.getValue(); // 时间校验 - long start = TimeUtils.dateFormat2(gmActivity.getStartTime()); - long end = TimeUtils.dateFormat2(gmActivity.getEndTime()); + long start = getStartTime(arbActivity); + long end = getEndTime(arbActivity); long now = TimeUtils.now(); if (start > now || end <= now){ continue; } - List rewards = new ArrayList<>(); + // 获取全部活动信息 + GmActivity gmActivity = manager.getActivityMap().getOrDefault(entry.getKey(), new GmActivity(arbActivity)); switch (gmActivity.getType()){ - case 1: - case 3: - case 5://单笔累充,多日累充,永久大充 - getDefaultReward(gmActivity,config.getPrice(),rewards); - break; case 2://妖晶返利 - getRewardToMonsterCurrencyBack(gmActivity,config.getPrice(),rewards); + getRewardToMonsterCurrencyBack(user, gmActivity,config.getPrice()); break; case 4://单笔充值 - getRewardToSingleRecharge(gmActivity,config.getPrice(),rewards); + getRewardToSingleRecharge(user, gmActivity,config.getPrice()); break; - default: - LOGGER.error("充值返利,未找到得活动类型,uid:{}, activityId:{}", user.getId(), gmActivity.getId()); + default://1、3、5、6(单笔累充,多日累充,永久大充,开服首日累充) + getDefaultReward(user, gmActivity,config.getPrice()); continue; } manager.putActivityMap(gmActivity.getId(),gmActivity); - // 验证奖励非空 - String mailReward = ItemUtil.getMailReward(rewards); - if (StringUtil.isEmpty(mailReward)){ - continue; - } - MailLogic.getInstance().sendMail(user.getId(),title,content,mailReward,TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME); } } + /** + * 获取开始时间 + * @param arbActivity + * @return + * @throws ParseException + */ + private long getStartTime(ARBActivity arbActivity) throws ParseException { + long start = TimeUtils.dateFormat2(arbActivity.getStartTime()); + if (arbActivity.getType() == 6){ + start = TimeUtils.stringToTimeLong2(GameApplication.serverConfig.getOpenTime()); + } + return start; + } + + /** + * 获取结束时间 + * @param arbActivity + * @return + * @throws ParseException + */ + private long getEndTime(ARBActivity arbActivity) throws ParseException { + long end = TimeUtils.dateFormat2(arbActivity.getEndTime()); + if (arbActivity.getType() == 6){ + end = TimeUtils.getTomorrowZero(GameApplication.serverConfig.getOpenTime(),1); + } + return end; + } + + /** + * 获取gm活动 + * @return + */ + private Map getArbActivity(){ + HashMap map = new HashMap<>(); + // 单属于本服的活动 + Map arbActivityMap = RedisUtil.getInstence().getMapValues2(RedisKey.GM_ACTIVITY_INFO, String.valueOf(GameApplication.serverId), String.class, ARBActivity.class); + map.putAll(arbActivityMap); + // 全部服务器的活动 + Map allActivityMap = RedisUtil.getInstence().getMapValues2(RedisKey.GM_ACTIVITY_INFO, "0", String.class, ARBActivity.class); + map.putAll(allActivityMap); + return map; + } + /** * 默认奖励 * @param gmActivity * @param price - * @param rewards */ - private void getDefaultReward(GmActivity gmActivity, double price, List rewards){ + private void getDefaultReward(User user, GmActivity gmActivity, double price) throws Exception { List gmMissionList = findAllGmMission(gmActivity.getId()); int num = gmActivity.getValue() + (int) price; for (ARBMission arbMission : gmMissionList) { @@ -136,8 +158,11 @@ public class GmActivityLogic implements IEventHandler { if (num < arbMission.getRechargeNum()){ continue; } - // 奖励 - rewards.add(arbMission.getReward()); + // 发邮件 + String mailReward = ItemUtil.getMailReward(arbMission.getReward()); + if (!StringUtil.isEmpty(mailReward)){ + MailLogic.getInstance().sendMail(user.getId(),arbMission.getActivity().getName(),arbMission.getTitle(),mailReward,TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME); + } // 记录到库 gmMission.setId(arbMission.getId()); gmMission.setState(1); @@ -150,9 +175,8 @@ public class GmActivityLogic implements IEventHandler { * 单笔充值奖励 * @param gmActivity * @param price - * @param rewards */ - private void getRewardToSingleRecharge(GmActivity gmActivity, double price, List rewards){ + private void getRewardToSingleRecharge(User user, GmActivity gmActivity, double price) throws Exception { List gmMissionList = findAllGmMission(gmActivity.getId()); for (ARBMission arbMission : gmMissionList) { GmMission gmMission = gmActivity.getMissionMap().getOrDefault(arbMission.getId(), new GmMission()); @@ -164,8 +188,11 @@ public class GmActivityLogic implements IEventHandler { if (price != arbMission.getRechargeNum()){ continue; } - // 奖励 - rewards.add(arbMission.getReward()); + // 发邮件 + String mailReward = ItemUtil.getMailReward(arbMission.getReward()); + if (!StringUtil.isEmpty(mailReward)){ + MailLogic.getInstance().sendMail(user.getId(),arbMission.getActivity().getName(),arbMission.getTitle(),mailReward,TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME); + } // 记录到库 gmMission.setId(arbMission.getId()); gmMission.setState(1); @@ -177,9 +204,8 @@ public class GmActivityLogic implements IEventHandler { * 妖晶返利奖励 * @param gmActivity * @param price - * @param rewards */ - private void getRewardToMonsterCurrencyBack(GmActivity gmActivity, double price, List rewards){ + private void getRewardToMonsterCurrencyBack(User user, GmActivity gmActivity, double price) throws Exception { List gmMissionList = findAllGmMission(gmActivity.getId()); List arbMissions = gmMissionList.stream().sorted(Comparator.comparing(ARBMission::getSort)).collect(Collectors.toList()); int num = gmActivity.getValue() + (int) price; @@ -205,7 +231,12 @@ public class GmActivityLogic implements IEventHandler { int rewardNum = (int) (arbMission.getBackRatio()/100d*1000*min); // 返利妖晶 int[][] reward = {{16,rewardNum}}; - rewards.add(reward); + + // 发邮件 + String mailReward = ItemUtil.getMailReward(reward); + if (!StringUtil.isEmpty(mailReward)){ + MailLogic.getInstance().sendMail(user.getId(),arbMission.getActivity().getName(),arbMission.getTitle(),mailReward,TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME); + } // 档位信息更新 gmMission.setId(arbMission.getId()); if (num - min > 0){ @@ -218,46 +249,20 @@ public class GmActivityLogic implements IEventHandler { } } - /** - * 校验活动开关 - * @param user - */ - public void updateGmActivity(User user){ - GmActivityManager gmActivityManager = user.getGmActivityManager(); - int version = getRedisUpdateVersion(); - if (gmActivityManager.getUpdateVersion() == version){ - return; - } - List list = findServerActivityList(String.valueOf(GameApplication.serverId)); - HashMap activityMap = gmActivityManager.getActivityMap(); - // 删除不存在得活动 - Set gmKeys = list.stream().map(ARBActivity::getId).collect(Collectors.toSet()); - Set gameKeys = new HashSet<>(activityMap.keySet()); - for (String key : gameKeys) { - if (!gmKeys.contains(key)){ - gmActivityManager.removeActivity(key); - } - } - // 更新活动信息 - for (ARBActivity arbActivity : list) { - GmActivity gmActivity = activityMap.getOrDefault(arbActivity.getId(),new GmActivity()); - gmActivity.setId(arbActivity.getId()); - gmActivity.setType(arbActivity.getType()); - gmActivity.setStartTime(arbActivity.getStartTime()); - gmActivity.setEndTime(arbActivity.getEndTime()); - gmActivityManager.putActivityMap(gmActivity.getId(),gmActivity); - } - gmActivityManager.setUpdateVersion(version); - } - /** * 零点更新活动信息 * @param user */ public void zeroUpdateGmActivity(User user){ - updateGmActivity(user); + Map arbActivityMap = getArbActivity(); GmActivityManager manager = user.getGmActivityManager(); for (GmActivity gmActivity : manager.getActivityMap().values()) { + ARBActivity arbActivity = arbActivityMap.get(gmActivity.getId()); + // 活动已经从gm上删除了,在这里删除数据库中的 + if (arbActivity == null){ + manager.removeActivity(gmActivity.getId()); + continue; + } // 单笔累充和妖晶返利每日清零 if (gmActivity.getType() == 1 || gmActivity.getType() == 2){ gmActivity.setValue(0); @@ -266,35 +271,11 @@ public class GmActivityLogic implements IEventHandler { } } - /** - * 每分钟处理 - */ - public static void minuteTask(){ - int version = getRedisUpdateVersion(); - if (gameUpdateVersion == version){ - return; - } - gameUpdateVersion = version; - try { - for (ISession session : OnlineUserManager.sessionMap.values()) { - User user = UserManager.getUser(session.getUid()); - AyyncWorker ayyncWorker = new AyyncWorker(user, true, user1 -> { - GmActivityLogic.getInstance().updateGmActivity(user); - }); - ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker); - } - MongoUtil.getInstence().lastUpdate(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - public List findAllGmActivity() { MongoTemplate coreMonoTemplate = MongoUtil.getCoreMongoTemplate(); return coreMonoTemplate.findAll(ARBActivity.class); } - public List findServerActivityList(String serverId) { List resultList = new ArrayList<>(); for (ARBActivity activity : findAllGmActivity()) { @@ -311,16 +292,4 @@ public class GmActivityLogic implements IEventHandler { return coreMonoTemplate.find(query, ARBMission.class); } - /** - * 从redis获取更新号码(秒级时间戳格式) - * @return - */ - public static int getRedisUpdateVersion(){ - String updateVersion = (String) RedisUtil.getInstence().get(RedisKey.GM_ACTIVITY_UPDATE); - if (updateVersion == null){ - return 0; - } - return Integer.parseInt(updateVersion); - } - } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 2badc229d..c6781796b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -1992,7 +1992,7 @@ public class PlayerLogic { return 0; } int lv = 0; - List list = typeMap.values().stream().collect(Collectors.toList()); + List list = new ArrayList<>(typeMap.values()); Item item = user.getItemManager().getItem(list.get(0).getExperience()[0]); long num = Optional.ofNullable(item).map(Item::getItemNum).orElse(0L); for (SPrestigeConfig value : list) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java index 878715004..e0e23fc28 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java @@ -175,13 +175,6 @@ public class MinuteTask extends Thread { LOGGER.error("跨服排行榜初始化异常,Exception::=>{}",e.toString()); } - try { - GmActivityLogic.minuteTask(); - }catch (Exception e){ - e.printStackTrace(); - LOGGER.error("自动返利初始化异常,Exception::=>{}",e.toString()); - } - try { ArenaLogic.getInstance().worldSendReward(); }catch (Exception e){ From ddf90096dc0b11ae9713ef43f7df091d78622bd9 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 8 Dec 2022 12:37:56 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=BA=BF=E4=B8=8B?= =?UTF-8?q?=E8=BF=94=E5=88=A9=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/activityLogic/GmActivityLogic.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/GmActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/GmActivityLogic.java index b57151561..ea1309396 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/GmActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/GmActivityLogic.java @@ -91,7 +91,7 @@ public class GmActivityLogic implements IEventHandler { break; default://1、3、5、6(单笔累充,多日累充,永久大充,开服首日累充) getDefaultReward(user, gmActivity,config.getPrice()); - continue; + break; } manager.putActivityMap(gmActivity.getId(),gmActivity); } @@ -240,6 +240,7 @@ public class GmActivityLogic implements IEventHandler { // 档位信息更新 gmMission.setId(arbMission.getId()); if (num - min > 0){ + gmMission.setValue(arbMission.getAfterNum()); gmMission.setState(1); num -= arbMission.getAfterNum(); }else { From 2aa1651e994e5d8dc277cb97612da9f783bc6c88 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 8 Dec 2022 16:33:13 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E9=9C=80=E6=B1=82=EF=BC=9Agm=E5=8F=AF?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=9C=80=E6=97=A9=E6=99=8B=E5=8D=87=E7=A5=9E?= =?UTF-8?q?=E5=B0=8A11=E3=80=8112=E7=BA=A7=E5=BE=97=E4=B8=89=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/db/redis/RedisKey.java | 2 + .../ljsd/jieling/handler/TakeMailHandler.java | 5 +- .../ljsd/jieling/jbean/gm/UserGodLvVo.java | 84 ++++++++ .../jieling/logic/GlobalDataManaager.java | 1 + .../logic/activity/event/AddItemEvent.java | 14 +- .../activity/eventhandler/AddItemHandler.java | 45 +++++ .../java/com/ljsd/jieling/util/ItemUtil.java | 182 +++--------------- 7 files changed, 173 insertions(+), 160 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/jbean/gm/UserGodLvVo.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/AddItemHandler.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java index 6ba03d888..103ca1d1b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java @@ -381,6 +381,8 @@ public class RedisKey { public static final String GM_ACTIVITY_INFO = "GM_ACTIVITY_INFO";//GM活动信息 + public static final String GOD_LEVEL_UP_TIME = "GOD_LEVEL_UP_TIME";//晋升神尊等级排序 + public static Set familyKey = new HashSet<>(); /** * 四灵试炼,0:首次通关,1:最低战力 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/TakeMailHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/TakeMailHandler.java index fbfa495d8..0fb934b27 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/TakeMailHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/TakeMailHandler.java @@ -3,11 +3,11 @@ package com.ljsd.jieling.handler; import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; -import rpc.protocols.MessageTypeProto; -import rpc.protocols.PlayerInfoProto; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import rpc.protocols.MessageTypeProto; +import rpc.protocols.PlayerInfoProto; import java.util.List; @@ -28,6 +28,5 @@ public class TakeMailHandler extends BaseHandler { PlayerInfoProto.TakeMailRequest takeMailRequest = PlayerInfoProto.TakeMailRequest.parseFrom(message); List mailIdsList = takeMailRequest.getMailIdsList(); MailLogic.getInstance().takeMail(iSession,mailIdsList, userId); - } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/jbean/gm/UserGodLvVo.java b/serverlogic/src/main/java/com/ljsd/jieling/jbean/gm/UserGodLvVo.java new file mode 100644 index 000000000..e1e62b2c0 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/jbean/gm/UserGodLvVo.java @@ -0,0 +1,84 @@ +package com.ljsd.jieling.jbean.gm; + +import com.ljsd.GameApplication; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.player.PlayerLogic; +import util.TimeUtils; + +/** + * @Author hj + * @Date 2022/12/8 16:00:38 + * @Description: + * @Version 1.0 + */ +public class UserGodLvVo { + //角色id + private int uid; + //角色名称 + private String name; + //区服id + private String serverId; + //创角时间 + private String createTime; + //神尊等级 + private int godLv; + //神尊等级到达时间 + private String upTime; + + public UserGodLvVo(User user) { + this.uid = user.getId(); + this.name = user.getPlayerInfoManager().getNickName(); + this.serverId = String.valueOf(GameApplication.serverId); + this.createTime = TimeUtils.getTimeStamp2(user.getPlayerInfoManager().getCreateTime()); + this.godLv = PlayerLogic.getInstance().getGodPrivilegeLv(user); + this.upTime = TimeUtils.getTimeStamp2(TimeUtils.now()); + } + + public int getUid() { + return uid; + } + + public void setUid(int uid) { + this.uid = uid; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getServerId() { + return serverId; + } + + public void setServerId(String serverId) { + this.serverId = serverId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public int getGodLv() { + return godLv; + } + + public void setGodLv(int godLv) { + this.godLv = godLv; + } + + public String getUpTime() { + return upTime; + } + + public void setUpTime(String upTime) { + this.upTime = upTime; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index 7e6c62e79..53a0df632 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -304,6 +304,7 @@ public class GlobalDataManaager implements IManager { new SummonTreasureHandler(); new ArchitectureUnLockHandler(); new SaveHeroForceEventHandler(); + new AddItemHandler(); new GmActivityLogic(); ChampionshipLogic.minuteCheck(true); GuildFightLogic.minuteCheckForCarFight(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/AddItemEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/AddItemEvent.java index d3bbc9fbe..17f833142 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/AddItemEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/AddItemEvent.java @@ -4,20 +4,20 @@ import java.util.Map; public class AddItemEvent implements IEvent { - private int useId; - Map useItemMap; + private int userId; + Map useItemMap; - public AddItemEvent(int useId, Map useItemMap) { - this.useId = useId; + public AddItemEvent(int userId, Map useItemMap) { + this.userId = userId; this.useItemMap = useItemMap; } - public Map getUseItemMap() { + public Map getUseItemMap() { return useItemMap; } - public int getUseId() { - return useId; + public int getUserId() { + return userId; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/AddItemHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/AddItemHandler.java new file mode 100644 index 000000000..e1c474652 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/eventhandler/AddItemHandler.java @@ -0,0 +1,45 @@ +package com.ljsd.jieling.logic.activity.eventhandler; + +import com.ljsd.GameApplication; +import com.ljsd.jieling.db.redis.RedisKey; +import com.ljsd.jieling.db.redis.RedisUtil; +import com.ljsd.jieling.jbean.gm.UserGodLvVo; +import com.ljsd.jieling.logic.activity.IEventHandler; +import com.ljsd.jieling.logic.activity.event.AddItemEvent; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.player.PlayerLogic; + +/** + * @author lvxinran + * @date 2020/1/7 + * @discribe + */ +public class AddItemHandler implements IEventHandler{ + public AddItemHandler() { + Poster.getPoster().listenEvent(this, AddItemEvent.class); + } + + @Override + public void onEvent(IEvent event) throws Exception { + if (!(event instanceof AddItemEvent)) { + return; + } + AddItemEvent itemEvent = (AddItemEvent) event; + User user = UserManager.getUser(itemEvent.getUserId()); + // 包含神尊经验道具,itemId:1352 + if (itemEvent.getUseItemMap().containsKey(1352)){ + int lv = PlayerLogic.getInstance().getGodPrivilegeLv(user); + String key = RedisKey.GOD_LEVEL_UP_TIME + ":" + GameApplication.serverId + ":" + lv; + String uid = String.valueOf(user.getId()); + UserGodLvVo userGodLvVo = RedisUtil.getInstence().getMapValue(key, uid, UserGodLvVo.class); + if (userGodLvVo == null){ + userGodLvVo = new UserGodLvVo(user); + RedisUtil.getInstence().putMapEntry(key, uid, userGodLvVo); + } + } + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index bfabc8338..a98ad1e9c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -712,144 +712,7 @@ public class ItemUtil { * @throws Exception */ public static void addItem(User user, Map itemMap,CommonProto.Drop.Builder dropBuilder,int reason) throws Exception { - if (itemMap.isEmpty()) { - return; - } - EquipManager equipManager=user.getEquipManager(); - List itemProtoList = new CopyOnWriteArrayList<>(); - ItemManager itemManager = user.getItemManager(); - List sendToFront = new CopyOnWriteArrayList<>(); - //超过上限不能直接获得 - Map extraItem = new HashMap<>(itemMap.size()); - ListchangeEquipList=null; - for (Map.Entry entry : itemMap.entrySet()) { - SItem sItem = SItem.getsItemMap().get (entry.getKey()); - if (sItem.getItemBaseType()==6){ - equipManager.addEquipList(entry.getKey()); - } - if (sItem.getItemType()==3 && reason != BIReason.EQUIP_UNLOAD_REWARD - && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD){ - if (changeEquipList==null) { - changeEquipList=new ArrayList<>(); - } - itemManager.setEquipBookMap(entry.getKey(),entry.getValue()); - changeEquipList.add(entry.getKey()); - } - long itemNumlimit = sItem.getItemNumlimit(); - long itemNum = entry.getValue().intValue(); - if(itemNum <= 0){ - continue; - } - if (itemNum >= itemNumlimit){ - itemNum = itemNumlimit; - } - Item item = itemManager.getItem(entry.getKey()); - if (item == null) { - item = itemManager.newItem(entry.getKey(), itemNum); - } else { - if(sItem.getId()==Global.MISSING_ROOM_ITEM&&reason==BIReason.ADVENTURE_BASE_REWARD){ - itemNumlimit = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(user.getPlayerInfoManager().getLevel()).getMazeTreasureMax(); - } - //数量超过了 - if(item.getItemNum()> itemNumlimit){ - - //如果是寻龙玉,直接返回不给 - if(sItem.getId()==Global.MISSING_ROOM_ITEM&&reason==BIReason.ADVENTURE_BASE_REWARD){ - continue; - } - if(reason==BIReason.TAKE_MAIL_REWARD){ - throw new ErrorCodeException(ErrorCode.BAG_FULL); - }else{ - extraItem.put(entry.getKey(), (int) (extraItem.getOrDefault(entry.getKey(),0)+entry.getValue())); - } - continue; - } - if (item.getItemNum() + entry.getValue() > itemNumlimit){ - if(sItem.getId()==Global.MISSING_ROOM_ITEM&&reason==BIReason.ADVENTURE_BASE_REWARD){ - item.setItemNum((int) (item.getItemNum() + entry.getValue())); - }else{ - if(reason==BIReason.TAKE_MAIL_REWARD){ - throw new ErrorCodeException(ErrorCode.BAG_FULL); - }else{ - extraItem.put(entry.getKey(), (int) (extraItem.getOrDefault(entry.getKey(),0)+entry.getValue())); - continue; - } - } - }else{ - item.setItemNum(item.getItemNum() + entry.getValue()); - - } - } - if(itemNum>=0){ - itemProtoList.add(CBean2Proto.getItem(item,itemNum)); - } - - // 触发任务,东海寻仙 - if (sItem.getItemType() == GlobalItemType.TRANSFORMATION_CARD){ - long count = itemNum; - while (count >= Integer.MAX_VALUE){ - user.getUserMissionManager().onGameEvent(user, GameEvent.DONGHAIXUNXIAN_UPDATE,MissionType.GET_TRANSFIGURATION_CARD_NUM,sItem.getQuantity(),Integer.MAX_VALUE); - count-=Integer.MAX_VALUE; - } - user.getUserMissionManager().onGameEvent(user, GameEvent.DONGHAIXUNXIAN_UPDATE,MissionType.GET_TRANSFIGURATION_CARD_NUM,sItem.getQuantity(),(int)count); - } - -// ReportUtil.onReportEvent(user,ReportEventEnum.GET_ITEM.getType(),itemNum,String.valueOf(reason),item.getItemId()); - int eventType = ParamEventBean.UserItemEvent; - if(currencyMap.contains(entry.getKey())){ - eventType = ParamEventBean.UserCurrencyEvent; - } - KtEventUtils.onKtEvent(user, eventType,reason,GlobalsDef.addReason,entry.getKey(),itemNum,item.getItemNum()); - - baseItemReport(user,item.getItemId(),(int)itemNum,1,reason); - - if(sItem.getId() == Global.EXP){ - userLevelUp(user,itemNum); - } - if(sItem.getId() == Global.TREASURE_SCORE){ - treasureLevelUp(user); - } - extraDropAop(user,dropBuilder,sItem); - sendToFront.add(CBean2Proto.getItem(item,-1)); - if(sItem.getItemType()==GlobalItemType.EQUIP){ - if(reason!=BIReason.EQUIP_UNLOAD_REWARD&&reason!=BIReason.DECOMPOS_HERO_REWARD&&reason!=BIReason.UPHERO_DECOMPOS_HERO_REWARD){ - user.getUserMissionManager().onGameEvent(user,GameEvent.GET_EQUIP,sItem.getId(),(int)itemNum); - ReportUtil.onReportEvent(user,ReportEventEnum.GET_EQUIP.getType(),sItem.getId(),(int)itemNum,reason); - } - } else if (sItem.getItemType() == GlobalItemType.SOUL_MARK) { - user.getUserMissionManager().onGameEvent(user, GameEvent.GOT_SOUL_MARK, sItem.getId(), (int)itemNum); - } - if(sItem.getId()==Global.DAILY_TASK_REMOVE_ITEM){ - user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,(int)itemNum,user); - } - //日志记录 - ItemLogic.getInstance().addItemLog(new ItemLog(user,0,reason,item,itemNum)); - } - //发送装备图鉴修改推送 - SendEquipBookIndication(user.getId(),itemManager,changeEquipList); - - for(Map.Entry entry:extraItem.entrySet()){ - itemProtoList.add(CBean2Proto.getItem(itemManager.getItemMap().get(entry.getKey()),entry.getValue())); - } - if (dropBuilder != null) { - dropBuilder.addAllItemlist(itemProtoList); - } - - if(!sendToFront.isEmpty()||extraItem.size()>0){ - MessageUtil.sendBagIndication(user.getId(),0,sendToFront,extraItem.size()>0); - } - if(extraItem.size()>0){ - StringBuilder builder = new StringBuilder(); - for(Map.Entry entry:extraItem.entrySet()){ - builder.append(entry.getKey()).append("#").append(entry.getValue()); - String title = SErrorCodeEerverConfig.getI18NMessage("item_max_mail_title"); - SItem item = SItem.getsItemMap().get(entry.getKey()); - String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("item_max_mail_content",new String[]{item.getName(),String.valueOf(item.getItemNumlimit())},new int[]{1,0},"#"); - MailLogic.getInstance().sendMail(user.getId(),title,content,builder.toString(),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME); - builder = new StringBuilder(); - } - } - + addItemByMail(user,itemMap,dropBuilder,reason); } /** @@ -870,18 +733,17 @@ public class ItemUtil { Map extraItem = new HashMap<>(itemMap.size()); ListchangeEquipList=null; for (Map.Entry entry : itemMap.entrySet()) { - SItem sItem = SItem.getsItemMap().get(entry.getKey()); + SItem sItem = SItem.getsItemMap().get (entry.getKey()); if (sItem.getItemBaseType()==6){ equipManager.addEquipList(entry.getKey()); } - if (sItem.getItemType()==3){ + if (sItem.getItemType()==3 && reason != BIReason.EQUIP_UNLOAD_REWARD && reason != BIReason.UPHERO_DECOMPOS_HERO_REWARD && reason != BIReason.DECOMPOS_HERO_REWARD){ if (changeEquipList==null) { changeEquipList=new ArrayList<>(); } itemManager.setEquipBookMap(entry.getKey(),entry.getValue()); changeEquipList.add(entry.getKey()); } - long itemNumlimit = sItem.getItemNumlimit(); long itemNum = entry.getValue().intValue(); if(itemNum <= 0){ @@ -931,8 +793,21 @@ public class ItemUtil { itemProtoList.add(CBean2Proto.getItem(item,itemNum)); } + // 触发任务,东海寻仙 + if (sItem.getItemType() == GlobalItemType.TRANSFORMATION_CARD){ + long count = itemNum; + while (count >= Integer.MAX_VALUE){ + user.getUserMissionManager().onGameEvent(user, GameEvent.DONGHAIXUNXIAN_UPDATE,MissionType.GET_TRANSFIGURATION_CARD_NUM,sItem.getQuantity(),Integer.MAX_VALUE); + count-=Integer.MAX_VALUE; + } + user.getUserMissionManager().onGameEvent(user, GameEvent.DONGHAIXUNXIAN_UPDATE,MissionType.GET_TRANSFIGURATION_CARD_NUM,sItem.getQuantity(),(int)count); + } - ReportUtil.onReportEvent(user,ReportEventEnum.GET_ITEM.getType(),itemNum,String.valueOf(reason),item.getItemId()); + int eventType = ParamEventBean.UserItemEvent; + if(currencyMap.contains(entry.getKey())){ + eventType = ParamEventBean.UserCurrencyEvent; + } + KtEventUtils.onKtEvent(user, eventType,reason,GlobalsDef.addReason,entry.getKey(),itemNum,item.getItemNum()); baseItemReport(user,item.getItemId(),(int)itemNum,1,reason); @@ -947,18 +822,18 @@ public class ItemUtil { if(sItem.getItemType()==GlobalItemType.EQUIP){ if(reason!=BIReason.EQUIP_UNLOAD_REWARD&&reason!=BIReason.DECOMPOS_HERO_REWARD&&reason!=BIReason.UPHERO_DECOMPOS_HERO_REWARD){ user.getUserMissionManager().onGameEvent(user,GameEvent.GET_EQUIP,sItem.getId(),(int)itemNum); - ReportUtil.onReportEvent(user,ReportEventEnum.GET_EQUIP.getType(),sItem.getId(),itemNum,reason); + ReportUtil.onReportEvent(user,ReportEventEnum.GET_EQUIP.getType(),sItem.getId(),(int)itemNum,reason); } - } else if (sItem.getItemType() == GlobalItemType.SOUL_MARK) { - user.getUserMissionManager().onGameEvent(user, GameEvent.GOT_SOUL_MARK, sItem.getId(), itemNum); + } + if (sItem.getItemType() == GlobalItemType.SOUL_MARK) { + user.getUserMissionManager().onGameEvent(user, GameEvent.GOT_SOUL_MARK, sItem.getId(), (int)itemNum); } if(sItem.getId()==Global.DAILY_TASK_REMOVE_ITEM){ - user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,itemNum,user); + user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,(int)itemNum,user); } //日志记录 ItemLogic.getInstance().addItemLog(new ItemLog(user,0,reason,item,itemNum)); } - //发送装备图鉴修改推送 SendEquipBookIndication(user.getId(),itemManager,changeEquipList); @@ -968,6 +843,7 @@ public class ItemUtil { if (dropBuilder != null) { dropBuilder.addAllItemlist(itemProtoList); } + if(!sendToFront.isEmpty()||extraItem.size()>0){ MessageUtil.sendBagIndication(user.getId(),0,sendToFront,extraItem.size()>0); } @@ -977,15 +853,21 @@ public class ItemUtil { builder.append(entry.getKey()).append("#").append(entry.getValue()); String title = SErrorCodeEerverConfig.getI18NMessage("item_max_mail_title"); SItem item = SItem.getsItemMap().get(entry.getKey()); - String content = SErrorCodeEerverConfig.getI18NMessage("item_max_mail_content",new String[]{item.getName(),String.valueOf(item.getItemNumlimit())}); + String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("item_max_mail_content",new String[]{item.getName(),String.valueOf(item.getItemNumlimit())},new int[]{1,0},"#"); MailLogic.getInstance().sendMail(user.getId(),title,content,builder.toString(),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME); builder = new StringBuilder(); } } - + Poster.getPoster().dispatchEvent(new AddItemEvent(user.getId(),itemMap)); return 1; } - ///发送装备图鉴修改推送 + + /** + * 发送装备图鉴修改推送 + * @param _uid + * @param _itemManage + * @param _equipList + */ private static void SendEquipBookIndication(int _uid,ItemManager _itemManage, List_equipList){ if (_equipList==null||_equipList.isEmpty())return; ListequipList=new ArrayList<>();