开服冲榜活动

duhui 2022-11-12 17:07:05 +08:00
parent ef5c32772d
commit ef14f61e68
1 changed files with 23 additions and 15 deletions

View File

@ -50,9 +50,9 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
for (SChongRankInfo rankInfo : rankInfoMap.values()) { for (SChongRankInfo rankInfo : rankInfoMap.values()) {
int rankType = rankInfo.getRankType(); int rankType = rankInfo.getRankType();
try { try {
long endTime = getEndTime(rankType); long sendTime = getTime(rankType,2) - TimeUtils.now();
ThreadManager.scheduleOne(() -> sendReward(rankType), endTime, TimeUnit.MILLISECONDS); ThreadManager.scheduleOne(() -> sendReward(rankType), sendTime, TimeUnit.MILLISECONDS);
LOGGER.info("===========================冲榜初始化:{}-{}-{}",id,rankType,endTime); LOGGER.info("===========================冲榜初始化:活动id{}-排行榜类型:{}-{}毫秒后发送",id,rankType,sendTime);
}catch (Exception e){ }catch (Exception e){
LOGGER.error("冲榜初始化异常,id:{},type:{}",id, rankType); LOGGER.error("冲榜初始化异常,id:{},type:{}",id, rankType);
} }
@ -74,26 +74,34 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
} }
} }
public long getStartTime(int rankType){ /**
*
* @param rankType
* @param timeType 12
* @return
*/
public long getTime(int rankType, int timeType){
SChongRankInfo info = SChongRankInfo.getMap().getOrDefault(id,new HashMap<>()).get(rankType); SChongRankInfo info = SChongRankInfo.getMap().getOrDefault(id,new HashMap<>()).get(rankType);
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
if (info == null || activity == null){ if (info == null || activity == null){
return 0; return 0;
} }
long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getStartTimeLong(),activity.getTime(),0, 1); long activityTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, timeType);
return startTime + info.getOpenTime() * 1000L; int rankTime = timeType==1 ? info.getOpenTime() : info.getCloseTime();
return activityTime + rankTime * 1000L;
} }
public long getEndTime(int rankType){ /**
SChongRankInfo info = SChongRankInfo.getMap().getOrDefault(id,new HashMap<>()).get(rankType); *
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); * @param rankType
if (info == null || activity == null){ * @return
return 0; */
public boolean isOpen(int rankType){
long start = getTime(rankType, 1);
long end = getTime(rankType, 2);
long now = TimeUtils.now();
return now >= start && now < end;
} }
long endTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),0, 2);
return endTime + info.getCloseTime() * 1000L - TimeUtils.now();
}
/** /**
* *
* @param rankType * @param rankType