fix: 微信小程序接口对接修改,联调测试问题修复。

This commit is contained in:
tianyongbao
2026-01-14 08:31:55 +08:00
parent ecdaf5d4f8
commit 54bcaf3c2c
44 changed files with 3887 additions and 52 deletions

View File

@@ -8,6 +8,7 @@ import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.extern.slf4j.Slf4j;
import com.intc.common.json.handler.BigNumberSerializer;
import com.intc.common.json.handler.CustomDateDeserializer;
import com.intc.common.json.handler.LongDeserializer;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
@@ -33,8 +34,12 @@ public class JacksonConfig {
public Module registerJavaTimeModule() {
// 全局配置序列化返回 JSON 处理
JavaTimeModule javaTimeModule = new JavaTimeModule();
// Long 类型序列化超出JS安全范围转字符串
javaTimeModule.addSerializer(Long.class, BigNumberSerializer.INSTANCE);
javaTimeModule.addSerializer(Long.TYPE, BigNumberSerializer.INSTANCE);
// Long 类型反序列化:支持字符串转 Long
javaTimeModule.addDeserializer(Long.class, new LongDeserializer());
javaTimeModule.addDeserializer(Long.TYPE, new LongDeserializer());
javaTimeModule.addSerializer(BigInteger.class, BigNumberSerializer.INSTANCE);
javaTimeModule.addSerializer(BigDecimal.class, ToStringSerializer.instance);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

View File

@@ -0,0 +1,29 @@
package com.intc.common.json.handler;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
/**
* Long类型反序列化器
* 支持从字符串或数字解析Long解决前端精度丢失问题
*
* @author intc
*/
public class LongDeserializer extends JsonDeserializer<Long> {
@Override
public Long deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
String value = p.getValueAsString();
if (value == null || value.trim().isEmpty()) {
return null;
}
try {
return Long.parseLong(value.trim());
} catch (NumberFormatException e) {
throw new IllegalArgumentException("Invalid Long value: " + value);
}
}
}