diff --git a/serverlogic/src/main/java/com/ljsd/GameApplication.java b/serverlogic/src/main/java/com/ljsd/GameApplication.java index ed478cf20..1e0bb3f1b 100644 --- a/serverlogic/src/main/java/com/ljsd/GameApplication.java +++ b/serverlogic/src/main/java/com/ljsd/GameApplication.java @@ -7,6 +7,7 @@ import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.handler.map.MapLogic; +import com.ljsd.jieling.logic.GlobalDataManaager; import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.dao.MailingSystemManager; @@ -115,6 +116,7 @@ public class GameApplication { KeyGenUtils.setMachineNum(serverConfiguration.getServerProperties().getNum()); ActivityLogic.getInstance().checkActiviyStatus(); // ProtocolsManager.ps = new PrintStream("tmp/login.txt"); + GlobalDataManaager.getInstance().whenServerStart(); HeroLogic.getInstance().afterSet(); try { LOGGER.info("main->CoreApplication start..."); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SDifferDemonsBoxSetting.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SDifferDemonsBoxSetting.java index 55aecb632..5b069ed77 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SDifferDemonsBoxSetting.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SDifferDemonsBoxSetting.java @@ -4,10 +4,8 @@ import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.Table; import com.ljsd.jieling.util.TimeUtils; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.ParseException; +import java.util.*; @Table(name ="DifferDemonsBoxSetting") public class SDifferDemonsBoxSetting implements BaseConfig { @@ -45,13 +43,14 @@ public class SDifferDemonsBoxSetting implements BaseConfig { private static Map> idBySeasonIdMap; + @Override public void init() throws Exception { Map configTmp = STableManager.getConfig(SDifferDemonsBoxSetting.class); Map> idBySeasonIdMapTmp = new HashMap<>(); for(SDifferDemonsBoxSetting sDifferDemonsBoxSetting :configTmp.values()){ - sDifferDemonsBoxSetting.setSeasonStartLong(TimeUtils.parseTimeToMiles(sDifferDemonsBoxSetting.getSeasonOpen(), "YYYYMMdd hhmmss")); - sDifferDemonsBoxSetting.setSeasonEndLong(TimeUtils.parseTimeToMiles(sDifferDemonsBoxSetting.getSeasonOpen(), "YYYYMMdd hhmmss")); + sDifferDemonsBoxSetting.setSeasonStartLong(TimeUtils.parseTimeToMiles(sDifferDemonsBoxSetting.getSeasonOpen(), TimeUtils.Stand_CeHua_Data_format)); + sDifferDemonsBoxSetting.setSeasonEndLong(TimeUtils.parseTimeToMiles(sDifferDemonsBoxSetting.getSeasonEnd(), TimeUtils.Stand_CeHua_Data_format)); if(!idBySeasonIdMapTmp.containsKey(sDifferDemonsBoxSetting.getSeasonTimes())){ idBySeasonIdMapTmp.put(sDifferDemonsBoxSetting.getSeasonTimes(),new ArrayList<>()); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SGlobalSystemConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SGlobalSystemConfig.java index 3ac2b8bb9..720671bd2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SGlobalSystemConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SGlobalSystemConfig.java @@ -53,10 +53,10 @@ public class SGlobalSystemConfig implements BaseConfig { iterator.remove(); continue; } - sGlobalSystemConfig.setSeasonOpenLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSeasonOpen(), "YYYYMMdd hhmmss")); - sGlobalSystemConfig.setSeasonEndLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSeasonEnd(), "YYYYMMdd hhmmss")); - sGlobalSystemConfig.setSystemOpenLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSystemOpen(), "YYYYMMdd hhmmss")); - sGlobalSystemConfig.setSystemEndLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSystemEnd(), "YYYYMMdd hhmmss")); + sGlobalSystemConfig.setSeasonOpenLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSeasonOpen(), TimeUtils.Stand_CeHua_Data_format)); + sGlobalSystemConfig.setSeasonEndLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSeasonEnd(), TimeUtils.Stand_CeHua_Data_format)); + sGlobalSystemConfig.setSystemOpenLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSystemOpen(), TimeUtils.Stand_CeHua_Data_format)); + sGlobalSystemConfig.setSystemEndLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSystemEnd(), TimeUtils.Stand_CeHua_Data_format)); } sGlobalSystemConfigMap = config; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index e5d39f2f3..589a9856a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -53,6 +53,8 @@ public class GetPlayerInfoHandler extends BaseHandler{ ActivityLogic.getInstance().flushEveryDay(user); //商店刷新次数重置 StoreLogic.resetStoreRefreshNum(userId); + //竞技场免费次数刷新 + } user.getPlayerInfoManager().setLoginTime(TimeUtils.now()); Map guidePoints = user.getPlayerInfoManager().getGuidePoints(); 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 14c6ad7af..a634ad07a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -5,6 +5,7 @@ import com.ljsd.jieling.config.SGlobalSystemConfig; import com.ljsd.jieling.core.FunctionIdEnum; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.db.mongo.MongoUtil; +import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.arena.ArenaLogic; import com.ljsd.jieling.logic.dao.TimeControllerOfFunction; import com.ljsd.jieling.logic.dao.root.GlobalSystemControl; @@ -129,5 +130,9 @@ public class GlobalDataManaager { } } + public void whenServerStart(){ + ActivityLogic.getInstance().checkSecretBoxSeason(); + } + } 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 b538c11c2..c87db6d6b 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 @@ -28,6 +28,8 @@ public class ActivityLogic { public void flushEveryDay(User user) { updateActivityMissionProgress(user, ActivityType.SevenLogin,1); + //秘盒免费次数刷新 + ActivityLogic.getInstance().flushSecretBoxFreeTimes(user); } @@ -278,7 +280,11 @@ public class ActivityLogic { int uid = session.getUid(); User user = UserManager.getUser(uid); SecretBoxManager secretBoxManager = user.getSecretBoxManager(); - if(secretBoxManager.getCurSeason() == 0){ + if(secretBoxSeasonTimes == 0){ + MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.GET_SECRETBOX_RESPONSE_VALUE,"activity_close"); + return; + } + if(secretBoxManager.getCurSeason() != secretBoxSeasonTimes){ flushSecretBox(secretBoxManager); } List secretBoxFreeUseInfoList = new ArrayList<>(2); @@ -300,8 +306,7 @@ public class ActivityLogic { List idsBySeasonId = SDifferDemonsBoxSetting.getIdsBySeasonId(secretBoxSeasonTimes); Map freeUseMap = new HashMap<>(idsBySeasonId.size()); for(int id:idsBySeasonId){ - SDifferDemonsBoxSetting sDifferDemonsBoxSetting = SDifferDemonsBoxSetting.getConfig().get(id); - freeUseMap.put(id,sDifferDemonsBoxSetting.getFreeTime()); + freeUseMap.put(id,0); } secretBoxManager.setFreeUseInfos(freeUseMap); } @@ -388,10 +393,19 @@ public class ActivityLogic { long seasonEndLong = sDifferDemonsBoxSetting.getSeasonEndLong(); if(now>=seasonStartLong && now<=seasonEndLong){ secretBoxSeasonTimes = sDifferDemonsBoxSetting.getSeasonTimes(); - break; + return; } } secretBoxSeasonTimes=0; + } + private void flushSecretBoxFreeTimes(User user){ + SecretBoxManager secretBoxManager = user.getSecretBoxManager(); + Map freeUseInfos = secretBoxManager.getFreeUseInfos(); + if(freeUseInfos!=null && !freeUseInfos.isEmpty()){ + for(Integer key : freeUseInfos.keySet()){ + freeUseInfos.put(key,0); + } + } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java index b849538b0..ad6f23886 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java @@ -15,7 +15,7 @@ public class MinuteTask extends Thread { @Override public void run() { ActivityLogic.getInstance().checkActiviyStatus(); + ActivityLogic.getInstance().checkSecretBoxSeason(); MapLogic.getInstance().minuteCheckAndRemoveMapRank(); - } }