mitao
2025-01-21 19ce15ddb66af0fb0b2e447bd70dd39e08bb30fd
Jackson时间格式化配置
3个文件已修改
40 ■■■■ 已修改文件
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/UrlDownloader.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CommonController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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");
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);
        };
    }
}
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)){