From dd8a33476ef7e3a37106f0c5081fdf36eb6e7839 Mon Sep 17 00:00:00 2001 From: luofu Date: Mon, 20 Nov 2023 16:31:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-1507):=20=E8=80=81=E7=9A=84=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E6=95=B0=E6=8D=AE=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1507?goToView=1 影响: 无 --- .../domain/dto/MessageTemplateRouterDTO.java | 44 +++++++++++++++++++ .../msg/center/utils/MessageRouterUtil.java | 10 +++-- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateRouterDTO.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateRouterDTO.java index c9a9cf41..c05f5196 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateRouterDTO.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateRouterDTO.java @@ -69,6 +69,15 @@ public class MessageTemplateRouterDTO implements Serializable { return Optional.empty(); } + public MessageTemplateRouterDTO deepClone() { + List buttons = CollectionUtils.isEmpty(this.routeButtons) ? Collections.emptyList() + : this.routeButtons.stream().map(MessageRouteButtonDTO::deepClone).collect(Collectors.toList()); + return MessageTemplateRouterDTO.builder() + .routeDetail(Optional.ofNullable(this.routeDetail).map(MessageRouteDetailDTO::deepClone).orElse(null)) + .routeButtons(buttons) + .build(); + } + @Override public String toString() { return JSON.toJSONString(this); @@ -149,6 +158,17 @@ public class MessageTemplateRouterDTO implements Serializable { return MessageDetailRouteStrategyDTO.builder().showStrategy(this.showStrategy).terminals(terminals).build(); } + public MessageRouteDetailDTO deepClone() { + List configs = CollectionUtils.isEmpty(this.routerConfigs) ? Collections.emptyList() + : this.routerConfigs.stream().map(MessageRouterConfigDTO::deepClone).collect(Collectors.toList()); + return MessageRouteDetailDTO.builder() + .name(this.name) + .templateCode(this.templateCode) + .showStrategy(this.showStrategy) + .routerConfigs(configs) + .build(); + } + @Override public String toString() { return JSON.toJSONString(this); @@ -283,6 +303,22 @@ public class MessageTemplateRouterDTO implements Serializable { .build(); } + public MessageRouteButtonDTO deepClone() { + List configs = CollectionUtils.isEmpty(this.routerConfigs) ? Collections.emptyList() + : this.routerConfigs.stream().map(MessageRouterConfigDTO::deepClone).collect(Collectors.toList()); + return MessageRouteButtonDTO.builder() + .name(this.name) + .btnCode(this.btnCode) + .templateCode(this.templateCode) + .source(this.source) + .category(this.category) + .apiUrl(this.apiUrl) + .style(Optional.ofNullable(this.style).map(JSONArray::new).orElse(null)) + .priority(this.priority) + .routerConfigs(configs) + .build(); + } + @Override public String toString() { return JSON.toJSONString(this); @@ -326,6 +362,14 @@ public class MessageTemplateRouterDTO implements Serializable { .build(); } + public MessageRouterConfigDTO deepClone() { + return MessageRouterConfigDTO.builder() + .routerCode(this.routerCode) + .terminalType(this.terminalType) + .url(this.url) + .build(); + } + @Override public String toString() { return JSON.toJSONString(this); 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 418846f8..5d48cbe7 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 @@ -1,6 +1,5 @@ package cn.axzo.msg.center.utils; -import cn.axzo.msg.center.common.utils.BeanConvertUtils; import cn.axzo.msg.center.common.utils.PlaceholderResolver; import cn.axzo.msg.center.message.domain.dto.MessageTemplateRouterDTO; import cn.axzo.msg.center.message.domain.dto.MessageTemplateRouterDTO.MessageRouteButtonDTO; @@ -133,10 +132,13 @@ public final class MessageRouterUtil { */ public static MessageTemplateRouterDTO parseAndConcatRouteUrl(MessageTemplateRouterDTO msgTemplateRouter, JSONObject routerParam) { + if (Objects.isNull(msgTemplateRouter)) { + return msgTemplateRouter; + } + // 拷贝一份,避免修改入参 + msgTemplateRouter = msgTemplateRouter.deepClone(); // 路由参数有效 - if (Objects.nonNull(routerParam) && Objects.nonNull(msgTemplateRouter)) { - // 拷贝一份,避免修改入参 - msgTemplateRouter = BeanConvertUtils.copyBean(msgTemplateRouter, MessageTemplateRouterDTO.class); + if (Objects.nonNull(routerParam)) { // 编排业务详情路由 parseAndConcatDetailRouterUrl(msgTemplateRouter.getRouteDetail(), routerParam); // 编排路由按钮