From 403fbe8fa8d3df96d692ad41ffa1c300b0db5493 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期六, 24 八月 2024 18:02:02 +0800
Subject: [PATCH] APP端登录模块接口

---
 xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/config/JacksonConfig.java |   48 ++++++++++++++++++++++++++----------------------
 1 files changed, 26 insertions(+), 22 deletions(-)

diff --git a/xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/config/JacksonConfig.java b/xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/config/JacksonConfig.java
index aeb8196..369fb8b 100644
--- a/xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/config/JacksonConfig.java
+++ b/xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/config/JacksonConfig.java
@@ -1,33 +1,37 @@
 package com.xinquan.common.security.config;
- 
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.databind.MapperFeature;
+
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.module.SimpleModule;
 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 java.math.BigInteger;
+import java.time.format.DateTimeFormatter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
 import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
-import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
- 
+
 /**
  * Jackson配置
  */
-@Configuration
+@ConditionalOnClass(ObjectMapper.class)
 public class JacksonConfig {
- 
-    @SuppressWarnings("deprecation")
+
+    private static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
+    private static final String DATE_PATTERN = "yyyy-MM-dd";
+
     @Bean
-    public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() {
-        final Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
-        builder.serializationInclusion(JsonInclude.Include.NON_NULL);
-        final ObjectMapper objectMapper = builder.build();
-        SimpleModule simpleModule = new SimpleModule();
-        // Long 转为 String 防止 js 丢失精度
-        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
-        objectMapper.registerModule(simpleModule);
-        // 忽略 transient 关键词属性
-        objectMapper.configure(MapperFeature.PROPAGATE_TRANSIENT_MARKER, true);
-        return new MappingJackson2HttpMessageConverter(objectMapper);
+    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
+        return jacksonObjectMapperBuilder -> {
+            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(
+                    DATE_TIME_PATTERN);
+            jacksonObjectMapperBuilder.timeZone("GMT+8");
+            jacksonObjectMapperBuilder.serializers(new LocalDateTimeSerializer(dateTimeFormatter));
+            jacksonObjectMapperBuilder.deserializers(
+                    new LocalDateTimeDeserializer(dateTimeFormatter));
+            // long -> string
+            jacksonObjectMapperBuilder.serializerByType(Long.class, ToStringSerializer.instance);
+            jacksonObjectMapperBuilder.serializerByType(BigInteger.class,
+                    ToStringSerializer.instance);
+        };
     }
 }
\ No newline at end of file

--
Gitblit v1.7.1