From 61fcaea9583c2e2c70c5ec991532ba3904ae5ab8 Mon Sep 17 00:00:00 2001 From: yanglin Date: Sat, 12 Oct 2024 15:40:54 +0800 Subject: [PATCH] REQ-3045: fix npe --- .../domain/dto/MessageTemplateV3Model.java | 7 ++++--- .../model}/MessageTemplateV3ModelService.java | 17 +++++++++++------ .../impl/v3/model/V3ModelPropsParser.java | 15 +++++++++++++++ .../msg/center/service/domain/UrlConfig.java | 8 ++++---- 4 files changed, 34 insertions(+), 13 deletions(-) rename inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/{ => v3/model}/MessageTemplateV3ModelService.java (85%) create mode 100644 inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/model/V3ModelPropsParser.java diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateV3Model.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateV3Model.java index 0a4cdc27..90a3adda 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateV3Model.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateV3Model.java @@ -5,6 +5,7 @@ import cn.axzo.msg.center.domain.entity.MessageTemplateGroupV3; import cn.axzo.msg.center.domain.entity.MessageTemplateV3; import lombok.Getter; import lombok.Setter; +import org.jetbrains.annotations.NotNull; import java.util.List; @@ -15,9 +16,9 @@ import java.util.List; @Getter public class MessageTemplateV3Model { - private MessageTemplateV3 template; - private List groups; - private List buttons; + @NotNull private MessageTemplateV3 template; + @NotNull private List groups; + @NotNull private List buttons; public String getTemplateCode() { return template.getCode(); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageTemplateV3ModelService.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/model/MessageTemplateV3ModelService.java similarity index 85% rename from inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageTemplateV3ModelService.java rename to inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/model/MessageTemplateV3ModelService.java index e712816f..e92fb71e 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageTemplateV3ModelService.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/model/MessageTemplateV3ModelService.java @@ -1,4 +1,4 @@ -package cn.axzo.msg.center.message.service.impl; +package cn.axzo.msg.center.message.service.impl.v3.model; import cn.axzo.msg.center.dal.MessageTemplateButtonV3Dao; import cn.axzo.msg.center.dal.MessageTemplateGroupV3Dao; @@ -31,8 +31,9 @@ public class MessageTemplateV3ModelService { private final MessageTemplateV3Dao messageTemplateV3Dao; private final MessageTemplateGroupV3Dao messageTemplateGroupV3Dao; private final MessageTemplateButtonV3Dao messageTemplateButtonV3Dao; + private final V3ModelPropsParser v3ModelPropsParser; - public Optional findEnabledByCode(String templateCode) { + public Optional findEnabledByCode(String templateCode, boolean parseProps) { MessageTemplateV3 template = messageTemplateV3Dao.lambdaQuery() .eq(MessageTemplateV3::getCode, templateCode) .eq(MessageTemplateV3::getIsDelete, 0) @@ -40,18 +41,18 @@ public class MessageTemplateV3ModelService { .one(); if (template == null) return Optional.empty(); - ModelBuilder builder = new ModelBuilder(templateCode); + ModelBuilder builder = new ModelBuilder(parseProps, templateCode); return Optional.of(builder.build(template)); } - public List getByCodes(List templateCodes) { + public List getByCodes(List templateCodes, boolean parseProps) { if (CollectionUtils.isEmpty(templateCodes)) return Collections.emptyList(); List templates = messageTemplateV3Dao.lambdaQuery() .in(MessageTemplateV3::getCode, templateCodes) .eq(MessageTemplateV3::getIsDelete, 0) .list(); - ModelBuilder builder = new ModelBuilder(templateCodes.toArray(new String[0])); + ModelBuilder builder = new ModelBuilder(parseProps, templateCodes.toArray(new String[0])); return templates.stream() .map(builder::build) .collect(toList()); @@ -62,8 +63,10 @@ public class MessageTemplateV3ModelService { final Map> templateCode2Groups; final Map> templateCode2Buttons; + private final boolean parseProps; - ModelBuilder(String... templateCodes) { + ModelBuilder(boolean parseProps, String... templateCodes) { + this.parseProps = parseProps; if (templateCodes.length > 0) { templateCode2Groups = messageTemplateGroupV3Dao.lambdaQuery() .in(MessageTemplateGroupV3::getTemplateCode, Arrays.asList(templateCodes)) @@ -84,6 +87,8 @@ public class MessageTemplateV3ModelService { model.setTemplate(template); model.setGroups(templateCode2Groups.getOrDefault(template.getCode(), Collections.emptyList())); model.setButtons(templateCode2Buttons.getOrDefault(template.getCode(), Collections.emptyList())); + if (parseProps) + v3ModelPropsParser.parse(model); return model; } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/model/V3ModelPropsParser.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/model/V3ModelPropsParser.java new file mode 100644 index 00000000..e0827481 --- /dev/null +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/model/V3ModelPropsParser.java @@ -0,0 +1,15 @@ +package cn.axzo.msg.center.message.service.impl.v3.model; + +import cn.axzo.msg.center.message.domain.dto.MessageTemplateV3Model; +import org.springframework.stereotype.Component; + +/** + * @author yanglin + */ +@Component +class V3ModelPropsParser { + + void parse(MessageTemplateV3Model model) { + } + +} \ No newline at end of file diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/UrlConfig.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/UrlConfig.java index 7293a68f..b448a5ec 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/UrlConfig.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/UrlConfig.java @@ -47,6 +47,10 @@ public class UrlConfig { */ private MobileUrlConfig appManager; + public List parse(AppTerminalTypeEnum appType) { + return new TerminalUrlParser(this, appType).parse(); + } + @JsonIgnore @JSONField(serialize = false) public WebUrl getOrCreatePcOms() { if (pcOms == null) @@ -82,10 +86,6 @@ public class UrlConfig { return appManager; } - public List parse(AppTerminalTypeEnum appType) { - return new TerminalUrlParser(this, appType).parse(); - } - public boolean hasUrl() { if (pcOms != null && pcOms.hasUrl()) return true;