From c8c8c3b526ec1ca4ab49611687a4a57eccf70682 Mon Sep 17 00:00:00 2001 From: chenjiale Date: Mon, 8 Dec 2025 21:33:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(json):=20=E6=94=AF=E6=8C=81=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=88=B3=E5=92=8C=E5=A4=9A=E6=A0=BC=E5=BC=8F=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E5=8F=8D=E5=BA=8F=E5=88=97=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增对纯数字时间戳的处理逻辑(支持10位秒级和13位毫秒级) - 在日期解析失败时尝试多种预定义格式进行解析 - 为Point类字段添加@JsonAlias注解以兼容不同命名风格 --- .../json/databind/MultiDateDeserializer.java | 19 +++++++++++++++++-- .../controller/admin/model/model/Point.java | 3 +++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/MultiDateDeserializer.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/MultiDateDeserializer.java index 9c98be4..0f6a912 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/MultiDateDeserializer.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/MultiDateDeserializer.java @@ -26,12 +26,27 @@ public class MultiDateDeserializer extends JsonDeserializer { @Override public Date deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { String text = p.getText().trim(); + + // ① 如果是纯数字 → 按时间戳处理 + if (text.matches("^\\d+$")) { + long t = Long.parseLong(text); + + // 支持:10 位秒级时间戳 + if (text.length() == 10) { + return new Date(t * 1000); + } + + // 支持:13 位毫秒时间戳 + return new Date(t); + } + + // ② 尝试多种日期格式 for (String format : FORMATS) { try { return new SimpleDateFormat(format).parse(text); - } catch (ParseException ignored) { - } + } catch (ParseException ignored) {} } + throw new RuntimeException("Unsupported date format: " + text); } } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/Point.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/Point.java index 41042d8..3567144 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/Point.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/Point.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.alert.controller.admin.model.model; +import com.fasterxml.jackson.annotation.JsonAlias; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.*; @@ -17,8 +18,10 @@ import java.math.BigDecimal; @AllArgsConstructor public class Point { @JsonProperty("PointId") + @JsonAlias("pointId") private String PointId; @JsonProperty("Description") + @JsonAlias("description") private String Description; private String Unit; @JsonProperty("Lower")