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 a6a6d820f..460624867 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 @@ -17,13 +17,11 @@ import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.SActivityRewardConfig; import config.SErrorCodeEerverConfig; -import rpc.protocols.ArenaInfoProto; import rpc.protocols.CommonProto; import rpc.protocols.MessageTypeProto; import rpc.protocols.PlayerInfoProto; import util.StringUtil; import util.TimeUtils; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -90,7 +88,9 @@ public class DailyPreferentialGiftActivity extends AbstractActivity{ String content = SErrorCodeEerverConfig.getI18NMessage("sevendaycard_mail_txt"); if(day >7){ //第八天登錄 發送所有獎勵 TODO - for(int i = mission.getV();i < 7;i++){ + //下线当天的活动处理 + sendSpecailMail(user,title,content,mission); + for(int i = mission.getV()+1;i <= 7;i++){ MailLogic.getInstance().sendMail(user.getId(), title, content, StringUtil.parseArrayToString(rewardMap.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()}) .toArray(int[][]::new)), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME); LOGGER.info("11:"+i); @@ -105,7 +105,9 @@ public class DailyPreferentialGiftActivity extends AbstractActivity{ } return; }else{ - for(int i = mission.getV();inew int[]{n.getKey(),n.getValue()}) .toArray(int[][]::new)), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME); LOGGER.info("22:"+i); @@ -126,6 +128,32 @@ public class DailyPreferentialGiftActivity extends AbstractActivity{ } } + //当天为领取特殊处理 + public static void sendSpecailMail( User user,String title,String content, ActivityMission mission ){ + Map progressMap = mission.getActivityMissionMap(); + Map rewardMap1 = new HashMap(); + for (Map.Entry progress:progressMap.entrySet()){ + if(progress.getValue().getState() == ActivityType.WILL_TAKE){ + SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(progress.getKey()); + if(sActivityRewardConfig == null){ + continue; + } + for(int[]reward:sActivityRewardConfig.getReward()){ + if(rewardMap1.containsKey(reward[0])){ + rewardMap1.put(reward[0],rewardMap1.get(reward[0])+reward[1]); + }else{ + rewardMap1.put(reward[0],reward[1]); + } + } + } + } + if(rewardMap1.size()>0){ + MailLogic.getInstance().sendMail(user.getId(), title, content, StringUtil.parseArrayToString(rewardMap1.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()}) + .toArray(int[][]::new)), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME); + } + + } + @Override public boolean takeReward(ISession session, int missionId) throws Exception{ User user = UserManager.getUser(session.getUid());