diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/WeekCardHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/WeekCardHandler.java index d25402994..6e48f60cf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/WeekCardHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/WeekCardHandler.java @@ -34,8 +34,7 @@ public class WeekCardHandler extends BaseHandler weekCard = user.getPlayerInfoManager().getWeekCard(); ActivityProto.WeekCardRewardResponse.Builder res = ActivityProto.WeekCardRewardResponse.newBuilder(); @@ -71,6 +70,5 @@ public class WeekCardHandler extends BaseHandler weekCardList = WeekCardLogic.getInstance().initAllWeekCardInfo(user); res.addAllAllWeekCardInfo(weekCardList); - MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardInfoResponse.getNumber(), res.build(), true);*/ + MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardInfoResponse.getNumber(), res.build(), true); } } 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 0eaaff511..a785e3a34 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -407,8 +407,6 @@ public class GlobalDataManaager implements IManager { public static void checkNeedReFlush(ISession session,User user,PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) throws Exception { // 需要隔天刷新的字段统一在这里处理 if (TimeUtils.isOverTime(0,user.getPlayerInfoManager().getLoginTime())) { - //周卡每日刷新 - //WeekCardLogic.getInstance().sendWeekCardInitInfo(session); //活动刷新 ActivityLogic.getInstance().flushEveryDay(user,fBuilder); PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder); @@ -434,6 +432,10 @@ public class GlobalDataManaager implements IManager { SevenWorldLogic.getInstance().sevenWorldInfoIndication(session); // 御剑行 RidingSwardLogic.getInstance().zeroClearRidingSwardByUser(user); + //周卡每日刷新 + WeekCardLogic.getInstance().sendWeekCardInitInfo(session); + //周卡邮件发放未领取奖励 + WeekCardLogic.getInstance().sendWeekCardRewardMail(session); // GuildChallengeLogic.getInstance().resetBossDamage(user); if(TimeUtils.isSpanTime(user.getPlayerInfoManager().getLoginTime(),TimeUtils.now(),1,0)){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java index c60b80648..753655411 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java @@ -1,22 +1,25 @@ package com.ljsd.jieling.logic.activity.activityLogic; +import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.WeekCardInfo; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.MessageUtil; +import config.SErrorCodeEerverConfig; +import config.SWeekcardConfig; import config.SWeekcardRotationConfig; import manager.STableManager; import rpc.protocols.ActivityProto; import rpc.protocols.CommonProto; import rpc.protocols.MessageTypeProto; +import util.StringUtil; import util.TimeUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; public class WeekCardLogic { @@ -25,7 +28,6 @@ public class WeekCardLogic { public static class Instance { public final static WeekCardLogic instance = new WeekCardLogic(); - } public static WeekCardLogic getInstance() { @@ -39,7 +41,54 @@ public class WeekCardLogic { res.addAllAllWeekCardInfo(weekCardList); //MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse, res.build(), true); MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse_VALUE,res.build(),true); + } + public void sendWeekCardRewardMail(ISession session)throws Exception{ + //发每周未领取的奖励 + User user = UserManager.getUser(session.getUid()); + Map weekCard = user.getPlayerInfoManager().getWeekCard(); + MapdropMap = new HashMap<>(); + boolean isSave = false; + for(WeekCardInfo weekCardVal:weekCard.values()){ + Map config = STableManager.getConfig(SWeekcardConfig.class); + if(!config.containsKey(weekCardVal.getId())){ + continue; + } + if(!weekCardVal.isBuy()){ + continue; + } + if(TimeUtils.isSameWeek7(weekCardVal.getBugTime())){ + continue; + } + if(Calendar.DAY_OF_WEEK - weekCardVal.getLeaveGetRewardDays()>0){ + for(int i= (Calendar.DAY_OF_WEEK - weekCardVal.getLeaveGetRewardDays());i>0;i--){ + int [][]drop =config.get(weekCardVal.getId()).getBaseReward(); + for(int[] single:drop){ + if(dropMap.containsKey(single[0])){ + dropMap.put(single[0],dropMap.get(single[0])+single[1]); + }else{ + dropMap.put(single[0],single[1]); + } + } + } + weekCardVal.setBuy(false); + weekCardVal.setBugTime(0); + isSave =true; + int [][] dropArray= dropMap.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()}).toArray(int[][]::new); + /*String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("MsRankContent",new Object[]{(i + 1)},new int[0],"#"); + MailLogic.getInstance().sendMail(arenaRankfilt.get(i), title, content, + StringUtil.parseArrayToString(config.getSeasonReward()), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);*/ + MailLogic.getInstance().sendMail(user.getId(), "周卡未领取奖励", "周卡奖励", + StringUtil.parseArrayToString(dropArray), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME); + }else{ + weekCardVal.setBuy(false); + weekCardVal.setBugTime(0); + isSave = true; + } + if(isSave){ + user.getPlayerInfoManager().setWeekCard(weekCard); + } + } } public List initAllWeekCardInfo(User user) throws Exception{ @@ -54,7 +103,6 @@ public class WeekCardLogic { boolean isSaveToDb =false; List weekCardList=new ArrayList<>(); for(int i= 1;i=cardType[0][0]&&level<=cardType[1][0]){ - return cardType[0]; + if(cardType.length>1){ + if(level>=cardType[0][0]&&level<=cardType[1][0]){ + return cardType[0]; + }else { + return cardType[1]; + } }else { - return cardType[1]; + return cardType[0]; } } } 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 12229c888..c3a6de4a5 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 @@ -402,8 +402,8 @@ public class BuyGoodsNewLogic { } //周卡 if(type==GiftGoodsType.WEEKCARD){ - //WeekCardLogic.getInstance().buyWeekCard(user,config.getId()); - //WeekCardLogic.getInstance().sendWeekCardInitInfo(session); + WeekCardLogic.getInstance().buyWeekCard(user,config.getId()); + WeekCardLogic.getInstance().sendWeekCardInitInfo(session); } if(drop!=null&&session!=null){ PlayerInfoProto.DirectBuyIndication build = PlayerInfoProto.DirectBuyIndication.newBuilder().setDrop(drop).build();