From 0370572c7ce0dbba04f621d3e22e97ef01c00e0c Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Mon, 31 May 2021 17:55:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E7=A4=BC=E5=8C=85=E5=88=B7?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/store/BuyGoodsNewLogic.java | 12 +++---- .../bean/AbstractWelfareBag.java | 14 +++------ .../bean/TimeLimitWelfareBag.java | 4 +++ .../config/SRechargeCommodityNewConfig.java | 31 +++++++++++++++++++ 4 files changed, 44 insertions(+), 17 deletions(-) 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 fb959056e..063b46eb0 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 @@ -460,14 +460,10 @@ public class BuyGoodsNewLogic { } if(bag.getType() == RechargeType.timeLimit.getType()){ //活动类型特殊处理 - //todo 其他的也要改 直接读表里的 不读数据库里的 - String onSaleRule = configById.getOnSaleRule(); - int[] condition = null; - if(!onSaleRule.contains("|")){ - condition = StringUtil.parseFiledInt(onSaleRule); - if(condition[0]==3){ - if(ActivityLogic.checkActivityOpen(user,condition[1])){ - long[] time = ActivityLogic.getStartAndEndTime(user,condition[1]); + for(String[] s : configById.getCondition()){ + if(s[0].equals("3")){ + if(ActivityLogic.checkActivityOpen(user,Integer.parseInt(s[1]))){ + long[] time = ActivityLogic.getStartAndEndTime(user,Integer.parseInt(s[1])); bag.setStartTime(time[0]); bag.setEndTime(time[1]); bag.setOpen(true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java index 9a192faf8..eb51d7f50 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java @@ -28,7 +28,6 @@ public class AbstractWelfareBag extends MongoBase{ private long refreshTime; private int[] privilege; private int timeType; - private String[][] condition; private boolean isUserBuyRefresh; public AbstractWelfareBag(User user,SRechargeCommodityNewConfig config){ @@ -41,6 +40,7 @@ public class AbstractWelfareBag extends MongoBase{ setContinueDays(config.getContiueDays()); setPrivilege(config.getOpenPrivilege()); if(!config.getOnSaleRule().equals("")){ + String[][] condition; String[] s = config.getOnSaleRule().split("\\|"); condition = new String[s.length][3]; int i = 0; @@ -56,7 +56,6 @@ public class AbstractWelfareBag extends MongoBase{ } i++; } - setCondition(condition); } } @@ -74,7 +73,6 @@ public class AbstractWelfareBag extends MongoBase{ this.refreshTime = refreshTime; this.privilege = privilege; this.timeType = timeType; - this.condition = condition; this.isUserBuyRefresh = isUserBuyRefresh; this.setMongoKey(mongoKey); this.setRootId(rootId); @@ -126,6 +124,9 @@ public class AbstractWelfareBag extends MongoBase{ * 刷新时间到刷新礼包状态 */ public void refresh(){ + if(!isOpen()){ + setRefreshTime(TimeUtils.getTodayZero()); + } if(getTimeType() == 7){//每周刷新 setStartTime(TimeUtils.getCurWeekdayStartTime(1,0)); setRefreshTime(TimeUtils.getCurWeekdayStartTime(1,0) + TimeUtils.WEEK); @@ -170,12 +171,7 @@ public class AbstractWelfareBag extends MongoBase{ updateString("open",open); } - public String[][] getCondition() { return condition; } - - public void setCondition(String[][] condition) { - this.condition = condition; - updateString("condition",condition); - } + public String[][] getCondition() { return SRechargeCommodityNewConfig.getConditon(modId); } public long getStartTime() { return startTime; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java index ee4ea864f..e0186436e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/TimeLimitWelfareBag.java @@ -10,6 +10,7 @@ import config.SRechargeCommodityNewConfig; import util.TimeUtils; import java.util.List; +import java.util.concurrent.TimeUnit; /** * 时限礼包(活动) @@ -28,6 +29,9 @@ public class TimeLimitWelfareBag extends AbstractWelfareBag { } } } + if(getDailyUpdate() > 0){ + setRefreshTime(TimeUtils.getBeginOfDay(getStartTime())+ getDailyUpdate() * TimeUtils.DAY); + } } public TimeLimitWelfareBag(int modId, int type, long startTime, long endTime, int limit, int dailyUpdate, int continueDays, boolean open, long lastBuyTime, int buyTimes, long refreshTime, int[] privilege, int timeType, String[][] condition, boolean isUserBuyRefresh,String mongoKey,int rootId) { diff --git a/tablemanager/src/main/java/config/SRechargeCommodityNewConfig.java b/tablemanager/src/main/java/config/SRechargeCommodityNewConfig.java index c63984e2b..bd582a0ca 100644 --- a/tablemanager/src/main/java/config/SRechargeCommodityNewConfig.java +++ b/tablemanager/src/main/java/config/SRechargeCommodityNewConfig.java @@ -57,6 +57,8 @@ public class SRechargeCommodityNewConfig implements BaseConfig { private int[] forbid; + private String[][] condition; + public static Map configMap; public static Map sdkconfigMap; @@ -68,6 +70,7 @@ public class SRechargeCommodityNewConfig implements BaseConfig { Map tempSdkConfigMap = new HashMap<>(); Map> tempConfigTypeMap = new HashMap<>(); for(SRechargeCommodityNewConfig newConfig : config.values()){ + newConfig.setCondition(initConditon(newConfig)); tempConfigMap.put(newConfig.getId(),newConfig); tempSdkConfigMap.put(newConfig.getRechargeId(),newConfig); tempSdkConfigMap.put(newConfig.getRechargeId2(),newConfig); @@ -87,6 +90,26 @@ public class SRechargeCommodityNewConfig implements BaseConfig { } } + public static String[][] getConditon(int id){ + return configMap.get(id).getCondition(); + } + + public String[][] initConditon(SRechargeCommodityNewConfig config){ + String[] s = config.getOnSaleRule().split("\\|"); + condition = new String[s.length][3]; + int i = 0; + for (String s0 : s) { + String[] s1 = s0.split("#"); + condition[i][0] = s1[0]; + condition[i][1] = s1[1]; + if(s1.length > 2){ + condition[i][2] = s1[2]; + } + i++; + } + return condition; + } + public static SRechargeCommodityNewConfig getConfigById(int id){ return configMap.get(id); } @@ -150,4 +173,12 @@ public class SRechargeCommodityNewConfig implements BaseConfig { public String getRechargeId6() { return rechargeId6; } + + public String[][] getCondition() { + return condition; + } + + public void setCondition(String[][] condition) { + this.condition = condition; + } }