From 19ce15ddb66af0fb0b2e447bd70dd39e08bb30fd Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 21 一月 2025 18:07:12 +0800 Subject: [PATCH] Jackson时间格式化配置 --- ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/UrlDownloader.java | 7 +++++++ ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java | 24 ++++++++++++++++++++++++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CommonController.java | 9 +-------- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/UrlDownloader.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/UrlDownloader.java index 19fb32c..3983e44 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/UrlDownloader.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/UrlDownloader.java @@ -17,6 +17,13 @@ * @throws IOException 如果发生I/O错误 */ public static InputStream downloadAsStream(String urlString) throws IOException { + // 找到最后一个斜杠的位置 + int lastSlashIndex = urlString.lastIndexOf("/"); + // 从斜杠后提取文件名 + String baseUrl = urlString.substring(0, lastSlashIndex); + String fileName = urlString.substring(lastSlashIndex + 1); + String encode = URLEncoder.encode(fileName, "UTF-8"); + urlString = baseUrl + "/" + encode; URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java index 4433951..0814d9a 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java @@ -1,9 +1,15 @@ package com.ruoyi.common.security.config; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.context.annotation.Bean; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.TimeZone; /** @@ -13,6 +19,8 @@ */ public class ApplicationConfig { + private static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; + private static final String DATE_PATTERN = "yyyy-MM-dd"; /** * 时区配置 */ @@ -28,4 +36,20 @@ builder.serializerByType(Long.class, ToStringSerializer.instance); }; } + /** + * 统一配置 + */ + @Bean + public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() { + JavaTimeModule module = new JavaTimeModule(); + LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer( + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer); + return builder -> { + builder.simpleDateFormat(DATE_TIME_PATTERN); + builder.serializers(new LocalDateSerializer(DateTimeFormatter.ofPattern(DATE_PATTERN))); + builder.serializers(new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DATE_TIME_PATTERN))); + builder.modules(module); + }; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CommonController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CommonController.java index cf34fe0..335d461 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CommonController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CommonController.java @@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.RestController; import java.io.InputStream; -import java.net.URLEncoder; @RestController @RequestMapping("/common") @@ -31,13 +30,7 @@ public R<IdCard> idCard(@Parameter(name = "url", description = "图片地址") String url) { InputStream inputStream; try { - // 找到最后一个斜杠的位置 - int lastSlashIndex = url.lastIndexOf("/"); - // 从斜杠后提取文件名 - String baseUrl = url.substring(0, lastSlashIndex); - String fileName = url.substring(lastSlashIndex + 1); - String encode = URLEncoder.encode(fileName, "UTF-8"); - url = baseUrl + "/" + encode; + inputStream = UrlDownloader.downloadAsStream(url); String jsonStr = OcrUtils.idCard(inputStream,"IdCard"); if (StringUtils.isEmpty(jsonStr)){ -- Gitblit v1.7.1