From 7c421103afebf4f41539cd9ab269a0660f54cc5d Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Mon, 1 Apr 2024 15:02:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=B4=BB=E5=8A=A8bug?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamecommon/src/main/java/util/TimeUtils.java | 2 +- .../logic/activity/ContinuousGiftActivity.java | 2 +- .../jieling/logic/activity/NewEightActivity.java | 15 ++++++++++----- .../java/com/ljsd/jieling/util/ToolsUtil.java | 11 +++++++---- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/gamecommon/src/main/java/util/TimeUtils.java b/gamecommon/src/main/java/util/TimeUtils.java index c44177e74..b9a4e9328 100644 --- a/gamecommon/src/main/java/util/TimeUtils.java +++ b/gamecommon/src/main/java/util/TimeUtils.java @@ -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; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java index fbe5df545..163b36c6b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ContinuousGiftActivity.java @@ -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); // 库里存储的活动档位信息 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java index 13f5aa1cd..9f6c11b74 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java @@ -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; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java index aa5f39fcd..9cef669d9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ToolsUtil.java @@ -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 {