循环活动bug处理

grimm 2024-04-01 15:02:25 +08:00
parent 6624b6162a
commit 7c421103af
4 changed files with 19 additions and 11 deletions

View File

@ -910,7 +910,7 @@ public class TimeUtils {
* @param intervalMillis
* @return
*/
public static long getLatelyTime(long startTimeMillis, long currentMillis, long intervalMillis){
public static long getLatelyTime(long startTimeMillis, long intervalMillis, long currentMillis){
return startTimeMillis + (currentMillis - startTimeMillis) / intervalMillis * intervalMillis;
}

View File

@ -187,7 +187,7 @@ public class ContinuousGiftActivity extends AbstractActivity {
}
long now = TimeUtils.now();
long createTime = user.getPlayerInfoManager().getCreateTime();
long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, 0);
long start = ToolsUtil.getTimeLong(activity.getStartTimeLong(),activity.getEndTimeLong(),activity.getTime(),createTime,1, activity.getCycleMinute());
// 更新记录天数
activityMission.setV(TimeUtils.getSoFarWentDays(start, now)+1);
// 库里存储的活动档位信息

View File

@ -4,6 +4,7 @@ import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.util.ToolsUtil;
import config.SActivityRewardConfig;
import config.SGlobalActivity;
import util.TimeUtils;
@ -22,11 +23,15 @@ public class NewEightActivity extends AbstractActivity {
@Override
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
User user = UserManager.getUser(session.getUid());
SGlobalActivity globalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if (globalActivity.getTime()==1){
return TimeUtils.getOverTimeCount(globalActivity.getStartTimeLong(), System.currentTimeMillis(), 0) >= sActivityRewardConfig.getValues()[0][0] - 1;
}else if (globalActivity.getTime()==2){
return TimeUtils.getOverTimeCount(user.getPlayerInfoManager().getCreateTime(), System.currentTimeMillis(), 0) >= sActivityRewardConfig.getValues()[0][0] - 1;
long now = TimeUtils.now();
long createTime = user.getPlayerInfoManager().getCreateTime();
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
long startTime = ToolsUtil.getTimeLong(activity.getStartTimeLong(), activity.getEndTimeLong(), activity.getTime(), createTime, 1, activity.getCycleMinute());
if (activity.getTime()==1){
return TimeUtils.getOverTimeCount(startTime, now, 0) >= sActivityRewardConfig.getValues()[0][0] - 1;
}
else if (activity.getTime()==2){
return TimeUtils.getOverTimeCount(createTime, now, 0) >= sActivityRewardConfig.getValues()[0][0] - 1;
}
return true;
}

View File

@ -1,13 +1,16 @@
package com.ljsd.jieling.util;
import com.ljsd.GameApplication;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.activity.ActivityType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import util.TimeUtils;
import java.util.*;
public class ToolsUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(ToolsUtil.class);
/**
*
*
@ -26,13 +29,13 @@ public class ToolsUtil {
}
long resultTime=0;
switch (time){
case ActivityType.OPEN_TYPE_TIME://开服时间
case ActivityType.OPEN_TYPE_TIME://绝对时间
resultTime = baseTime;
break;
case ActivityType.OPEN_TYPE_ROLE:
resultTime = TimeUtils.getAppointTimeInXDay(createUserTime,0) + baseTime*1000;
break;
case ActivityType.OPEN_TYPE_SERVER:
case ActivityType.OPEN_TYPE_SERVER://开服时间
long serverOpenTime = GameApplication.serverConfig.getCacheOpenTime();
resultTime = serverOpenTime + baseTime * 1000;
break;
@ -57,7 +60,7 @@ public class ToolsUtil {
// 循环时间
long cycleTimeMils = cycleTime * TimeUtils.ONE_MINUTE;
// 最近的开始时间
long latelyStartTime = TimeUtils.calculateNextStartTime(startTimeLong, now, cycleTimeMils);
long latelyStartTime = TimeUtils.getLatelyTime(startTimeLong, cycleTimeMils, now);
if (type == 1){
resultTime = latelyStartTime;
}else {