From c7e2243818837a1255435b79fc06d664df5eca75 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 27 Aug 2021 16:51:48 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=EF=BC=8C=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; } From a298850c48ab0f72197e2e4872a976b1b5acd03e Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 25 Aug 2021 17:32:14 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java | 3 +++ .../src/main/java/config/SRechargeCommodityNewConfig.java | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) 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 1d74242f1..6b6304585 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 @@ -660,6 +660,9 @@ public class BuyGoodsNewLogic { } } + Map configMap = SRechargeCommodityNewConfig.configMap; + list.removeIf(v -> configMap.get(v).getIsShowInWeb() == 0); + // 登封造极活动信息 List activity1 = SGlobalActivity.getsGlobalActivityMapByType(ActivityType.HERO_STAR); Map missionMap = user.getActivityManager().getActivityMissionMap(); diff --git a/tablemanager/src/main/java/config/SRechargeCommodityNewConfig.java b/tablemanager/src/main/java/config/SRechargeCommodityNewConfig.java index 866ed0ca1..cb611b054 100644 --- a/tablemanager/src/main/java/config/SRechargeCommodityNewConfig.java +++ b/tablemanager/src/main/java/config/SRechargeCommodityNewConfig.java @@ -59,7 +59,7 @@ public class SRechargeCommodityNewConfig implements BaseConfig { private String rechargeId9; private String rechargeId10; - + private int isShowInWeb; private int[] forbid; @@ -205,4 +205,7 @@ public class SRechargeCommodityNewConfig implements BaseConfig { this.condition = condition; } + public int getIsShowInWeb() { + return isShowInWeb; + } } From bd442dce22c635ab2ec56829cae6d4fab531db61 Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 25 Aug 2021 18:17:39 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=EF=BC=8C=E5=85=AC=E4=BC=9A=E7=BA=A2=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/store/BuyGoodsNewLogic.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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 6b6304585..8166eeea0 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 @@ -661,7 +661,18 @@ public class BuyGoodsNewLogic { } Map configMap = SRechargeCommodityNewConfig.configMap; - list.removeIf(v -> configMap.get(v).getIsShowInWeb() == 0); + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + SRechargeCommodityNewConfig config = configMap.get(iterator.next()); + if (config.getIsShowInWeb() == 0){ + iterator.remove(); + continue; + } + if (user.getPlayerInfoManager().getGuildId() == 0 && config.getType() == 10){ + iterator.remove(); + continue; + } + } // 登封造极活动信息 List activity1 = SGlobalActivity.getsGlobalActivityMapByType(ActivityType.HERO_STAR); From d5fb23c2202f479941f4a9d1e8bbb909b6d8af69 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 26 Aug 2021 11:11:30 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 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 8166eeea0..bb9f3a30e 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 @@ -639,27 +639,28 @@ public class BuyGoodsNewLogic { Set list = new HashSet<>(); // 礼包是否打开 NewRechargeInfo rechargeInfo = user.getPlayerInfoManager().getNewRechargeInfo(); + // 次数,推送,永久礼包一起处理 ArrayList welfareBags = new ArrayList<>(rechargeInfo.getPerpetualMap().values()); welfareBags.addAll(rechargeInfo.getTimeLimitMap().values()); welfareBags.addAll(rechargeInfo.getPushMap().values()); - for (AbstractWelfareBag bag : welfareBags) { if(bag.isOpen()){ - if (bag.getLimit() != 0 && bag.getLimit() > bag.getBuyTimes()){ + if (bag.getLimit() == 0 || bag.getLimit() > bag.getBuyTimes()){ 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()){ + if (bag.getLimit() == 0 || bag.getLimit() > bag.getBuyTimes()){ list.add(bag.getModId()); } } } + // 走表判断开启的礼包 Map configMap = SRechargeCommodityNewConfig.configMap; Iterator iterator = list.iterator(); while (iterator.hasNext()){ From abd7351a1597bbd3b196d140ebdc3b394b3bc048 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 26 Aug 2021 17:45:50 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E5=BC=80=E7=9A=84=E6=B4=BB=E5=8A=A8=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E8=B4=AD=E4=B9=B0=E7=A4=BC=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/AbstractActivity.java | 18 ++- .../logic/activity/HeroStarActivity.java | 24 ++++ .../logic/activity/MistyTripActivity.java | 31 ++++- .../activity/RechargeSumDayActivity.java | 1 + .../logic/activity/SuperBoxActivity.java | 23 ++++ .../jieling/logic/store/BuyGoodsNewLogic.java | 122 ++++++------------ 6 files changed, 129 insertions(+), 90 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 ed03887d7..a99af0aa2 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 @@ -214,11 +214,13 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { User user = UserManager.getUser(session.getUid()); List itemArrs = new LinkedList<>(); getAllMissRewards(user, session, itemArrs); - if (itemArrs.size() == 0) + if (itemArrs.size() == 0) { return; + } SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - if (null == sGlobalActivity) + if (null == sGlobalActivity) { throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); + } String title = SErrorCodeEerverConfig.getI18NMessageNeedConvert("receive_activity_title", new Object[]{sGlobalActivity.getSesc()},new int[]{1},"#"); String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("receive_activity_txt", new Object[]{sGlobalActivity.getSesc()},new int[]{1},"#"); String mailReward = ItemUtil.getMailReward(itemArrs); @@ -308,8 +310,9 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { void onActivityEndSelfWithDealReward(User user) throws Exception { SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - if (sGlobalActivity.getIsMail() == 1) + if (sGlobalActivity.getIsMail() == 1) { onActivityEndDealReward(user); + } onActivityEndOnMySelf(user); } @@ -336,6 +339,15 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { } + /** + * 获取关闭的礼包 + * @param user + * @return + */ + public Set getCloseGoods(User user){ + return new HashSet<>(1); + } + /** * 活动结束邮件 有比较多的潜规则 单号1003747体现 */ 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 6246ff0a2..5932097d4 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 @@ -17,8 +17,10 @@ import config.SGlobalActivity; import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; public class HeroStarActivity extends AbstractActivity { private int heroId; @@ -132,4 +134,26 @@ public class HeroStarActivity extends AbstractActivity { MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); return true; } + + @Override + public Set getCloseGoods(User user){ + HashSet set = new HashSet<>(); + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null){ + return set; + } + // 活动奖励条件 + List rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); + for (SActivityRewardConfig rewardConfig : rewardConfigs) { + Map map = mission.getActivityMissionMap(); + ActivityProgressInfo progressInfo = map.get(rewardConfig.getId()); + // 页签不存在或者状态不为可领取状态 + if (progressInfo == null || progressInfo.getState() != 1){ + int goodsId = rewardConfig.getValues()[2][0]; + set.add(goodsId); + break; + } + } + return set; + } } 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 92f83e4b1..3c84a336a 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 @@ -26,9 +26,7 @@ import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; import util.TimeUtils; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; public class MistyTripActivity extends AbstractActivity { @@ -115,5 +113,32 @@ public class MistyTripActivity extends AbstractActivity { return false; } + @Override + public Set getCloseGoods(User user){ + HashSet set = new HashSet<>(); + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null){ + return set; + } + // 活动详细配置 + Map map = mission.getActivityMissionMap(); + List rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); + // 创角色第几天 + 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]){ + set.add(values[1][0]); + } + } + return set; + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java index 0c0edf409..dd5114447 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java @@ -58,6 +58,7 @@ class RechargeSumDayActivity extends AbstractActivity { /** * 根据配置解析数值进度完成度 */ + @Override boolean checkValue(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { int[][] values = sActivityRewardConfig.getValues(); User user = UserManager.getUser(session.getUid()); 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 8d5d4b6d2..91b0d35af 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 @@ -265,4 +265,27 @@ public class SuperBoxActivity extends AbstractActivity { return result; } + @Override + public Set getCloseGoods(User user){ + HashSet set = new HashSet<>(); + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission == null){ + return set; + } + // 活动页签 + Map map = mission.getActivityMissionMap(); + Map boxMap = SSurpriseBox.map.get(id); + // 活动奖励条件 + for (Map.Entry entry2 : map.entrySet()) { + if (entry2.getValue().getProgrss() != 1){ + SSurpriseBox box = boxMap.getOrDefault(entry2.getKey(), null); + if (box == null){ + continue; + } + set.add(box.getPackId()); + } + } + return set; + } + } 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 bb9f3a30e..fe937f114 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 @@ -662,96 +662,50 @@ public class BuyGoodsNewLogic { // 走表判断开启的礼包 Map configMap = SRechargeCommodityNewConfig.configMap; - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - SRechargeCommodityNewConfig config = configMap.get(iterator.next()); - if (config.getIsShowInWeb() == 0){ - iterator.remove(); - continue; - } - if (user.getPlayerInfoManager().getGuildId() == 0 && config.getType() == 10){ - iterator.remove(); - continue; - } - } - - // 登封造极活动信息 - List activity1 = SGlobalActivity.getsGlobalActivityMapByType(ActivityType.HERO_STAR); + Map activityMap = SGlobalActivity.getsGlobalActivityMap(); 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); - } - } - } - // 惊喜礼盒,特惠神装 - 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){ + for (Map.Entry entry : missionMap.entrySet()) { + int activityId = entry.getKey(); + ActivityMission mission = entry.getValue(); + // 遍历 + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + SRechargeCommodityNewConfig config = configMap.get(iterator.next()); + // 表控制不显示 + if (config.getIsShowInWeb() == 0){ + iterator.remove(); continue; } - int[][] values = config.getValues(); - // 条件,天数和任务数量 - if (days < values[0][1] || info.getProgrss() < values[0][0]){ - list.remove(values[1][0]); + // 未加入公会,不显示公会红包 + if (user.getPlayerInfoManager().getGuildId() == 0 && config.getType() == 10){ + iterator.remove(); + continue; + } + + // 活动未开启的礼包 + if (mission.getActivityState() != ActivityType.OPEN_STATE){ + for (String[] open : config.getCondition()) { + if ("3".equals(open[0])){ + if (open[1].equals(String.valueOf(activityId))){ + iterator.remove(); + break; + } + } + } } } + // 单独活动信息处理 + SGlobalActivity activity = activityMap.get(activityId); + if (activity == null){ + continue; + } + AbstractActivity activityType = ActivityTypeEnum.getActicityType(activityId); + if (activityType == null || list.isEmpty()){ + continue; + } + list.removeAll(activityType.getCloseGoods(user)); } - return list; } @@ -845,7 +799,7 @@ public class BuyGoodsNewLogic { } } -private static int judgePushCondition(User user,SPackPushConfig con){ + private static int judgePushCondition(User user,SPackPushConfig con){ int[] scope = con.getScopeId(); if(scope[0] == 1){//主线关卡 int mainLevel = user.getMainLevelManager().getFightId(); From 645352464e22a8d69d6c87d52b77cf9e16a618d9 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 26 Aug 2021 18:25:56 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=EF=BC=8C=E8=B1=AA=E5=8D=8E=E5=9F=BA=E9=87=91=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java | 10 +--------- 1 file changed, 1 insertion(+), 9 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 fe937f114..cd707dbf6 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 @@ -642,6 +642,7 @@ public class BuyGoodsNewLogic { // 次数,推送,永久礼包一起处理 ArrayList welfareBags = new ArrayList<>(rechargeInfo.getPerpetualMap().values()); welfareBags.addAll(rechargeInfo.getTimeLimitMap().values()); + welfareBags.addAll(rechargeInfo.getReceiveMap().values()); welfareBags.addAll(rechargeInfo.getPushMap().values()); for (AbstractWelfareBag bag : welfareBags) { if(bag.isOpen()){ @@ -650,15 +651,6 @@ public class BuyGoodsNewLogic { } } } - // 接收礼包单独处理 - 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()); - } - } - } // 走表判断开启的礼包 Map configMap = SRechargeCommodityNewConfig.configMap; From d3098bfa679e33bb1b3d0e2c3bb5901c897ecbe2 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 27 Aug 2021 11:33:17 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=EF=BC=8C=E9=9D=92=E9=BE=99=E6=88=98=E4=BB=A4=E7=89=B9=E6=AE=8A?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 cd707dbf6..918eff8fe 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 @@ -639,12 +639,20 @@ public class BuyGoodsNewLogic { Set list = new HashSet<>(); // 礼包是否打开 NewRechargeInfo rechargeInfo = user.getPlayerInfoManager().getNewRechargeInfo(); + Map configMap = SRechargeCommodityNewConfig.configMap; // 次数,推送,永久礼包一起处理 ArrayList welfareBags = new ArrayList<>(rechargeInfo.getPerpetualMap().values()); welfareBags.addAll(rechargeInfo.getTimeLimitMap().values()); welfareBags.addAll(rechargeInfo.getReceiveMap().values()); welfareBags.addAll(rechargeInfo.getPushMap().values()); for (AbstractWelfareBag bag : welfareBags) { + SRechargeCommodityNewConfig newConfig = configMap.get(bag.getModId()); + // 青龙战令特殊处理 + if (newConfig != null && newConfig.getType() == 11){ + if (user.getPlayerInfoManager().getHadBuyTreasure() == 0){ + list.add(bag.getModId()); + } + } if(bag.isOpen()){ if (bag.getLimit() == 0 || bag.getLimit() > bag.getBuyTimes()){ list.add(bag.getModId()); @@ -653,7 +661,6 @@ public class BuyGoodsNewLogic { } // 走表判断开启的礼包 - Map configMap = SRechargeCommodityNewConfig.configMap; Map activityMap = SGlobalActivity.getsGlobalActivityMap(); Map missionMap = user.getActivityManager().getActivityMissionMap(); From 839e2a6fac301f0d127b3edf846bb142d4ac3101 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 27 Aug 2021 11:58:04 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=EF=BC=8C=E7=BC=A5=E7=BC=88=E4=B9=8B=E6=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/activity/MistyTripActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 3c84a336a..d00f7a1a1 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 @@ -124,7 +124,7 @@ public class MistyTripActivity extends AbstractActivity { Map map = mission.getActivityMissionMap(); List rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); // 创角色第几天 - int days = TimeUtils.getSoFarWentDays(user.getPlayerInfoManager().getCreateTime(), TimeUtils.now()); + int days = TimeUtils.getSoFarWentDays(user.getPlayerInfoManager().getCreateTime(), TimeUtils.now())+1; for (SActivityRewardConfig config : rewardConfigs) { // 单个页签信息 ActivityProgressInfo info = map.getOrDefault(config.getId(), null); From d4fbda936ba340e791f39036c785c73498be4d6f Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 27 Aug 2021 14:44:44 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=EF=BC=8C=E9=9D=92=E9=BE=99=E7=A7=98=E5=AE=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/activity/TreasureActivity.java | 1 + .../com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java | 7 ------- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java index a8d5d9252..5e3a702fa 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java @@ -48,6 +48,7 @@ public class TreasureActivity extends AbstractActivity { if(user.getPlayerInfoManager().getHadBuyTreasure() == 1){ LOGGER.info("[青龙秘宝初始化] [重置秘宝解锁状态] [uid:{}]",user.getId()); user.getPlayerInfoManager().setHadBuyTreasure(0); + int id=0; for(SRechargeCommodityNewConfig sRechargeCommodityConfig : SRechargeCommodityNewConfig.configMap.values()){ if(sRechargeCommodityConfig.getType() == GiftGoodsType.SUN_LONG){ 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 918eff8fe..3dd8a4cdb 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 @@ -646,13 +646,6 @@ public class BuyGoodsNewLogic { welfareBags.addAll(rechargeInfo.getReceiveMap().values()); welfareBags.addAll(rechargeInfo.getPushMap().values()); for (AbstractWelfareBag bag : welfareBags) { - SRechargeCommodityNewConfig newConfig = configMap.get(bag.getModId()); - // 青龙战令特殊处理 - if (newConfig != null && newConfig.getType() == 11){ - if (user.getPlayerInfoManager().getHadBuyTreasure() == 0){ - list.add(bag.getModId()); - } - } if(bag.isOpen()){ if (bag.getLimit() == 0 || bag.getLimit() > bag.getBuyTimes()){ list.add(bag.getModId()); From f5688ef3a52560ee1d810b1582058e2173378142 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 27 Aug 2021 15:17:46 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/activity/TreasureActivity.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java index 5e3a702fa..52101522c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java @@ -48,13 +48,6 @@ public class TreasureActivity extends AbstractActivity { if(user.getPlayerInfoManager().getHadBuyTreasure() == 1){ LOGGER.info("[青龙秘宝初始化] [重置秘宝解锁状态] [uid:{}]",user.getId()); user.getPlayerInfoManager().setHadBuyTreasure(0); - - int id=0; - for(SRechargeCommodityNewConfig sRechargeCommodityConfig : SRechargeCommodityNewConfig.configMap.values()){ - if(sRechargeCommodityConfig.getType() == GiftGoodsType.SUN_LONG){ - id=sRechargeCommodityConfig.getId(); - } - } } SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); From a4d388f09258199836e0bb8a894c0518ded8fd4a Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 27 Aug 2021 15:47:11 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=BC=80=E5=85=B3?= =?UTF-8?q?=EF=BC=8C=E6=9D=A1=E4=BB=B6=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/GlobalDataManaager.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 b72ab6120..3eb18f623 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -126,7 +126,7 @@ public class GlobalDataManaager implements IManager { if( limitDay[0] == 2 ){ //此时是开服第几天 long day = TimeUtils.getGapDaysByTwoTime(GameApplication.serverConfig.getOpenTime(),TimeUtils.getTimeStamp2(TimeUtils.now()))+1; - if(day < limitDay[1]){ + if(day <= limitDay[1]){ closeList.add(id); continue; } @@ -155,10 +155,10 @@ public class GlobalDataManaager implements IManager { //开服几天后开启 if(getServerOpenTimeCompareSpecialTimeResult()){ int[]limitDay = sGlobalSystemConfig.getIfOpen(); - if(limitDay.length>0 && limitDay != null){ + if(limitDay.length > 0){ if( limitDay[0] == 2 ){ long day = TimeUtils.getGapDaysByTwoTime(GameApplication.serverConfig.getOpenTime(),TimeUtils.getTimeStamp2(TimeUtils.now()))+1; - if(day < limitDay[1]){ + if(day <= limitDay[1]){ continue; } } From 170796f61d3aa243c282cad78afc85df6b247a56 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 27 Aug 2021 15:59:33 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E6=9D=A1=E4=BB=B6=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/store/BuyGoodsNewLogic.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 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 3dd8a4cdb..9ba89369d 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 @@ -675,16 +675,23 @@ public class BuyGoodsNewLogic { continue; } - // 活动未开启的礼包 - if (mission.getActivityState() != ActivityType.OPEN_STATE){ - for (String[] open : config.getCondition()) { - if ("3".equals(open[0])){ + for (String[] open : config.getCondition()) { + // 活动未开启的礼包 + if ("3".equals(open[0])){ + if (mission.getActivityState() != ActivityType.OPEN_STATE){ if (open[1].equals(String.valueOf(activityId))){ iterator.remove(); break; } } } + // 功能未开启的表 + if ("2".equals(open[0])){ + if (!GlobalDataManaager.getInstance().checkIsOpen(Integer.parseInt(open[1]))){ + iterator.remove(); + break; + } + } } } // 单独活动信息处理