From 3b093d420948bc53909d72c80ab58b89d993c1b5 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 23 May 2022 10:08:41 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E3=80=90=E5=AF=BB=E4=BB=99=E6=8B=9B?= =?UTF-8?q?=E5=8B=9F=E8=B0=83=E6=95=B4=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/activity/ActivityLogic.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 4e0bb8265..74bb8b76c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1718,9 +1718,9 @@ public class ActivityLogic implements IEventHandler{ CommonProto.Drop.Builder drop = null; int[] markReward = new int[]{0,0}; - int[][] markRewards = new int[num][]; -// int[][] markRewards = new int[num+1][]; -// markRewards[num] = setting.getRecruit(); +// int[][] markRewards = new int[num][]; + int[][] markRewards = new int[num+1][]; + markRewards[num] = setting.getRecruit(); // 单抽 if (num == 1){ // 验证免费特权 From 8b898736297bacbe7c7777265ead1f6a00b2203b Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 23 May 2022 10:15:23 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E3=80=90=E5=AF=BB=E4=BB=99=E6=8B=9B?= =?UTF-8?q?=E5=8B=9F=E8=B0=83=E6=95=B4=E3=80=912?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/activity/ActivityLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 74bb8b76c..9a085526b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1720,7 +1720,7 @@ public class ActivityLogic implements IEventHandler{ int[] markReward = new int[]{0,0}; // int[][] markRewards = new int[num][]; int[][] markRewards = new int[num+1][]; - markRewards[num] = setting.getRecruit(); + markRewards[num] = new int[]{setting.getRecruit()[0],num}; // 单抽 if (num == 1){ // 验证免费特权 From 8c94c1b2abfe21e7d6f76d0eae1d9b89f1633b58 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 23 May 2022 11:32:42 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E5=88=86=E7=BB=84?= =?UTF-8?q?=E6=97=B6=E9=97=B4bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/GlobleSystemLogic.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java index 968e66a67..3dd948f33 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobleSystemLogic.java @@ -256,9 +256,12 @@ public class GlobleSystemLogic implements IEventHandler { // Map worldLevelMap = redisUtil.getMapValues(RedisKey.SERVER_WORLDLEVE_INFO,"",String.class,Integer.class); LOGGER.info("跨服开始分组"); + // 周一零点时间戳,毫秒 long lastHour = TimeUtils.getLastOrUnderHour(TimeUtils.now(), 1, 0, 0, true); - lastHour+=TimeUtils.WEEK; - int expireTime =(int)(lastHour-TimeUtils.nowInt()); + // 加上七天,秒 + lastHour = (lastHour + TimeUtils.WEEK)/1000; + // 当前时间 + long expireTime = lastHour-TimeUtils.nowInt(); redisUtil.set(RedisKey.MATCHED_SPLIT_KEY,String.valueOf(1),expireTime-60); //提前两分钟结算 From 1f9d9736e61c0ea66cd29197789ef480e9e6bcdf Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 24 May 2022 11:34:06 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E5=AF=BB=E4=BB=99=E6=8B=9B=E5=8B=9F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=8E=BB=E9=99=A4=E8=80=81=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/ActivityLogic.java | 96 +++++++++++++++---- 1 file changed, 75 insertions(+), 21 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 9a085526b..dfe88fc06 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1733,7 +1733,7 @@ public class ActivityLogic implements IEventHandler{ // 消费抽取 if (drop == null){ // 十连抽还是单抽消耗物品获取 - int[][] item = type == 1?setting.getCostItemSingle():setting.getCostItemMul(); + int[][] item = num == 1?setting.getCostItemSingle():setting.getCostItemMul(); // 验证道具消耗 int[][] cost = new int[][]{{item[0][0],item[0][1]}}; boolean itemCost = ItemUtil.itemCost(user, cost, BIReason.CHOICE_DRAW_CARD, 0); @@ -1807,12 +1807,27 @@ public class ActivityLogic implements IEventHandler{ * @param num * @return * @throws Exception + * 暂时不用了 */ private CommonProto.Drop.Builder getDrawReward(User user,int activityId,int num,int[][] reward) throws Exception { + if (num == 1){ + return getDrawRewardOne(user,activityId,num,reward); + }else { + return getDrawRewardTen(user,activityId,num,reward); + } + } + + /** + * 心愿 获取奖励 + * @param user + * @param activityId + * @param num + * @return + * @throws Exception + */ + private CommonProto.Drop.Builder getDrawRewardOne(User user,int activityId,int num,int[][] reward) throws Exception { // 活动信息 ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(activityId); - // 累计得抽奖次数 - int count = mission.getV(); // up奖励id int upRewardId = mission.getChoiceRewardIdByActivity(activityId); // 根据活动获取本期得全部up信息 @@ -1823,8 +1838,6 @@ public class ActivityLogic implements IEventHandler{ int camp = incs[4]; // 排序权重map Map weight = new TreeMap<>(SWishActivityPool.weight.get(camp)); - // 常驻卡池 - Map poolMap = SWishActivityPool.map; // 将up奖励id得权重加入到整个卡池权重中 weight.put(-1,incs[2]); // 计算总权重 @@ -1833,32 +1846,19 @@ public class ActivityLogic implements IEventHandler{ int i = 0; // 根据抽奖次数循环 while (i < num){ - // 已抽奖次数+1 - count++; // 随机数 int randomInt = MathUtils.randomInt(totalWeight); -// LOGGER.error("心愿抽奖,总权重:{},随机值:{},权重区间:{}-{},当前次数:{}",totalWeight,randomInt,totalWeight-incs[2],totalWeight,count); // up奖励信息 int[] result = new int[]{incs[0],incs[1]}; - // 抽奖次数达到必出up次数 - if (count >= incs[3]){ - // 次数归0 - count = 0; - // 添加奖励 - reward[i++] = result; - continue; - } - // 权重循环 for (Map.Entry entry : weight.entrySet()) { // 随机值小于等于当前次数权重,证明抽到了 if (randomInt <= entry.getValue()){ // 根据id获取奖池信息 - SWishActivityPool pool = poolMap.get(entry.getKey()); + SWishActivityPool pool = SWishActivityPool.map.get(entry.getKey()); // null意味着是up奖励 if (pool == null){ - count = 0; reward[i++] = result; } // 非up奖励 @@ -1871,9 +1871,63 @@ public class ActivityLogic implements IEventHandler{ randomInt -= entry.getValue(); } } + // 返回奖励信息 + return ItemUtil.dropPer(user, reward, BIReason.CHOICE_DRAW_CARD); + } - // 更新抽奖次数和up奖励id - mission.setV(count); + /** + * 心愿 获取奖励 + * @param user + * @param activityId + * @param num + * @return + * @throws Exception + */ + private CommonProto.Drop.Builder getDrawRewardTen(User user,int activityId,int num,int[][] reward) throws Exception { + // 活动信息 + ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(activityId); + // up奖励id + int upRewardId = mission.getChoiceRewardIdByActivity(activityId); + // 根据活动获取本期得全部up信息 + int[] incs = SWishActivityUp.upMap.getOrDefault(activityId,new HashMap<>()).get(upRewardId); + if (incs == null){ + throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE,"WishActivityUp查询不到活动:" + activityId + ",或奖励id:" + upRewardId); + } + //拿到当前阵营 + int camp = incs[4]; + // 排序权重map + Map weight = new TreeMap<>(SWishActivityPool.weight.get(camp)); + // 计算总权重 + int totalWeight = weight.values().stream().mapToInt(Integer::intValue).sum(); + + // 固定5次给碎片 + int[] ints = {0,1,2,3,4,5,6,7,8,9}; + List random = MathUtils.randomForOneArray(ints, 5); + + int i = 0; + // 根据抽奖次数循环 + while (i < 10){ + // 随机位置给碎片 + if (random.contains(i)){ + reward[i++] = new int[]{incs[0],incs[1]}; + continue; + } + + // 随机数 + int randomInt = MathUtils.randomInt(totalWeight); + + // 权重循环 + for (Map.Entry entry : weight.entrySet()) { + // 随机值小于等于当前次数权重,证明抽到了 + if (randomInt <= entry.getValue()){ + // 根据id获取奖池信息 + SWishActivityPool pool = SWishActivityPool.map.get(entry.getKey()); + reward[i++] = pool.getItemId(); + } + // 未抽到, 减去当前次数权重 + randomInt -= entry.getValue(); + } + } // 返回奖励信息 return ItemUtil.dropPer(user, reward, BIReason.CHOICE_DRAW_CARD); } From 3a6a3fdf25a3503e0598107a595f8a1384973c8e Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 24 May 2022 12:02:36 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E5=AF=BB=E4=BB=99=E6=8B=9B=E5=8B=9F?= =?UTF-8?q?=E4=BF=AE=E6=94=B92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/ActivityLogic.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index dfe88fc06..1d7b2774d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1843,9 +1843,7 @@ public class ActivityLogic implements IEventHandler{ // 计算总权重 int totalWeight = weight.values().stream().mapToInt(Integer::intValue).sum(); - int i = 0; - // 根据抽奖次数循环 - while (i < num){ + for (int i = 0; i < 1; i++) { // 随机数 int randomInt = MathUtils.randomInt(totalWeight); // up奖励信息 @@ -1859,11 +1857,11 @@ public class ActivityLogic implements IEventHandler{ SWishActivityPool pool = SWishActivityPool.map.get(entry.getKey()); // null意味着是up奖励 if (pool == null){ - reward[i++] = result; + reward[i] = result; } // 非up奖励 else { - reward[i++] = pool.getItemId(); + reward[i] = pool.getItemId(); } break; } @@ -1904,25 +1902,21 @@ public class ActivityLogic implements IEventHandler{ int[] ints = {0,1,2,3,4,5,6,7,8,9}; List random = MathUtils.randomForOneArray(ints, 5); - int i = 0; - // 根据抽奖次数循环 - while (i < 10){ + for (int i = 0; i < 10; i++) { // 随机位置给碎片 if (random.contains(i)){ - reward[i++] = new int[]{incs[0],incs[1]}; - continue; + reward[i] = new int[]{incs[0],incs[1]}; } // 随机数 int randomInt = MathUtils.randomInt(totalWeight); - // 权重循环 for (Map.Entry entry : weight.entrySet()) { // 随机值小于等于当前次数权重,证明抽到了 if (randomInt <= entry.getValue()){ // 根据id获取奖池信息 SWishActivityPool pool = SWishActivityPool.map.get(entry.getKey()); - reward[i++] = pool.getItemId(); + reward[i] = pool.getItemId(); } // 未抽到, 减去当前次数权重 randomInt -= entry.getValue(); From 2820f24561c55b619db0a6603182f7f0af7631cb Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 24 May 2022 12:59:15 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E5=AF=BB=E4=BB=99=E6=8B=9B=E5=8B=9F?= =?UTF-8?q?=E4=BF=AE=E6=94=B93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/activity/ActivityLogic.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 1d7b2774d..6dc0ba274 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1906,6 +1906,7 @@ public class ActivityLogic implements IEventHandler{ // 随机位置给碎片 if (random.contains(i)){ reward[i] = new int[]{incs[0],incs[1]}; + continue; } // 随机数 @@ -1917,6 +1918,7 @@ public class ActivityLogic implements IEventHandler{ // 根据id获取奖池信息 SWishActivityPool pool = SWishActivityPool.map.get(entry.getKey()); reward[i] = pool.getItemId(); + break; } // 未抽到, 减去当前次数权重 randomInt -= entry.getValue(); From 8293b63aca3d0dd3f9be762bed07df0ce180afe5 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Wed, 25 May 2022 16:42:48 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/activityLogic/WeekCardLogic.java | 174 +++++++++--------- 1 file changed, 91 insertions(+), 83 deletions(-) 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 c146a758b..5060bbe2c 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 @@ -2,12 +2,14 @@ package com.ljsd.jieling.logic.activity.activityLogic; import com.ljsd.jieling.globals.Global; +import com.ljsd.jieling.logic.activity.ActivityType; 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 com.ljsd.jieling.util.ToolsUtil; import config.SErrorCodeEerverConfig; import config.SWeekcardConfig; import config.SWeekcardRotationConfig; @@ -25,65 +27,61 @@ public class WeekCardLogic { public WeekCardLogic() { } - public static class Instance { - public final static WeekCardLogic instance = new WeekCardLogic(); - } - public static WeekCardLogic getInstance() { return WeekCardLogic.Instance.instance; } - public void sendWeekCardInitInfo(ISession session)throws Exception{ + public void sendWeekCardInitInfo(ISession session) throws Exception { ActivityProto.WeekCardIndicationInfoResponse.Builder res = ActivityProto.WeekCardIndicationInfoResponse.newBuilder(); User user = UserManager.getUser(session.getUid()); - List weekCardList = initAllWeekCardInfo(user); + List weekCardList = initAllWeekCardInfo(user); res.addAllAllWeekCardInfo(weekCardList); //MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse, res.build(), true); - MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse_VALUE,res.build(),true); + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.WeekCardIndicationInfoResponse_VALUE, res.build(), true); } - public void sendWeekCardRewardMail(ISession session)throws Exception{ + public void sendWeekCardRewardMail(ISession session) throws Exception { //发每周未领取的奖励 User user = UserManager.getUser(session.getUid()); Map weekCard = user.getPlayerInfoManager().getWeekCard(); - MapdropMap = new HashMap<>(); + Map dropMap = new HashMap<>(); boolean isSave = false; - for(WeekCardInfo weekCardVal:weekCard.values()){ + for (WeekCardInfo weekCardVal : weekCard.values()) { Map config = STableManager.getConfig(SWeekcardConfig.class); - if(!config.containsKey(weekCardVal.getId())){ + if (!config.containsKey(weekCardVal.getId())) { continue; } - if(!weekCardVal.isBuy()){ + if (!weekCardVal.isBuy()) { continue; } - if(TimeUtils.isSameWeek7(weekCardVal.getBugTime())){ - 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]); + 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; - }else{ + isSave = true; + } else { weekCardVal.setBuy(false); weekCardVal.setBugTime(0); isSave = true; } } - if(isSave){ + if (isSave) { user.getPlayerInfoManager().setWeekCard(weekCard); } - if(dropMap.size()>0){ - int [][] dropArray= dropMap.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()}).toArray(int[][]::new); + if (dropMap.size() > 0) { + int[][] dropArray = dropMap.entrySet().stream().map(n -> new int[]{n.getKey(), n.getValue()}).toArray(int[][]::new); String title = SErrorCodeEerverConfig.getI18NMessage("WeekcardReward_mail_title"); String content = SErrorCodeEerverConfig.getI18NMessage("WeekcardReward_mail_txt"); // 排行奖励 @@ -92,70 +90,69 @@ public class WeekCardLogic { } } - public List initAllWeekCardInfo(User user) throws Exception{ - long time= user.getPlayerInfoManager().getWeekCardTimeFirst(); - if(!TimeUtils.isSameWeek7(time)){ + public List initAllWeekCardInfo(User user) throws Exception { + long time = user.getPlayerInfoManager().getWeekCardTimeFirst(); + if (!TimeUtils.isSameWeek7(time)) { user.getPlayerInfoManager().setWeekCardTimeFirstLevel(user.getPlayerInfoManager().getLevel()); user.getPlayerInfoManager().setWeekCardTimeFirst(TimeUtils.now()); } - int [] weekCardType = getWeekCardType(user); + int[] weekCardType = getWeekCardType(user); Map weekCard = user.getPlayerInfoManager().getWeekCard(); - Map config = STableManager.getConfig(SWeekcardRotationConfig.class); - boolean isSaveToDb =false; - List weekCardList=new ArrayList<>(); - if(weekCardType == null || weekCardType.length ==0){ + Map config = STableManager.getConfig(SWeekcardRotationConfig.class); + boolean isSaveToDb = false; + List weekCardList = new ArrayList<>(); + if (weekCardType == null || weekCardType.length == 0) { return weekCardList; } - for(int i= 1;i weekCard = user.getPlayerInfoManager().getWeekCard(); int[] weekType = WeekCardLogic.getInstance().getWeekCardType(user); - if(weekType == null){ + if (weekType == null) { return; } //根据礼包id 找出此时开卖的周卡id int id = 0; - Map config = STableManager.getConfig(SWeekcardConfig.class); - for(int i=1;i config = STableManager.getConfig(SWeekcardConfig.class); + for (int i = 1; i < weekType.length; i++) { + if (config.containsKey(weekType[i])) { + if (config.get(weekType[i]).getRechargeId() == weekCardType) { + id = config.get(weekType[i]).getId(); + break; } } } - if(id == 0){ + if (id == 0) { return; } - if(!weekCard.containsKey(id)){ + if (!weekCard.containsKey(id)) { return; } WeekCardInfo singleWeekCard = weekCard.get(id); @@ -165,32 +162,43 @@ public class WeekCardLogic { user.getPlayerInfoManager().setWeekCard(weekCard); } - public int[] getWeekCardType(User user) throws Exception{ + public int[] getWeekCardType(User user) throws Exception { Map config = STableManager.getConfig(SWeekcardRotationConfig.class); - for(SWeekcardRotationConfig con:config.values()){ - if( TimeUtils.now()>=TimeUtils.parseTimeToMiles(con.getStartTime(),TimeUtils.Stand_CeHua_Data_format) - && TimeUtils.now()<=TimeUtils.parseTimeToMiles(con.getEndtime(),TimeUtils.Stand_CeHua_Data_format)){ - int [][]cardType = con.getWeekcardType(); - int level= user.getPlayerInfoManager().getWeekCardTimeFirstLevel(); - if(level == 0){ - level = user.getPlayerInfoManager().getLevel(); + for (SWeekcardRotationConfig con : config.values()) { + if (con.getTime() == ActivityType.OPEN_TYPE_ROLE) { + long userCreateTime = user.getPlayerInfoManager().getCreateTime(); + long startTime = ToolsUtil.getTimeLong(Long.parseLong(con.getStartTime()), Long.parseLong(con.getEndtime()), con.getTime(), userCreateTime, 1); + long endTime = ToolsUtil.getTimeLong(Long.parseLong(con.getStartTime()), Long.parseLong(con.getEndtime()), con.getTime(), userCreateTime, 2); + if (TimeUtils.now() >= startTime && TimeUtils.now() <= endTime) { + return con.getWeekcardType()[0]; } - if(cardType.length>1){ - if(level>=cardType[0][0]&&level<=cardType[1][0]){ - return cardType[0]; - }else { - return cardType[1]; + } + if (con.getTime() == ActivityType.OPEN_TYPE_TIME) { + if (TimeUtils.now() >= TimeUtils.parseTimeToMiles(con.getStartTime(), TimeUtils.Stand_CeHua_Data_format) + && TimeUtils.now() <= TimeUtils.parseTimeToMiles(con.getEndtime(), TimeUtils.Stand_CeHua_Data_format)) { + int[][] cardType = con.getWeekcardType(); + int level = user.getPlayerInfoManager().getWeekCardTimeFirstLevel(); + if (level == 0) { + level = user.getPlayerInfoManager().getLevel(); + } + if (cardType.length > 1) { + if (level >= cardType[0][0] && level <= cardType[1][0]) { + return cardType[0]; + } else { + return cardType[1]; + } + } else { + return cardType[0]; } - }else { - return cardType[0]; } } } return null; } - - + public static class Instance { + public final static WeekCardLogic instance = new WeekCardLogic(); + } }