From e979826271fdcfd240c1dccf8ae9186121f2056f Mon Sep 17 00:00:00 2001 From: hui Date: Mon, 16 Dec 2024 17:09:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=9B=BF=E6=8D=A2-=E8=83=8C?= =?UTF-8?q?=E6=B0=B4=E4=B8=80=E6=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/api/ThirdApi.java | 3 +- .../api/infrastructure/res/InfraResult.java | 103 ++++++++++++++++++ .../java/com/xboe/config/JacksonConfig.java | 20 ++++ .../main/java/com/xboe/config/WebConfig.java | 16 ++- 4 files changed, 138 insertions(+), 4 deletions(-) create mode 100644 servers/boe-server-all/src/main/java/com/xboe/api/infrastructure/res/InfraResult.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/config/JacksonConfig.java diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java index 71d8fa7c..7dc61894 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java @@ -20,6 +20,7 @@ import com.boe.feign.api.usercenter.remote.AudienceRemoteClient; import com.boe.feign.api.usercenter.remote.UserRemoteClient; import com.boe.feign.api.usercenter.reps.AudienceMemberVo; import com.boe.feign.api.usercenter.reps.Response; +import com.xboe.api.infrastructure.res.InfraResult; import com.xboe.api.vo.*; import com.xboe.common.PageList; import com.xboe.common.Pagination; @@ -89,7 +90,7 @@ public class ThirdApi { searcher.setPid(316L); searcher.setType(1); List dictList = dictRemoteClient.getList(searcher); - String responseBody = JSON.toJSONString(dictList); + String responseBody = JSON.toJSONString(InfraResult.suc(dictList)); log.info("正在获取例外人员工号 responseBody = " + responseBody); try { Optional dictResultOptional = Optional.of(responseBody) diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/infrastructure/res/InfraResult.java b/servers/boe-server-all/src/main/java/com/xboe/api/infrastructure/res/InfraResult.java new file mode 100644 index 00000000..6b8d17cc --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/api/infrastructure/res/InfraResult.java @@ -0,0 +1,103 @@ +package com.xboe.api.infrastructure.res; + +import com.boe.feign.api.courseweb.reps.MessageEnum; +import com.boe.feign.api.courseweb.reps.ResultStatus; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.HashMap; + + +@Data +@Accessors(chain = true) +public class InfraResult implements Serializable { + + private boolean isSuccess = true; + private boolean show = false; + private String version = "1.1.0"; + private int code; + private String msg; + private T data; + + public InfraResult() { + } + + public InfraResult(boolean isSuccess, int code, String msg) { + this.isSuccess = isSuccess; + this.code = code; + this.msg = msg; + } + + public InfraResult(boolean isSuccess, int code, String msg, T data) { + this.isSuccess = isSuccess; + this.code = code; + this.msg = msg; + this.data = data; + } + + public InfraResult(MessageEnum messageEnum) { + this.code = messageEnum.getCode(); + this.msg = messageEnum.getMessage(); + this.show = messageEnum.isShow(); + } + + public InfraResult(MessageEnum messageEnum, T data) { + this.code = messageEnum.getCode(); + this.msg = messageEnum.getMessage(); + this.show = messageEnum.isShow(); + this.data = data; + } + + public InfraResult(boolean isSuccess, MessageEnum messageEnum) { + this.isSuccess = isSuccess; + this.code = messageEnum.getCode(); + this.msg = messageEnum.getMessage(); + this.show = messageEnum.isShow(); + } + + public InfraResult(boolean isSuccess, MessageEnum messageEnum, T data) { + this.isSuccess = isSuccess; + this.code = messageEnum.getCode(); + this.msg = messageEnum.getMessage(); + this.show = messageEnum.isShow(); + this.data = data; + } + + public void setMessageEnum(MessageEnum messageEnum) { + this.code = messageEnum.getCode(); + this.msg = messageEnum.getMessage(); + } + + public InfraResult(ResultStatus status, T data) { + this.code = status.getCode(); + this.msg = status.getMessage(); + this.data = data; + } + + public static InfraResult error(String message) { + return new InfraResult(true, -1, message); + } + + public static InfraResult error(MessageEnum messageEnum) { + return new InfraResult(messageEnum); + } + + public static InfraResult error(MessageEnum messageEnum, String errMsg) { + return new InfraResult(messageEnum,errMsg); + } + + public static InfraResult error(ResultStatus error) { + return new InfraResult(error, new HashMap<>(20)); + } + + + public static InfraResult suc(Object data) { + return new InfraResult(ResultStatus.SUCCESS, data); + } + + public static InfraResult ok() { + return new InfraResult(ResultStatus.SUCCESS, new HashMap<>(20)); + } + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/config/JacksonConfig.java b/servers/boe-server-all/src/main/java/com/xboe/config/JacksonConfig.java new file mode 100644 index 00000000..97490f3a --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/config/JacksonConfig.java @@ -0,0 +1,20 @@ +package com.xboe.config; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +//@Configuration +public class JacksonConfig { + +// @Bean +// public ObjectMapper objectMapper() { +// ObjectMapper mapper = new ObjectMapper(); +// mapper.registerModule(new JavaTimeModule()); +// mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY,true); +// return mapper; +// } +} + diff --git a/servers/boe-server-all/src/main/java/com/xboe/config/WebConfig.java b/servers/boe-server-all/src/main/java/com/xboe/config/WebConfig.java index a0a7ad68..983a3992 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/config/WebConfig.java +++ b/servers/boe-server-all/src/main/java/com/xboe/config/WebConfig.java @@ -1,11 +1,15 @@ package com.xboe.config; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.cbor.MappingJackson2CborHttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -16,13 +20,19 @@ public class WebConfig implements WebMvcConfigurer { private static final Logger logger = LoggerFactory.getLogger(WebConfig.class); - //结果处理器 @Bean public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(ObjectMapper objectMapper) { return new LoggingMappingJackson2HttpMessageConverter(objectMapper); } + @Bean + public ObjectMapper objectMapper() { + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY,true); + return mapper; + } /** * 在默认的消息转换器基础上添加或移除某些转换器 * 保证StringHttpMessageConverter在FastJsonHttpMessageConverter前被调用 @@ -31,8 +41,8 @@ public class WebConfig implements WebMvcConfigurer { */ @Override public void extendMessageConverters(List> converters) { - converters.removeIf(t -> t instanceof MappingJackson2HttpMessageConverter); - converters.add(mappingJackson2HttpMessageConverter(new ObjectMapper())); + converters.removeIf(t -> t instanceof MappingJackson2HttpMessageConverter || t instanceof MappingJackson2CborHttpMessageConverter); + converters.add(mappingJackson2HttpMessageConverter(objectMapper())); for (HttpMessageConverter converterLoop : converters) { logger.info("==######### Registered e message converter: {}", converterLoop.getClass().getName()); }