秘盒时间控制

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.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...");

View File

@ -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<Integer, List<Integer>> idBySeasonIdMap;
@Override
public void init() throws Exception {
Map<Integer, SDifferDemonsBoxSetting> configTmp = STableManager.getConfig(SDifferDemonsBoxSetting.class);
Map<Integer, List<Integer>> 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<>());
}

View File

@ -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;

View File

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

View File

@ -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<PlayerInfoProto.SecretBoxFreeUseInfo> secretBoxFreeUseInfoList = new ArrayList<>(2);
@ -300,8 +306,7 @@ public class ActivityLogic {
List<Integer> idsBySeasonId = SDifferDemonsBoxSetting.getIdsBySeasonId(secretBoxSeasonTimes);
Map<Integer,Integer> 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<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
public void run() {
ActivityLogic.getInstance().checkActiviyStatus();
ActivityLogic.getInstance().checkSecretBoxSeason();
MapLogic.getInstance().minuteCheckAndRemoveMapRank();
}
}