From e3e57e9e91731beef31e86525c294124579d1ef3 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Mon, 16 Mar 2026 15:18:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E9=81=93=E5=85=B7=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0datetime=20=E6=97=B6=E9=97=B4=E4=B8=8A=E7=BA=BF?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../props/impl/PropsBackpackServiceImpl.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/props/impl/PropsBackpackServiceImpl.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/props/impl/PropsBackpackServiceImpl.java index 295566a1..44b92c76 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/props/impl/PropsBackpackServiceImpl.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/service/props/impl/PropsBackpackServiceImpl.java @@ -12,6 +12,7 @@ import com.red.circle.tool.core.collection.CollectionUtils; import com.red.circle.tool.core.date.TimestampUtils; import java.sql.Timestamp; +import java.time.LocalDateTime; import java.util.Collection; import java.util.List; import java.util.Map; @@ -38,6 +39,9 @@ import org.springframework.stereotype.Service; public class PropsBackpackServiceImpl extends BaseServiceImpl implements PropsBackpackService { + private static final Timestamp MYSQL_DATETIME_MAX = Timestamp.valueOf("2038-01-19 00:00:00"); + + private final PropsBackpackDAO propsBackpackDAO; @Override @@ -254,18 +258,28 @@ public class PropsBackpackServiceImpl extends } if (Objects.isNull(propsBackpack)) { + backpack.setExpireTime(capExpireTime(backpack.getExpireTime())); save(backpack); return; } propsBackpack.setUseProps(backpack.getUseProps()); propsBackpack.setAllowGive(backpack.getAllowGive()); -// propsBackpack.setExpireTime( -// getExpireTime(propsBackpack.getExpireTime(), backpack.getExpireTime())); + propsBackpack.setExpireTime(capExpireTime(backpack.getExpireTime())); propsBackpack.setExpireTime(backpack.getExpireTime()); updateSelectiveById(propsBackpack); } + /** + * 防止 expire_time 超出 MySQL DATETIME 上限 (2038-01-19 00:00:00) + */ + private Timestamp capExpireTime(Timestamp expireTime) { + if (expireTime == null) { + return null; + } + return expireTime.after(MYSQL_DATETIME_MAX) ? MYSQL_DATETIME_MAX : expireTime; + } + private Timestamp getExpireTime(Timestamp historyExpireTime, Timestamp appendExpireTime) { if (Objects.isNull(historyExpireTime) || historyExpireTime.before(TimestampUtils.now())) { return appendExpireTime;