From 2489c46a7ffe23a95da201a35c40424f2b79dba2 Mon Sep 17 00:00:00 2001
From: 602003139@qq.com <ljh2630734>
Date: 星期四, 21 十月 2021 14:44:53 +0800
Subject: [PATCH] 修复在swagger配置类中无法读取到satoken配置文件的问题

---
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/JacksonConfig.java |   48 ++++++++++++++++++++++++------------------------
 1 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/JacksonConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/JacksonConfig.java
index 95e3d43..55756d4 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/JacksonConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/JacksonConfig.java
@@ -5,14 +5,19 @@
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
 import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
-import com.ruoyi.common.utils.JsonUtils;
+import com.ruoyi.framework.jackson.BigNumberSerializer;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
+import org.springframework.boot.autoconfigure.jackson.JacksonProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
 
+import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.TimeZone;
 
 /**
  * jackson 閰嶇疆
@@ -23,28 +28,23 @@
 @Configuration
 public class JacksonConfig {
 
+	@Primary
 	@Bean
-	public BeanPostProcessor objectMapperBeanPostProcessor() {
-		return new BeanPostProcessor() {
-			@Override
-			public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
-				if (!(bean instanceof ObjectMapper)) {
-					return bean;
-				}
-				ObjectMapper objectMapper = (ObjectMapper) bean;
-				// 鍏ㄥ眬閰嶇疆搴忓垪鍖栬繑鍥� JSON 澶勭悊
-				SimpleModule simpleModule = new SimpleModule();
-				//JSON Long ==> String 鎶婃墍鏈夋暟瀛楄繑鍥炲彉涓哄瓧绗︿覆杩斿洖閫傞厤鍓嶇Long鍨嬪け鐪熼棶棰�
-				simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
-				simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
-				simpleModule.addSerializer(LocalDateTime.class, LocalDateTimeSerializer.INSTANCE);
-				simpleModule.addDeserializer(LocalDateTime.class, LocalDateTimeDeserializer.INSTANCE);
-				objectMapper.registerModule(simpleModule);
-				JsonUtils.init(objectMapper);
-				log.info("鍒濆鍖� jackson 閰嶇疆");
-				return bean;
-			}
-		};
+	public ObjectMapper getObjectMapper(Jackson2ObjectMapperBuilder builder, JacksonProperties jacksonProperties) {
+		ObjectMapper objectMapper = builder.createXmlMapper(false).build();
+		// 鍏ㄥ眬閰嶇疆搴忓垪鍖栬繑鍥� JSON 澶勭悊
+		SimpleModule simpleModule = new SimpleModule();
+		simpleModule.addSerializer(Long.class, BigNumberSerializer.INSTANCE);
+		simpleModule.addSerializer(Long.TYPE, BigNumberSerializer.INSTANCE);
+		simpleModule.addSerializer(BigInteger.class, BigNumberSerializer.INSTANCE);
+		simpleModule.addSerializer(BigDecimal.class, ToStringSerializer.instance);
+		DateTimeFormatter formatter = DateTimeFormatter.ofPattern(jacksonProperties.getDateFormat());
+		simpleModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(formatter));
+		simpleModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
+		objectMapper.registerModule(simpleModule);
+		objectMapper.setTimeZone(TimeZone.getDefault());
+		log.info("鍒濆鍖� jackson 閰嶇疆");
+		return objectMapper;
 	}
 
 }

--
Gitblit v1.9.3