diff --git a/src/main/java/com/gxwebsoft/cms/entity/CmsWebsite.java b/src/main/java/com/gxwebsoft/cms/entity/CmsWebsite.java index 73c3842..2438aaa 100644 --- a/src/main/java/com/gxwebsoft/cms/entity/CmsWebsite.java +++ b/src/main/java/com/gxwebsoft/cms/entity/CmsWebsite.java @@ -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) diff --git a/src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java b/src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java index fbb60db..a38c35e 100644 --- a/src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java +++ b/src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java @@ -84,11 +84,20 @@ public class CmsWebsiteServiceImpl extends ServiceImpl list = baseMapper.selectPageRel(page, param); list.forEach(d -> { - LocalDateTime now = LocalDateTime.now(); - // 即将过期(一周内过期的) - d.setSoon(d.getExpirationTime().minusDays(30).compareTo(now)); - // 是否过期 -1已过期 大于0 未过期 - d.setStatus(d.getExpirationTime().compareTo(now)); + LocalDateTime now = LocalDateTime.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(expirationTime.compareTo(now)); + } else { + d.setSoon(0); + d.setStatus(1); + } }); return new PageResult<>(list, page.getTotal()); } @@ -115,11 +124,20 @@ public class CmsWebsiteServiceImpl extends ServiceImpl list = baseMapper.selectPageRelAll(page, param); list.forEach(d -> { - LocalDateTime now = LocalDateTime.now(); - // 即将过期(一周内过期的) - d.setSoon(d.getExpirationTime().minusDays(30).compareTo(now)); - // 是否过期 -1已过期 大于0 未过期 - d.setStatus(d.getExpirationTime().compareTo(now)); + LocalDateTime now = LocalDateTime.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(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 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); } diff --git a/src/test/java/com/gxwebsoft/JacksonTest.java b/src/test/java/com/gxwebsoft/JacksonTest.java deleted file mode 100644 index bcbe6d2..0000000 --- a/src/test/java/com/gxwebsoft/JacksonTest.java +++ /dev/null @@ -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; - } -}