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")