活动热更延期增加遗留数据清理

back_recharge
lilei 2020-08-19 20:36:18 +08:00
parent b83687ea23
commit bf1ef4c1a3
1 changed files with 15 additions and 0 deletions

View File

@ -1,5 +1,6 @@
package com.ljsd.jieling.logic.activity; package com.ljsd.jieling.logic.activity;
import com.google.gson.Gson;
import com.ljsd.GameApplication; import com.ljsd.GameApplication;
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.core.VipPrivilegeType;
@ -135,6 +136,10 @@ public class ActivityLogic implements IEventHandler{
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1); long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 1);
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2); long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, 2);
if (now < startTime) { if (now < startTime) {
//如果没到活动开启时间但是openActivityIds里有了这个活动证明是热更延迟开启的活动需要清除掉
if (openActivityIds.contains(sGlobalActivity.getId())) {
openActivityIds.remove(sGlobalActivity.getId());
}
continue; continue;
} }
int[] ifOpen = sGlobalActivity.getIfOpen(); int[] ifOpen = sGlobalActivity.getIfOpen();
@ -347,6 +352,16 @@ public class ActivityLogic implements IEventHandler{
}else{ }else{
continue; continue;
} }
} else if (activityMissionMap.containsKey(activityId)) {
//如果活动没有开启,但是玩家有这个活动的数据,则清除,并通知客户端活动关闭
long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),userCreateTime, 1);
if(TimeUtils.now() < startTime){
LOGGER.info("[活动延期,清除遗留玩家数据] [uid:{}] [activityId:{}] [activityType:{}] [activityStartTime:{}]",user.getId(),activityId,sGlobalActivity.getType(),sGlobalActivity.getStartTimeLong());
activityMissionMap.remove(activityId);
if (builder != null) {
builder.addCloseActivityId(activityId);
}
}
} }
int time = sGlobalActivity.getTime(); int time = sGlobalActivity.getTime();
if (time == ActivityType.OPEN_TYPE_ROLE) { if (time == ActivityType.OPEN_TYPE_ROLE) {