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