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