From db72cde86e0e9425448d1c5e6b9a46df0a585a1d Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 4 Jul 2020 06:19:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=BA=97=E5=85=8D=E8=B4=B9=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E6=AC=A1=E6=95=B0=E6=B3=A8=E5=86=8C=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/dao/StoreInfo.java | 4 ++-- .../ljsd/jieling/logic/dao/StoreManager.java | 5 ++--- .../ljsd/jieling/logic/store/StoreLogic.java | 17 ++++++++++++----- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreInfo.java index cb50a9d9b..15ac5d0d8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreInfo.java @@ -16,10 +16,10 @@ public class StoreInfo extends MongoBase { private Map itemNumMap; - public StoreInfo(int id,long startTime,long endTime,Map itemNumMap ){ + public StoreInfo(int id,long lastRefreshTime,long startTime,long endTime,Map itemNumMap ){ // this.setRootCollection(User._COLLECTION_NAME); this.id = id; - this.lastRefreshTime = System.currentTimeMillis(); + this.lastRefreshTime = lastRefreshTime; this.startTime = startTime; this.endTime = endTime; this.itemNumMap = itemNumMap; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreManager.java index b382ba4e6..423b4ce64 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreManager.java @@ -33,10 +33,9 @@ public class StoreManager extends MongoBase { } } - public StoreInfo newStoreInfo(int id,long startTime,long endTime,Map itemNumMap) throws Exception { - StoreInfo storeInfo = new StoreInfo(id,startTime,endTime,itemNumMap); + public void newStoreInfo(int id,long lastRefreshTime,long startTime,long endTime,Map itemNumMap) throws Exception { + StoreInfo storeInfo = new StoreInfo(id,lastRefreshTime,startTime,endTime,itemNumMap); addStoreInfo(storeInfo); - return storeInfo; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index 797c6433c..889a41e2a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -269,7 +269,7 @@ public class StoreLogic implements IEventHandler { return; } Map itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user); - storeManager.newStoreInfo(sStoreTypeConfig.getId(),startTime,endTime,itemNumMap); + storeManager.newStoreInfo(sStoreTypeConfig.getId(),System.currentTimeMillis(),startTime,endTime,itemNumMap); sendStoreUpdateIndication(user.getId(),storeManager.getStoreInfoMap().get(sStoreTypeConfig.getId())); } @@ -298,7 +298,7 @@ public class StoreLogic implements IEventHandler { endTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(),sStoreTypeConfig.getEndTimeLong(), ActivityType.OPEN_TYPE_SERVER,userCreateTime, 2); } Map itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user); - storeManager.newStoreInfo(sStoreTypeConfig.getId(),startTime,endTime,itemNumMap); + storeManager.newStoreInfo(sStoreTypeConfig.getId(),System.currentTimeMillis(),startTime,endTime,itemNumMap); sendStoreUpdateIndication(user.getId(),storeManager.getStoreInfoMap().get(sStoreTypeConfig.getId())); } @@ -319,7 +319,7 @@ public class StoreLogic implements IEventHandler { Map itemNumMap = new LinkedHashMap<>(); int rewardId = getRewardId(storeType,sort,user); itemNumMap.put(rewardId, 0); - storeManager.newStoreInfo(sStoreTypeConfig.getId(),startTime,endTime,itemNumMap); + storeManager.newStoreInfo(sStoreTypeConfig.getId(),System.currentTimeMillis(),startTime,endTime,itemNumMap); }else{ Map itemNumMap = storeInfo.getItemNumMap(); int rewardId = getRewardId(storeType,sort,user); @@ -337,13 +337,20 @@ public class StoreLogic implements IEventHandler { Map sstoreTypeConfigMap = SStoreTypeConfig.getsStoreTypeConfigMap(); for ( Map.Entry entry :sstoreTypeConfigMap.entrySet()){ SStoreTypeConfig sStoreTypeConfig = entry.getValue(); + + + long refreshTimeDelay = System.currentTimeMillis(); + //如果有免费次数,在初始化时候把相对时间减去 + if(sStoreTypeConfig.getIfManualRefresh()[0]!=0){ + refreshTimeDelay-=sStoreTypeConfig.getIfManualRefresh()[0]*sStoreTypeConfig.getIfManualRefresh()[1]*TimeUtils.HOUR; + } if(sStoreTypeConfig.getStoreOpenRule() == 8){ TimeControllerOfFunction openTimeOfFuntionCacheByType = GlobalDataManaager.getInstance().getOpenTimeOfFuntionCacheByType(FunctionIdEnum.getFunctionIdEnumByType(sStoreTypeConfig.getOpenLevel()[1])); if(openTimeOfFuntionCacheByType!=null ){ StoreInfo storeInfo = storeManager.getStoreInfoMap().get(sStoreTypeConfig.getId()); if(storeInfo == null || storeInfo.getStartTime()!=openTimeOfFuntionCacheByType.getStartTime()){ Map itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user); - storeManager.newStoreInfo(sStoreTypeConfig.getId(),openTimeOfFuntionCacheByType.getStartTime(),openTimeOfFuntionCacheByType.getEndTime(),itemNumMap); + storeManager.newStoreInfo(sStoreTypeConfig.getId(),refreshTimeDelay,openTimeOfFuntionCacheByType.getStartTime(),openTimeOfFuntionCacheByType.getEndTime(),itemNumMap); } } } @@ -360,7 +367,7 @@ public class StoreLogic implements IEventHandler { if (!sStoreTypeConfig.getEndTime().equals("0")){ endTime = TimeUtils.parseTimeToMiles(sStoreTypeConfig.getEndTime(), TimeUtils.Stand_CeHua_Data_format); } - storeManager.newStoreInfo(sStoreTypeConfig.getId(),startTime,endTime,itemNumMap); + storeManager.newStoreInfo(sStoreTypeConfig.getId(),refreshTimeDelay,startTime,endTime,itemNumMap); } }