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 916bc8ab5..4858d2d32 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 @@ -110,6 +110,9 @@ public class GmActivityLogic implements IEventHandler { case 7://可重复单笔充值 getRewardToUnlimitSingleRecharge(user, gmActivity, price); break; + case 8://多日单笔充值 + getRewardToMoreDaySingleRecharge(user, gmActivity, price); + break; default://3、5、6(多日累充,永久大充,开服首日累充) getDefaultReward(user, gmActivity, price); break; @@ -300,6 +303,35 @@ public class GmActivityLogic implements IEventHandler { } } + /** + * 多日单笔充值奖励 + */ + private void getRewardToMoreDaySingleRecharge(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()); + // 已领取 + if (gmMission.getState() == 1){ + LOGGER.error("单笔充值奖励,档位已领取,userid:{}, 活动id:{}, 档位id:{}", user.getId(),gmActivity.getId(),gmMission.getId()); + continue; + } + // 不能领 + if (price != arbMission.getRechargeNum()){ + LOGGER.error("单笔充值奖励,金额对比失败,userid:{}, 活动id:{}, 金额:{}-{}", user.getId(),gmActivity.getId(),price,arbMission.getRechargeNum()); + continue; + } + // 发邮件 + 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); + gmActivity.putMissionMap(arbMission.getId(), gmMission); + } + } + /** * 妖晶返利奖励 */ @@ -407,7 +439,7 @@ public class GmActivityLogic implements IEventHandler { Map arbActivityMap = getArbActivity(); for (ARBActivity value : arbActivityMap.values()) { // 单笔,单日累充,妖晶返利 - if (value.getType() == 1 || value.getType() == 2 || value.getType() == 4){ + if (value.getType() == 1 || value.getType() == 2 || value.getType() == 4 || value.getType() == 7){ manager.removeActivity(value.getId()); LOGGER.info("返利活动重置,uid:{},活动id:{}, type:{}",user.getId(),value.getId(), value.getType()); }