From 8cd212cb93f0ca712331f965740356e0b838e313 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Mon, 13 Oct 2025 16:47:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=96=B0=E5=A2=9E=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=9C=89=E6=95=88=E6=97=B6=E9=97=B4=E5=8F=8D=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8C=96=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/databind/LocalDateDeserializer.java | 25 +++++++++++++++++++ .../admin/organ/vo/organ/OrganSaveReqVO.java | 3 +++ 2 files changed, 28 insertions(+) create mode 100644 cf-framework/cf-spring-boot-starter-web/src/main/java/com/cf/imes/framework/jackson/core/databind/LocalDateDeserializer.java diff --git a/cf-framework/cf-spring-boot-starter-web/src/main/java/com/cf/imes/framework/jackson/core/databind/LocalDateDeserializer.java b/cf-framework/cf-spring-boot-starter-web/src/main/java/com/cf/imes/framework/jackson/core/databind/LocalDateDeserializer.java new file mode 100644 index 000000000..1f0299b4f --- /dev/null +++ b/cf-framework/cf-spring-boot-starter-web/src/main/java/com/cf/imes/framework/jackson/core/databind/LocalDateDeserializer.java @@ -0,0 +1,25 @@ +package com.cf.imes.framework.jackson.core.databind; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; +import java.time.Instant; +import java.time.LocalDate; +import java.time.ZoneId; + +/** + * LocalDate反序列化规则 + *

+ * 会将毫秒级时间戳反序列化为LocalDate + */ +public class LocalDateDeserializer extends JsonDeserializer { + + public static final LocalDateDeserializer INSTANCE = new LocalDateDeserializer(); + + @Override + public LocalDate deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + return LocalDate.ofInstant(Instant.ofEpochMilli(p.getValueAsLong()), ZoneId.systemDefault()); + } +} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/organ/vo/organ/OrganSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/organ/vo/organ/OrganSaveReqVO.java index b21ddc814..122492335 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/organ/vo/organ/OrganSaveReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/organ/vo/organ/OrganSaveReqVO.java @@ -2,7 +2,9 @@ package com.cf.imes.module.system.controller.admin.organ.vo.organ; import com.cf.imes.framework.common.validation.Mobile; import com.cf.imes.framework.common.validation.NumberValid; +import com.cf.imes.framework.jackson.core.databind.LocalDateDeserializer; import com.cf.imes.module.system.validation.common.CommonStatus; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import lombok.Data; @@ -49,6 +51,7 @@ public class OrganSaveReqVO { @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "过期时间不能为空") + @JsonDeserialize(using = LocalDateDeserializer.class) private LocalDate expireTime; @Schema(description = "账号数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")