diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperFundActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperFundActivity.java index f7eca12bf..5f83bca47 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperFundActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SuperFundActivity.java @@ -64,7 +64,7 @@ public class SuperFundActivity extends AbstractActivity { // 状态初始化 initState(user,event1.getGiftId()); // 礼包处理 - updateValue(user); + updateValue(user,event1.getGiftId()); // 状态刷新 updateState(user); // 状态推送 @@ -75,22 +75,32 @@ public class SuperFundActivity extends AbstractActivity { * 礼包处理 * @param user */ - private void updateValue(User user) throws Exception { + private void updateValue(User user, int giftId){ // 活动详情 ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); if (mission == null || mission.getV() == 2){ // 活动不存在或者已经购买了 return; } - // 获取活动信息 - ReceiveWelfareBag bag = getBagInfo(user); - // 已购买月卡 - if (bag.isOpen()){ + Map monthCard = user.getPlayerInfoManager().getMonthCard(); + int monthTime = 0; + // 普通月卡 + if (id == 78){ + monthTime = monthCard.getOrDefault(1, 0); + } + // 高级月卡 + if (id == 79){ + monthTime = monthCard.getOrDefault(2, 0); + } + // 已激活月卡 + if (monthTime > 0){ mission.setV(1); } // 已购买基金 - if (bag.isBought()){ + if (giftId == id){ mission.setV(2); + // 初始化基金 + reSetValue(user); } } @@ -136,15 +146,14 @@ public class SuperFundActivity extends AbstractActivity { * @throws ErrorCodeException */ private void updateState(User user) throws Exception { - // 获取礼包信息 - AbstractWelfareBag bag = getBagInfo(user); - if (bag.getLastBuyTime() == 0){ + // 活动信息 + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + if (mission.getV() != 2){ return; } // 间隔天数,购买当天算第一天,所以需要+1 - int days = TimeUtils.differentDays(bag.getLastBuyTime(), TimeUtils.getTodayZero())+1; - // 活动信息 - ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id); + int days = TimeUtils.differentDays(mission.getCreatTime(), TimeUtils.getTodayZero())+1; + Map infoMap = getMissionMap(mission); // 遍历 infoMap.forEach((k,v)->{ @@ -205,26 +214,29 @@ public class SuperFundActivity extends AbstractActivity { Map infoMap = getMissionMap(mission); // 领取得天数 int days = TimeUtils.differentDays(bag.getStartTime(), TimeUtils.getTodayZero())+1; + // 老玩家活动重置 + reSetValue(user); // 遍历 infoMap.forEach((k,v)->{ // 已领取得不做处理 if (days >= k){ + v.setProgrss(1); v.setState(1); mission.getActivityMissionMap().put(k,v); } }); + mission.setV(2); bag.setGetRewardTime(0); + LOGGER.info("================超值基金老玩家兼容===============,uid:{},id:{}",user.getId(),id); } @Override - public void reSetValue(User user) throws Exception { + public void reSetValue(User user){ // 活动信息重置 ActivityManager activityManager = user.getActivityManager(); activityManager.getActivityMissionMap().remove(id); initActivity(user); - // 礼包信息重置 - ReceiveWelfareBag bagInfo = getBagInfo(user); - bagInfo.refresh(); + LOGGER.info("================超值基金礼包刷新===============,uid:{},id:{}",user.getId(),id); } /**