From 6869e5f3e5b55ad550f3b1d2230e3919c797210e Mon Sep 17 00:00:00 2001 From: luofu Date: Fri, 13 Oct 2023 16:41:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-1465):=20=E8=B0=83=E6=95=B4=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1465?goToView=1 修改: 1、处理数据模型变更引起的空指针问题 影响: 无 --- .../message/domain/dto/RawMessageRouterDTO.java | 14 ++++++++++++-- .../impl/MessageTemplateRouterServiceImpl.java | 3 +-- .../axzo/msg/center/utils/MessageRouterUtil.java | 16 ++++++++++++++-- .../MessageTemplateUpdateStatusRequest.java | 1 + 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/RawMessageRouterDTO.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/RawMessageRouterDTO.java index ba1ee845..d37ccedb 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/RawMessageRouterDTO.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/RawMessageRouterDTO.java @@ -60,12 +60,15 @@ public class RawMessageRouterDTO implements Serializable { public static RawMessageRouterDTO from(List msgTemplateRouters) { MessageTemplateRouter router = msgTemplateRouters.get(0); + List terminals = msgTemplateRouters.stream() + .map(RawMessageRouterDTO::convert2Terminal) + .collect(Collectors.toList()); return RawMessageRouterDTO.builder() .desc(router.getName()) .category(router.getCategory()) .templateCode(router.getTemplateCode()) - .style(JSON.parseArray(router.getStyle(), ButtonStyleEnum.class)) - .terminals(JSON.parseArray(router.getStyle(), MessageRouterTerminalDTO.class)) + .style(MessageRouterUtil.parseButtonStyle(router.getStyle())) + .terminals(terminals) .build(); } @@ -107,6 +110,13 @@ public class RawMessageRouterDTO implements Serializable { return router; } + private static MessageRouterTerminalDTO convert2Terminal(MessageTemplateRouter router) { + return MessageRouterTerminalDTO.builder() + .url(router.getUrl()) + .terminalType(router.getTerminalType()) + .build(); + } + @Override public String toString() { return JSON.toJSONString(this); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageTemplateRouterServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageTemplateRouterServiceImpl.java index 6572992f..59e73f4a 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageTemplateRouterServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageTemplateRouterServiceImpl.java @@ -69,8 +69,7 @@ public class MessageTemplateRouterServiceImpl implements MessageTemplateRouterSe // 模板路由的按钮维度 Map> btnMap = e.stream() .collect(Collectors.groupingBy(MessageTemplateRouter::getName)); - return btnMap.values().stream() - .map(RawMessageRouterDTO::from); + return btnMap.values().stream().map(RawMessageRouterDTO::from); }).collect(Collectors.toList()); } } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/utils/MessageRouterUtil.java b/inside-notices/src/main/java/cn/axzo/msg/center/utils/MessageRouterUtil.java index d04bcfe1..9c752d85 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/utils/MessageRouterUtil.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/utils/MessageRouterUtil.java @@ -4,18 +4,17 @@ import cn.axzo.msg.center.common.utils.PlaceholderResolver; import cn.axzo.msg.center.message.domain.dto.RawMessageRouterDTO; import cn.axzo.msg.center.service.dto.MessageRouterDTO; import cn.axzo.msg.center.service.dto.MessageRouterTerminalDTO; +import cn.axzo.msg.center.service.enums.ButtonStyleEnum; import cn.axzo.msg.center.service.enums.RouterCategoryEnum; import cn.axzo.msg.center.service.enums.TerminalTypeEnum; import com.alibaba.fastjson.JSON; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import java.util.Collections; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; /** * @description @@ -74,4 +73,17 @@ public final class MessageRouterUtil { router.setUrl(routerUrl); } } + + /** + * 解析按钮style + * + * @param style 按钮style的JSON字串 + * @return 按钮style的枚举列表 + */ + public static List parseButtonStyle(String style) { + if (StringUtils.isBlank(style)) { + return Collections.emptyList(); + } + return JSON.parseArray(style, ButtonStyleEnum.class); + } } diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/template/request/MessageTemplateUpdateStatusRequest.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/template/request/MessageTemplateUpdateStatusRequest.java index e3fd9759..3443615d 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/template/request/MessageTemplateUpdateStatusRequest.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/template/request/MessageTemplateUpdateStatusRequest.java @@ -35,6 +35,7 @@ public class MessageTemplateUpdateStatusRequest implements Serializable { * ENABLE: 启用 * DISABLE: 禁用 */ + @NotNull(message = "status is required") private StatusEnum status; @Override