From c7e2243818837a1255435b79fc06d664df5eca75 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 27 Aug 2021 16:51:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98=EF=BC=8C?= =?UTF-8?q?=E7=A4=BC=E5=8C=85=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/store/BuyGoodsNewLogic.java | 110 +++++++++++++++--- 1 file changed, 95 insertions(+), 15 deletions(-) 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 f85bcdcdd..1d74242f1 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 @@ -11,17 +11,18 @@ import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; +import com.ljsd.jieling.jbean.ActivityMission; +import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.ktbeans.ReportEventEnum; import com.ljsd.jieling.ktbeans.ReportUtil; import com.ljsd.jieling.logic.GlobalDataManaager; import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.AbstractActivity; import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.activity.ActivityType; +import com.ljsd.jieling.logic.activity.ActivityTypeEnum; import com.ljsd.jieling.logic.activity.event.*; -import com.ljsd.jieling.logic.dao.PlayerManager; -import com.ljsd.jieling.logic.dao.RechargeInfo; -import com.ljsd.jieling.logic.dao.UserManager; -import com.ljsd.jieling.logic.dao.VipInfo; +import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.expedition.ExpeditionLogic; import com.ljsd.jieling.logic.fight.CombatLogic; @@ -636,27 +637,106 @@ public class BuyGoodsNewLogic { public static Set getGoodsBagInfoFromDelive(int uid) throws Exception { User user = UserManager.getUser(uid); Set list = new HashSet<>(); + // 礼包是否打开 NewRechargeInfo rechargeInfo = user.getPlayerInfoManager().getNewRechargeInfo(); - for(AbstractWelfareBag bag : rechargeInfo.getPerpetualMap().values()){ + ArrayList welfareBags = new ArrayList<>(rechargeInfo.getPerpetualMap().values()); + welfareBags.addAll(rechargeInfo.getTimeLimitMap().values()); + welfareBags.addAll(rechargeInfo.getPushMap().values()); + + for (AbstractWelfareBag bag : welfareBags) { if(bag.isOpen()){ - list.add(bag.getModId()); + if (bag.getLimit() != 0 && bag.getLimit() > bag.getBuyTimes()){ + list.add(bag.getModId()); + } } } - for(AbstractWelfareBag bag : rechargeInfo.getTimeLimitMap().values()){ - if(bag.isOpen()){ - list.add(bag.getModId()); + + for (AbstractWelfareBag value : rechargeInfo.getReceiveMap().values()) { + ReceiveWelfareBag bag = (ReceiveWelfareBag)value; + if(bag.isOpen() && bag.isBought()){ + if (bag.getLimit() != 0 && bag.getLimit() > bag.getBuyTimes()){ + list.add(bag.getModId()); + } } } - for(AbstractWelfareBag bag : rechargeInfo.getReceiveMap().values()){ - if(bag.isOpen()){ - list.add(bag.getModId()); + + // 登封造极活动信息 + List activity1 = SGlobalActivity.getsGlobalActivityMapByType(ActivityType.HERO_STAR); + Map missionMap = user.getActivityManager().getActivityMissionMap(); + // 循环相同类型的全部活动 + for (SGlobalActivity activity : activity1) { + // 单个活动 + ActivityMission orDefault = missionMap.getOrDefault(activity.getId(), null); + if (orDefault == null){ + continue; + } + // 活动页签 + Map map = orDefault.getActivityMissionMap(); + // 活动奖励条件 + List rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(activity.getId()); + for (SActivityRewardConfig rewardConfig : rewardConfigs) { + ActivityProgressInfo progressInfo = map.get(rewardConfig.getId()); + // 页签不存在或者状态不为可领取状态 + if (progressInfo == null || progressInfo.getState() != 1){ + int goodsId = rewardConfig.getValues()[2][0]; + list.remove(goodsId); + } } } - for(AbstractWelfareBag bag : rechargeInfo.getPushMap().values()){ - if(bag.isOpen()){ - list.add(bag.getModId()); + + // 惊喜礼盒,特惠神装 + List activity2 = new ArrayList<>(SGlobalActivity.getsGlobalActivityMapByType(ActivityType.SUPER_BOX)); + activity2.addAll(SGlobalActivity.getsGlobalActivityMapByType(ActivityType.SUPER_DISCOUNT_SKIN)); + // 循环相同类型的全部活动 + for (SGlobalActivity activity : activity2) { + // 单个活动 + ActivityMission orDefault = missionMap.getOrDefault(activity.getId(), null); + if (orDefault == null){ + continue; + } + // 活动页签 + Map map = orDefault.getActivityMissionMap(); + Map boxMap = SSurpriseBox.map.get(activity.getId()); + // 活动奖励条件 + for (Map.Entry entry : map.entrySet()) { + if (entry.getValue().getProgrss() != 1){ + SSurpriseBox box = boxMap.getOrDefault(entry.getKey(), null); + if (box == null){ + continue; + } + list.remove(box.getPackId()); + } } } + + // 缥缈之旅 + List activity3 = SGlobalActivity.getsGlobalActivityMapByType(ActivityType.MISTY_TRIP); + // 循环相同类型的全部活动 + for (SGlobalActivity activity : activity3) { + // 单个活动 + ActivityMission orDefault = missionMap.getOrDefault(activity.getId(), null); + if (orDefault == null){ + continue; + } + // 活动详细配置 + Map map = orDefault.getActivityMissionMap(); + List rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(activity.getId()); + // 创角色第几天 + int days = TimeUtils.getSoFarWentDays(user.getPlayerInfoManager().getCreateTime(), TimeUtils.now()); + for (SActivityRewardConfig config : rewardConfigs) { + // 单个页签信息 + ActivityProgressInfo info = map.getOrDefault(config.getId(), null); + if (info == null){ + continue; + } + int[][] values = config.getValues(); + // 条件,天数和任务数量 + if (days < values[0][1] || info.getProgrss() < values[0][0]){ + list.remove(values[1][0]); + } + } + } + return list; }