用户道具增加datetime 时间上线处理

This commit is contained in:
tianfeng 2026-03-16 15:18:18 +08:00
parent 814307282e
commit e3e57e9e91

View File

@ -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<PropsBackpackDAO, PropsBackpack> 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;