Merge branch 'feature/REQ-1899' into 'master'

Feature/req 1899

See merge request universal/infrastructure/backend/msg-center-plat!320
This commit is contained in:
宋远伦 2024-01-17 09:45:42 +00:00
commit f6d08c7feb
4 changed files with 29 additions and 20 deletions

View File

@ -14,6 +14,7 @@ import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
@ -90,6 +91,7 @@ public class GeneralMessagePushVO implements Serializable {
List<CardExtensionItem> cardExtension = CollectionUtils.isEmpty(cardContentItems) ? Collections.emptyList() :
cardContentItems.stream()
.map(CardExtensionItem::from)
.filter(i -> StringUtils.isNotBlank(i.getDetail()) && !"null".equals(i.getDetail()))
.collect(Collectors.toList());
List<Subtitle> subtitles = Collections.emptyList();
Optional<Subtitle> subtitleOp = Subtitle.from(record, orgIcon);
@ -125,6 +127,7 @@ public class GeneralMessagePushVO implements Serializable {
}
return msgTemplateRouter.getRouteButtons().stream()
.map(CardButton::from)
.filter(b -> BooleanUtils.isTrue(b.isOverCard))
.collect(Collectors.toList());
}
@ -181,9 +184,13 @@ public class GeneralMessagePushVO implements Serializable {
*/
private String action;
/**
* 按钮样式
* 按钮样式 - 是否高亮
*/
private Boolean isHighlight;
/**
* 按钮样式 - 是否按钮显示在卡片
*/
private Boolean isOverCard;
/**
* 按钮点击后的跳转地址
*/
@ -207,7 +214,8 @@ public class GeneralMessagePushVO implements Serializable {
return CardButton.builder()
.title(routerButton.getName())
.action(routerButton.getCategory().name())
.isHighlight(buttonStyles.stream().allMatch(ButtonStyleEnum.HIGH_LIGHT::equals))
.isHighlight(buttonStyles.stream().anyMatch(ButtonStyleEnum.HIGH_LIGHT::equals))
.isOverCard(buttonStyles.stream().anyMatch(ButtonStyleEnum.OVER_CARD::equals))
.actionPaths(Lists.newArrayList(
new ButtonAction(TerminalTypeEnum.WEB_VIEW.name(), routerButton.getApiUrl())))
.build();
@ -215,7 +223,8 @@ public class GeneralMessagePushVO implements Serializable {
return CardButton.builder()
.title(routerButton.getName())
.action(routerButton.getCategory().name())
.isHighlight(buttonStyles.stream().allMatch(ButtonStyleEnum.HIGH_LIGHT::equals))
.isHighlight(buttonStyles.stream().anyMatch(ButtonStyleEnum.HIGH_LIGHT::equals))
.isOverCard(buttonStyles.stream().anyMatch(ButtonStyleEnum.OVER_CARD::equals))
.actionPaths(routerButton.getRouterConfigs().stream()
.map(e -> new ButtonAction(e.getTerminalType().name(), e.getUrl()))
.collect(Collectors.toList())

View File

@ -1,9 +1,7 @@
package cn.axzo.msg.center.message.service;
import cn.axzo.msg.center.message.domain.dto.MessageTemplateRouterDTO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@ -31,7 +29,7 @@ public interface MessageTemplateRouterService {
* @param router 路由配置
* @param isUpdate 是否更新
*/
void saveOrUpdate(MessageTemplateRouterDTO router, boolean isUpdate);
void saveOrUpdate(MessageTemplateRouterDTO router, boolean isUpdate, String templateCode);
/**
* 根据消息模板编码查询配置的路由列表

View File

@ -319,7 +319,7 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
MessageTemplateRouterDTO templateRouter = buildTemplateRouter(param, templateCode);
if (templateRouter.isValid()) {
// 模板配置了路由的场景
messageTemplateRouterService.saveOrUpdate(templateRouter, false);
messageTemplateRouterService.saveOrUpdate(templateRouter, false, templateCode);
}
}
@ -349,9 +349,12 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
private void updateTemplateRouters(MessageTemplateSaveOrUpdateParam param) {
MessageTemplateRouterDTO templateRouter = buildTemplateRouter(param, param.getTemplateCode());
if (templateRouter.isValid()) {
boolean isCleanOldFlag = Objects.isNull(param.getBizDetailShowStrategy())
|| CollectionUtils.isEmpty(param.getBizDetailShowStrategy().getTerminals())
|| CollectionUtils.isEmpty(param.getRouters());
if (templateRouter.isValid() || isCleanOldFlag) {
// 模板修改了路由的场景
messageTemplateRouterService.saveOrUpdate(templateRouter, true);
messageTemplateRouterService.saveOrUpdate(templateRouter, true, param.getTemplateCode());
}
}

View File

@ -16,15 +16,6 @@ import cn.axzo.msg.center.service.enums.RouterCategoryEnum;
import cn.axzo.msg.center.utils.UUIDUtil;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@ -35,6 +26,14 @@ import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @description
@ -66,14 +65,14 @@ public class MessageTemplateRouterServiceImpl implements MessageTemplateRouterSe
@Override
@Transactional(rollbackFor = Exception.class)
public void saveOrUpdate(MessageTemplateRouterDTO router, boolean isUpdate) {
public void saveOrUpdate(MessageTemplateRouterDTO router, boolean isUpdate, String templateCode) {
if (Objects.isNull(router)) {
log.info("template router is null.");
return;
}
if (isUpdate) {
// 更新的逻辑为删除旧的重新创建
remove(router.fetchTemplateCode().orElse(null));
remove(templateCode);
}
if (!router.isValid()) {
log.info("invalid message template router.");