秘盒时间控制

back_recharge
wangyuan 2019-05-13 16:10:03 +08:00
parent 69d2ba019d
commit 398b485c69
7 changed files with 37 additions and 15 deletions

View File

@ -7,6 +7,7 @@ import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.logic.GlobalDataManaager;
import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.STableManager;
import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.dao.MailingSystemManager; import com.ljsd.jieling.logic.dao.MailingSystemManager;
@ -115,6 +116,7 @@ public class GameApplication {
KeyGenUtils.setMachineNum(serverConfiguration.getServerProperties().getNum()); KeyGenUtils.setMachineNum(serverConfiguration.getServerProperties().getNum());
ActivityLogic.getInstance().checkActiviyStatus(); ActivityLogic.getInstance().checkActiviyStatus();
// ProtocolsManager.ps = new PrintStream("tmp/login.txt"); // ProtocolsManager.ps = new PrintStream("tmp/login.txt");
GlobalDataManaager.getInstance().whenServerStart();
HeroLogic.getInstance().afterSet(); HeroLogic.getInstance().afterSet();
try { try {
LOGGER.info("main->CoreApplication start..."); LOGGER.info("main->CoreApplication start...");

View File

@ -4,10 +4,8 @@ import com.ljsd.jieling.logic.STableManager;
import com.ljsd.jieling.logic.Table; import com.ljsd.jieling.logic.Table;
import com.ljsd.jieling.util.TimeUtils; import com.ljsd.jieling.util.TimeUtils;
import java.util.ArrayList; import java.text.ParseException;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
@Table(name ="DifferDemonsBoxSetting") @Table(name ="DifferDemonsBoxSetting")
public class SDifferDemonsBoxSetting implements BaseConfig { public class SDifferDemonsBoxSetting implements BaseConfig {
@ -45,13 +43,14 @@ public class SDifferDemonsBoxSetting implements BaseConfig {
private static Map<Integer, List<Integer>> idBySeasonIdMap; private static Map<Integer, List<Integer>> idBySeasonIdMap;
@Override @Override
public void init() throws Exception { public void init() throws Exception {
Map<Integer, SDifferDemonsBoxSetting> configTmp = STableManager.getConfig(SDifferDemonsBoxSetting.class); Map<Integer, SDifferDemonsBoxSetting> configTmp = STableManager.getConfig(SDifferDemonsBoxSetting.class);
Map<Integer, List<Integer>> idBySeasonIdMapTmp = new HashMap<>(); Map<Integer, List<Integer>> idBySeasonIdMapTmp = new HashMap<>();
for(SDifferDemonsBoxSetting sDifferDemonsBoxSetting :configTmp.values()){ for(SDifferDemonsBoxSetting sDifferDemonsBoxSetting :configTmp.values()){
sDifferDemonsBoxSetting.setSeasonStartLong(TimeUtils.parseTimeToMiles(sDifferDemonsBoxSetting.getSeasonOpen(), "YYYYMMdd hhmmss")); sDifferDemonsBoxSetting.setSeasonStartLong(TimeUtils.parseTimeToMiles(sDifferDemonsBoxSetting.getSeasonOpen(), TimeUtils.Stand_CeHua_Data_format));
sDifferDemonsBoxSetting.setSeasonEndLong(TimeUtils.parseTimeToMiles(sDifferDemonsBoxSetting.getSeasonOpen(), "YYYYMMdd hhmmss")); sDifferDemonsBoxSetting.setSeasonEndLong(TimeUtils.parseTimeToMiles(sDifferDemonsBoxSetting.getSeasonEnd(), TimeUtils.Stand_CeHua_Data_format));
if(!idBySeasonIdMapTmp.containsKey(sDifferDemonsBoxSetting.getSeasonTimes())){ if(!idBySeasonIdMapTmp.containsKey(sDifferDemonsBoxSetting.getSeasonTimes())){
idBySeasonIdMapTmp.put(sDifferDemonsBoxSetting.getSeasonTimes(),new ArrayList<>()); idBySeasonIdMapTmp.put(sDifferDemonsBoxSetting.getSeasonTimes(),new ArrayList<>());
} }

View File

@ -53,10 +53,10 @@ public class SGlobalSystemConfig implements BaseConfig {
iterator.remove(); iterator.remove();
continue; continue;
} }
sGlobalSystemConfig.setSeasonOpenLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSeasonOpen(), "YYYYMMdd hhmmss")); sGlobalSystemConfig.setSeasonOpenLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSeasonOpen(), TimeUtils.Stand_CeHua_Data_format));
sGlobalSystemConfig.setSeasonEndLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSeasonEnd(), "YYYYMMdd hhmmss")); sGlobalSystemConfig.setSeasonEndLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSeasonEnd(), TimeUtils.Stand_CeHua_Data_format));
sGlobalSystemConfig.setSystemOpenLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSystemOpen(), "YYYYMMdd hhmmss")); sGlobalSystemConfig.setSystemOpenLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSystemOpen(), TimeUtils.Stand_CeHua_Data_format));
sGlobalSystemConfig.setSystemEndLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSystemEnd(), "YYYYMMdd hhmmss")); sGlobalSystemConfig.setSystemEndLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSystemEnd(), TimeUtils.Stand_CeHua_Data_format));
} }
sGlobalSystemConfigMap = config; sGlobalSystemConfigMap = config;

View File

@ -53,6 +53,8 @@ public class GetPlayerInfoHandler extends BaseHandler{
ActivityLogic.getInstance().flushEveryDay(user); ActivityLogic.getInstance().flushEveryDay(user);
//商店刷新次数重置 //商店刷新次数重置
StoreLogic.resetStoreRefreshNum(userId); StoreLogic.resetStoreRefreshNum(userId);
//竞技场免费次数刷新
} }
user.getPlayerInfoManager().setLoginTime(TimeUtils.now()); user.getPlayerInfoManager().setLoginTime(TimeUtils.now());
Map<Integer, Integer> guidePoints = user.getPlayerInfoManager().getGuidePoints(); Map<Integer, Integer> guidePoints = user.getPlayerInfoManager().getGuidePoints();

View File

@ -5,6 +5,7 @@ import com.ljsd.jieling.config.SGlobalSystemConfig;
import com.ljsd.jieling.core.FunctionIdEnum; import com.ljsd.jieling.core.FunctionIdEnum;
import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.db.mongo.MongoUtil; 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.arena.ArenaLogic;
import com.ljsd.jieling.logic.dao.TimeControllerOfFunction; import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
import com.ljsd.jieling.logic.dao.root.GlobalSystemControl; import com.ljsd.jieling.logic.dao.root.GlobalSystemControl;
@ -129,5 +130,9 @@ public class GlobalDataManaager {
} }
} }
public void whenServerStart(){
ActivityLogic.getInstance().checkSecretBoxSeason();
}
} }

View File

@ -28,6 +28,8 @@ public class ActivityLogic {
public void flushEveryDay(User user) { public void flushEveryDay(User user) {
updateActivityMissionProgress(user, ActivityType.SevenLogin,1); updateActivityMissionProgress(user, ActivityType.SevenLogin,1);
//秘盒免费次数刷新
ActivityLogic.getInstance().flushSecretBoxFreeTimes(user);
} }
@ -278,7 +280,11 @@ public class ActivityLogic {
int uid = session.getUid(); int uid = session.getUid();
User user = UserManager.getUser(uid); User user = UserManager.getUser(uid);
SecretBoxManager secretBoxManager = user.getSecretBoxManager(); 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); flushSecretBox(secretBoxManager);
} }
List<PlayerInfoProto.SecretBoxFreeUseInfo> secretBoxFreeUseInfoList = new ArrayList<>(2); List<PlayerInfoProto.SecretBoxFreeUseInfo> secretBoxFreeUseInfoList = new ArrayList<>(2);
@ -300,8 +306,7 @@ public class ActivityLogic {
List<Integer> idsBySeasonId = SDifferDemonsBoxSetting.getIdsBySeasonId(secretBoxSeasonTimes); List<Integer> idsBySeasonId = SDifferDemonsBoxSetting.getIdsBySeasonId(secretBoxSeasonTimes);
Map<Integer,Integer> freeUseMap = new HashMap<>(idsBySeasonId.size()); Map<Integer,Integer> freeUseMap = new HashMap<>(idsBySeasonId.size());
for(int id:idsBySeasonId){ for(int id:idsBySeasonId){
SDifferDemonsBoxSetting sDifferDemonsBoxSetting = SDifferDemonsBoxSetting.getConfig().get(id); freeUseMap.put(id,0);
freeUseMap.put(id,sDifferDemonsBoxSetting.getFreeTime());
} }
secretBoxManager.setFreeUseInfos(freeUseMap); secretBoxManager.setFreeUseInfos(freeUseMap);
} }
@ -388,10 +393,19 @@ public class ActivityLogic {
long seasonEndLong = sDifferDemonsBoxSetting.getSeasonEndLong(); long seasonEndLong = sDifferDemonsBoxSetting.getSeasonEndLong();
if(now>=seasonStartLong && now<=seasonEndLong){ if(now>=seasonStartLong && now<=seasonEndLong){
secretBoxSeasonTimes = sDifferDemonsBoxSetting.getSeasonTimes(); secretBoxSeasonTimes = sDifferDemonsBoxSetting.getSeasonTimes();
break; return;
} }
} }
secretBoxSeasonTimes=0; secretBoxSeasonTimes=0;
}
private void flushSecretBoxFreeTimes(User user){
SecretBoxManager secretBoxManager = user.getSecretBoxManager();
Map<Integer, Integer> freeUseInfos = secretBoxManager.getFreeUseInfos();
if(freeUseInfos!=null && !freeUseInfos.isEmpty()){
for(Integer key : freeUseInfos.keySet()){
freeUseInfos.put(key,0);
}
}
} }
} }

View File

@ -15,7 +15,7 @@ public class MinuteTask extends Thread {
@Override @Override
public void run() { public void run() {
ActivityLogic.getInstance().checkActiviyStatus(); ActivityLogic.getInstance().checkActiviyStatus();
ActivityLogic.getInstance().checkSecretBoxSeason();
MapLogic.getInstance().minuteCheckAndRemoveMapRank(); MapLogic.getInstance().minuteCheckAndRemoveMapRank();
} }
} }