From daf16667f413119b7e3892328e9a24f554948955 Mon Sep 17 00:00:00 2001 From: Penny <2500338766@qq.com> Date: Mon, 15 May 2023 22:20:11 +0800 Subject: [PATCH] fix:bug --- .../bnyer/common/core/config/JsonConfig.java | 36 +++++++++++++++++++ .../serializer/LongToStringSerializer.java | 24 +++++++++++++ .../img/controller/UserVipController.java | 4 +-- .../com/bnyer/img/mapper/AiPaintMapper.java | 1 - .../com/bnyer/img/mapper/UserVipMapper.java | 2 +- .../com/bnyer/img/service/UserVipService.java | 3 +- .../img/service/impl/UserVipServiceImpl.java | 5 ++- .../com/bnyer/img/mapper/UserVipMapper.xml | 3 -- 8 files changed, 66 insertions(+), 12 deletions(-) create mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/config/JsonConfig.java create mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/serializer/LongToStringSerializer.java diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/config/JsonConfig.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/config/JsonConfig.java new file mode 100644 index 0000000..9b23d72 --- /dev/null +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/config/JsonConfig.java @@ -0,0 +1,36 @@ +package com.bnyer.common.core.config; + +import com.bnyer.common.core.serializer.LongToStringSerializer; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +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; + +/** + * 解决雪花Id长度超过16位前端传入精度丢失的问题 + */ +@Configuration +public class JsonConfig { + @Bean + @Primary + @ConditionalOnMissingBean(ObjectMapper.class) + public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) + { + ObjectMapper objectMapper = builder.createXmlMapper(false).build(); + // 全局配置序列化返回 JSON 处理 + SimpleModule simpleModule = new SimpleModule(); + //JSON Long ==> String + //自定义字符串转化规则ToStringSerializer换成自定义的LongToStringSerializer + simpleModule.addSerializer(Long.class, LongToStringSerializer.instance); + simpleModule.addSerializer(Long.TYPE, LongToStringSerializer.instance); + + objectMapper.registerModule(simpleModule); + //参数在bean中没有的情况处理 + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + return objectMapper; + } +} diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/serializer/LongToStringSerializer.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/serializer/LongToStringSerializer.java new file mode 100644 index 0000000..5dcd97c --- /dev/null +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/serializer/LongToStringSerializer.java @@ -0,0 +1,24 @@ +package com.bnyer.common.core.serializer; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public class LongToStringSerializer extends JsonSerializer { + public static final LongToStringSerializer instance = new LongToStringSerializer(); + + @Override + public void serialize(Long id, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { + if(id != null){ + //长度小于某个值的,还是保持long类型 + if(id < 10000000000000000L){ + jsonGenerator.writeNumber(id); + }else { + //长度超过某个值的,转化为字符串 + jsonGenerator.writeString(id.toString()); + } + } + } +} \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java index dd441e2..edae61a 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java @@ -28,8 +28,8 @@ public class UserVipController { @Operation(summary="获取会员列表",description = "获取会员列表") @PostMapping(value = "/queryUserVipList") - public R> queryUserVipList(@RequestBody UserVipQuery query){ - return R.ok(userVipService.queryUserVipList(query)); + public R> queryUserVipList(){ + return R.ok(userVipService.queryUserVipList()); } @Operation(summary="获取会员信息",description = "获取会员信息") diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/AiPaintMapper.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/AiPaintMapper.java index 3489e22..793b10c 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/AiPaintMapper.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/AiPaintMapper.java @@ -2,7 +2,6 @@ package com.bnyer.img.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.bnyer.common.core.domain.AiPaint; -import com.bnyer.common.core.dto.AiPaintPageDto; import com.bnyer.img.vo.AiPaintVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipMapper.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipMapper.java index 4cf1868..d307a52 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipMapper.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipMapper.java @@ -15,6 +15,6 @@ public interface UserVipMapper extends BaseMapper { * 获取小程序端会员vip列表 * @return - */ - List queryVipList(UserVipQuery query); + List queryVipList(); } \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipService.java index f8e480f..34d5585 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipService.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipService.java @@ -11,10 +11,9 @@ public interface UserVipService extends IService { /** * 获取用户会员列表 - * @param query * @return */ - List queryUserVipList(UserVipQuery query); + List queryUserVipList(); /** * 获取会员详细信息 diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java index 608d0e6..420cc31 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java @@ -31,12 +31,11 @@ public class UserVipServiceImpl extends ServiceImpl impl /** * 获取用户会员列表 - * @param query * @return */ @Override - public List queryUserVipList(UserVipQuery query) { - return userVipMapper.queryVipList(query); + public List queryUserVipList() { + return userVipMapper.queryVipList(); } /** diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml index 4d5c474..7ffd70c 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml @@ -46,9 +46,6 @@ from img_user_vip v left join img_vip_type vt on vt.id = v.vip_type_id where v.is_show = '1' - - and v.id=#{id} - order by sort asc \ No newline at end of file