REQ-3045: fix npe

This commit is contained in:
yanglin 2024-10-12 15:40:54 +08:00
parent 6072e594a6
commit 61fcaea958
4 changed files with 34 additions and 13 deletions

View File

@ -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<MessageTemplateGroupV3> groups;
private List<MessageTemplateButtonV3> buttons;
@NotNull private MessageTemplateV3 template;
@NotNull private List<MessageTemplateGroupV3> groups;
@NotNull private List<MessageTemplateButtonV3> buttons;
public String getTemplateCode() {
return template.getCode();

View File

@ -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<MessageTemplateV3Model> findEnabledByCode(String templateCode) {
public Optional<MessageTemplateV3Model> 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<MessageTemplateV3Model> getByCodes(List<String> templateCodes) {
public List<MessageTemplateV3Model> getByCodes(List<String> templateCodes, boolean parseProps) {
if (CollectionUtils.isEmpty(templateCodes))
return Collections.emptyList();
List<MessageTemplateV3> 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<String, List<MessageTemplateGroupV3>> templateCode2Groups;
final Map<String, List<MessageTemplateButtonV3>> 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;
}

View File

@ -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) {
}
}

View File

@ -47,6 +47,10 @@ public class UrlConfig {
*/
private MobileUrlConfig appManager;
public List<TerminalUrl> 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<TerminalUrl> parse(AppTerminalTypeEnum appType) {
return new TerminalUrlParser(this, appType).parse();
}
public boolean hasUrl() {
if (pcOms != null && pcOms.hasUrl())
return true;