refactor(cms): 将LocalDateTime替换为Date类型并调整过期逻辑
- 将CmsWebsite实体中的LocalDateTime字段改为Date类型- 更新服务实现中时间比较逻辑以兼容Date类型 - 添加日期转换处理以确保过期时间计算正确 - 移除冗余的LocalDateTime导入并优化代码结构 - 调整测试相关代码以适应新的时间类型处理方式
This commit is contained in:
@@ -6,17 +6,16 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.gxwebsoft.common.system.entity.User;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -87,7 +86,7 @@ public class CmsWebsite implements Serializable {
|
||||
|
||||
@Schema(description = "服务到期时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime expirationTime;
|
||||
private Date expirationTime;
|
||||
|
||||
@Schema(description = "是否到期")
|
||||
@TableField(exist = false)
|
||||
@@ -250,11 +249,11 @@ public class CmsWebsite implements Serializable {
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
private Date createTime;
|
||||
|
||||
@Schema(description = "修改时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
private Date updateTime;
|
||||
|
||||
@Schema(description = "预设字段")
|
||||
@TableField(exist = false)
|
||||
|
||||
@@ -85,10 +85,19 @@ public class CmsWebsiteServiceImpl extends ServiceImpl<CmsWebsiteMapper, CmsWebs
|
||||
List<CmsWebsite> list = baseMapper.selectPageRel(page, param);
|
||||
list.forEach(d -> {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
// 即将过期(一周内过期的)
|
||||
d.setSoon(d.getExpirationTime().minusDays(30).compareTo(now));
|
||||
if (d.getExpirationTime() != null) {
|
||||
// 将Date转换为LocalDateTime进行计算
|
||||
LocalDateTime expirationTime = d.getExpirationTime().toInstant()
|
||||
.atZone(java.time.ZoneId.systemDefault())
|
||||
.toLocalDateTime();
|
||||
// 即将过期(30天内过期的)
|
||||
d.setSoon(expirationTime.minusDays(30).compareTo(now));
|
||||
// 是否过期 -1已过期 大于0 未过期
|
||||
d.setStatus(d.getExpirationTime().compareTo(now));
|
||||
d.setStatus(expirationTime.compareTo(now));
|
||||
} else {
|
||||
d.setSoon(0);
|
||||
d.setStatus(1);
|
||||
}
|
||||
});
|
||||
return new PageResult<>(list, page.getTotal());
|
||||
}
|
||||
@@ -116,10 +125,19 @@ public class CmsWebsiteServiceImpl extends ServiceImpl<CmsWebsiteMapper, CmsWebs
|
||||
List<CmsWebsite> list = baseMapper.selectPageRelAll(page, param);
|
||||
list.forEach(d -> {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
// 即将过期(一周内过期的)
|
||||
d.setSoon(d.getExpirationTime().minusDays(30).compareTo(now));
|
||||
if (d.getExpirationTime() != null) {
|
||||
// 将Date转换为LocalDateTime进行计算
|
||||
LocalDateTime expirationTime = d.getExpirationTime().toInstant()
|
||||
.atZone(java.time.ZoneId.systemDefault())
|
||||
.toLocalDateTime();
|
||||
// 即将过期(30天内过期的)
|
||||
d.setSoon(expirationTime.minusDays(30).compareTo(now));
|
||||
// 是否过期 -1已过期 大于0 未过期
|
||||
d.setStatus(d.getExpirationTime().compareTo(now));
|
||||
d.setStatus(expirationTime.compareTo(now));
|
||||
} else {
|
||||
d.setSoon(0);
|
||||
d.setStatus(1);
|
||||
}
|
||||
});
|
||||
return new PageResult<>(list, page.getTotal());
|
||||
}
|
||||
@@ -137,7 +155,8 @@ public class CmsWebsiteServiceImpl extends ServiceImpl<CmsWebsiteMapper, CmsWebs
|
||||
website.setWebsiteType("云·企业官网");
|
||||
website.setAdminUrl("site.websoft.top");
|
||||
website.setVersion(10);
|
||||
website.setExpirationTime(LocalDateTime.now().plusMonths(1));
|
||||
website.setExpirationTime(java.util.Date.from(LocalDateTime.now().plusMonths(1)
|
||||
.atZone(java.time.ZoneId.systemDefault()).toInstant()));
|
||||
website.setUserId(loginUser.getUserId());
|
||||
website.setDeveloper(loginUser.getNickname());
|
||||
website.setTenantId(loginUser.getTenantId());
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.gxwebsoft.shop.vo.ShopVo;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -24,7 +25,12 @@ public class CmsWebsiteServiceImplHelper {
|
||||
public static void processExpirationTime(CmsWebsite website) {
|
||||
if (website.getExpirationTime() != null) {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
LocalDateTime expirationTime = website.getExpirationTime();
|
||||
Date expirationTimeDate = website.getExpirationTime();
|
||||
|
||||
// 将Date转换为LocalDateTime进行计算
|
||||
LocalDateTime expirationTime = expirationTimeDate.toInstant()
|
||||
.atZone(java.time.ZoneId.systemDefault())
|
||||
.toLocalDateTime();
|
||||
|
||||
// 计算是否即将过期(30天内过期)
|
||||
LocalDateTime thirtyDaysLater = now.plusDays(30);
|
||||
|
||||
@@ -227,7 +227,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
||||
if (!project.getWebsiteId().equals(0)) {
|
||||
final CmsWebsite website = new CmsWebsite();
|
||||
website.setVersion(20);
|
||||
website.setExpirationTime(expirationTime);
|
||||
// 将LocalDateTime转换为Date
|
||||
Date expirationDate = Date.from(expirationTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||
website.setExpirationTime(expirationDate);
|
||||
website.setWebsiteId(project.getWebsiteId());
|
||||
cmsWebsiteService.updateByIdAll(website);
|
||||
}
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
package com.gxwebsoft;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import com.gxwebsoft.cms.entity.CmsWebsite;
|
||||
import lombok.Data;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* Jackson序列化测试
|
||||
*/
|
||||
public class JacksonTest {
|
||||
|
||||
@Test
|
||||
public void testLocalDateTimeSerialization() throws Exception {
|
||||
// 创建ObjectMapper并注册JavaTimeModule
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
mapper.registerModule(new JavaTimeModule());
|
||||
|
||||
// 创建测试对象
|
||||
TestObject testObj = new TestObject();
|
||||
testObj.setName("测试");
|
||||
testObj.setExpirationTime(LocalDateTime.now());
|
||||
|
||||
// 序列化
|
||||
String json = mapper.writeValueAsString(testObj);
|
||||
System.out.println("序列化结果: " + json);
|
||||
|
||||
// 反序列化
|
||||
TestObject result = mapper.readValue(json, TestObject.class);
|
||||
System.out.println("反序列化结果: " + result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCmsWebsiteSerialization() throws Exception {
|
||||
// 创建ObjectMapper并注册JavaTimeModule
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
mapper.registerModule(new JavaTimeModule());
|
||||
|
||||
// 创建CmsWebsite对象
|
||||
CmsWebsite website = new CmsWebsite();
|
||||
website.setWebsiteName("测试网站");
|
||||
website.setExpirationTime(LocalDateTime.now());
|
||||
|
||||
// 序列化
|
||||
String json = mapper.writeValueAsString(website);
|
||||
System.out.println("CmsWebsite序列化结果: " + json);
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class TestObject {
|
||||
private String name;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime expirationTime;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user