Merge branch 'feature/REQ-1507' of axzsource.com:universal/infrastructure/backend/msg-center-plat into dev

This commit is contained in:
luofu 2023-11-06 18:16:57 +08:00
commit 17110f049d
11 changed files with 182 additions and 80 deletions

View File

@ -1,10 +1,12 @@
package cn.axzo.msg.center.message.domain.dto; package cn.axzo.msg.center.message.domain.dto;
import cn.axzo.msg.center.domain.entity.MessageBaseTemplate; import cn.axzo.msg.center.domain.entity.MessageBaseTemplate;
import cn.axzo.msg.center.service.dto.BizDetailShowStrategyDTO;
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO; import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
import cn.axzo.msg.center.service.enums.MessageCategoryEnum; import cn.axzo.msg.center.service.enums.MessageCategoryEnum;
import cn.axzo.msg.center.service.enums.PushTerminalEnum; import cn.axzo.msg.center.service.enums.PushTerminalEnum;
import cn.axzo.msg.center.utils.JSONObjectUtil; import cn.axzo.msg.center.utils.JSONObjectUtil;
import cn.axzo.msg.center.utils.MessageRouterUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
@ -63,6 +65,10 @@ public class MessageTemplateDTO implements Serializable {
* 模板icon * 模板icon
*/ */
private String icon; private String icon;
/**
* 业务详情展示策略
*/
private BizDetailShowStrategyDTO bizDetailShowStrategy;
/** /**
* 模板路由信息 * 模板路由信息
*/ */
@ -77,6 +83,9 @@ public class MessageTemplateDTO implements Serializable {
private String minAppVersion; private String minAppVersion;
public static MessageTemplateDTO from(MessageBaseTemplate baseTemplate, List<RawMessageRouterDTO> routers) { public static MessageTemplateDTO from(MessageBaseTemplate baseTemplate, List<RawMessageRouterDTO> routers) {
// 业务详情展示策略
BizDetailShowStrategyDTO bizDetailShowStrategy = MessageRouterUtil.selectAndConvertBizDetailShowStrategy(
baseTemplate.getBizDetailShowStrategy(), routers).orElse(null);
return MessageTemplateDTO.builder() return MessageTemplateDTO.builder()
.name(baseTemplate.getName()) .name(baseTemplate.getName())
.code(baseTemplate.getCode()) .code(baseTemplate.getCode())
@ -84,8 +93,9 @@ public class MessageTemplateDTO implements Serializable {
.content(baseTemplate.getContent()) .content(baseTemplate.getContent())
.msgCardContentItems(JSONObjectUtil.parseArray(baseTemplate.getCardContent(), MessageCardContentItemDTO.class)) .msgCardContentItems(JSONObjectUtil.parseArray(baseTemplate.getCardContent(), MessageCardContentItemDTO.class))
.msgCategory(baseTemplate.getMsgCategory()) .msgCategory(baseTemplate.getMsgCategory())
.bizDetailShowStrategy(bizDetailShowStrategy)
.icon(baseTemplate.getIcon()) .icon(baseTemplate.getIcon())
.routers(routers) .routers(MessageRouterUtil.selectRouterButtons(routers))
.pushTerminals(JSON.parseArray(baseTemplate.getPushTerminal(), PushTerminalEnum.class)) .pushTerminals(JSON.parseArray(baseTemplate.getPushTerminal(), PushTerminalEnum.class))
.minAppVersion(baseTemplate.getMinAppVersion()) .minAppVersion(baseTemplate.getMinAppVersion())
.build(); .build();

View File

@ -1,6 +1,7 @@
package cn.axzo.msg.center.message.domain.dto; package cn.axzo.msg.center.message.domain.dto;
import cn.axzo.msg.center.domain.entity.MessageTemplateRouter; import cn.axzo.msg.center.domain.entity.MessageTemplateRouter;
import cn.axzo.msg.center.service.dto.BizDetailShowStrategyDTO;
import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO; import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO;
import cn.axzo.msg.center.service.dto.MessageRouterDTO; import cn.axzo.msg.center.service.dto.MessageRouterDTO;
import cn.axzo.msg.center.service.dto.MessageRouterTerminalDTO; import cn.axzo.msg.center.service.dto.MessageRouterTerminalDTO;
@ -73,6 +74,15 @@ public class RawMessageRouterDTO implements Serializable {
.build(); .build();
} }
public static RawMessageRouterDTO from(BizDetailShowStrategyDTO showStrategy, String templateCode) {
return RawMessageRouterDTO.builder()
.desc("业务详情展示策略")
.category(RouterCategoryEnum.DETAIL)
.terminals(showStrategy.getTerminals())
.templateCode(templateCode)
.build();
}
public static RawMessageRouterDTO from(MessageRouterButtonDTO router, String templateCode) { public static RawMessageRouterDTO from(MessageRouterButtonDTO router, String templateCode) {
return RawMessageRouterDTO.builder() return RawMessageRouterDTO.builder()
.desc(router.getDesc()) .desc(router.getDesc())

View File

@ -1,5 +1,6 @@
package cn.axzo.msg.center.message.domain.param; package cn.axzo.msg.center.message.domain.param;
import cn.axzo.msg.center.service.dto.BizDetailShowStrategyDTO;
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO; import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO; import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO;
import cn.axzo.msg.center.service.enums.MessageCategoryEnum; import cn.axzo.msg.center.service.enums.MessageCategoryEnum;
@ -32,54 +33,63 @@ public class MessageTemplateSaveOrUpdateParam implements Serializable {
private static final long serialVersionUID = 6657624182580261353L; private static final long serialVersionUID = 6657624182580261353L;
/**
* 模板名称
*/
private String templateName;
/** /**
* 模板编码 * 模板编码
*/ */
private String templateCode; private String templateCode;
/** /**
* 消息分类树的叶结点的结点编码列表 * 操作者的自然人id
*/
private List<String> leafGroupNodes;
/**
* 所属消息类型
* GENERAL_MESSAGE: 普通消息
* PENDING_MESSAGE: 待办消息
*/
private MessageCategoryEnum msgCategory;
/**
* 模板标题
*/
private String title;
/**
* 模板类容
*/
private String content;
/**
* 消息卡片信息标签列表
*/
private List<MessageCardContentItemDTO> msgCardContentItems;
/**
* 模板icon
*/
private String icon;
/**
* 操作者自然人id
*/ */
private Long operatorId; private Long operatorId;
/** /**
* 路由列表 * 模板名称
*/ */
private List<MessageRouterButtonDTO> routers; private String templateName;
/**
* 消息类型
* GENERAL_MESSAGE: 通知
* BIZ_PENDING_MESSAGE: 业务待办
* APPROVAL_PENDING_MESSAGE: 审批待办
*/
private MessageCategoryEnum msgCategory;
/**
* 消息分类树的叶结点的结点编码列表
*/
private List<String> leafGroupNodes;
/** /**
* 推送终端配置 * 推送终端配置
* B_ENTERPRISE_APP: B-安心筑企业版 * B_ENTERPRISE_APP: B-安心筑企业版
* C_WORKER_APP: C-安心筑工人版 * C_WORKER_APP: C-安心筑工人版
*/ */
private List<PushTerminalEnum> pushTerminals; private List<PushTerminalEnum> pushTerminals;
/**
* 该模板最低支持的APP版本号
*/
private String minAppVersion;
/**
* 消息标题
*/
private String title;
/**
* 消息内容
*/
private String content;
/**
* 消息图标
*/
private String icon;
/**
* 消息卡片信息标签列表可为空
*/
private List<MessageCardContentItemDTO> msgCardContentItems;
/**
* 业务详情展示策略
*/
private BizDetailShowStrategyDTO bizDetailShowStrategy;
/**
* 路由策略列表
*/
private List<MessageRouterButtonDTO> routers;
public static MessageTemplateSaveOrUpdateParam from(MessageTemplateCreateRequest request) { public static MessageTemplateSaveOrUpdateParam from(MessageTemplateCreateRequest request) {
return MessageTemplateSaveOrUpdateParam.builder() return MessageTemplateSaveOrUpdateParam.builder()
@ -93,6 +103,7 @@ public class MessageTemplateSaveOrUpdateParam implements Serializable {
.operatorId(request.getOperatorId()) .operatorId(request.getOperatorId())
.routers(request.getRouters()) .routers(request.getRouters())
.pushTerminals(request.getPushTerminals()) .pushTerminals(request.getPushTerminals())
.bizDetailShowStrategy(request.getDetailStrategy())
.build(); .build();
} }
@ -108,6 +119,7 @@ public class MessageTemplateSaveOrUpdateParam implements Serializable {
.operatorId(request.getOperatorId()) .operatorId(request.getOperatorId())
.routers(request.getRouters()) .routers(request.getRouters())
.pushTerminals(request.getPushTerminals()) .pushTerminals(request.getPushTerminals())
.bizDetailShowStrategy(request.getDetailStrategy())
.build(); .build();
} }

View File

@ -15,15 +15,18 @@ import cn.axzo.msg.center.message.service.MessageGroupNodeService;
import cn.axzo.msg.center.message.service.MessageTemplateGroupService; import cn.axzo.msg.center.message.service.MessageTemplateGroupService;
import cn.axzo.msg.center.message.service.MessageTemplateNewService; import cn.axzo.msg.center.message.service.MessageTemplateNewService;
import cn.axzo.msg.center.message.service.MessageTemplateRouterService; import cn.axzo.msg.center.message.service.MessageTemplateRouterService;
import cn.axzo.msg.center.service.dto.BizDetailShowStrategyDTO;
import cn.axzo.msg.center.service.dto.MessageBaseTemplateDTO; import cn.axzo.msg.center.service.dto.MessageBaseTemplateDTO;
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO; import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO; import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO;
import cn.axzo.msg.center.service.enums.PushTerminalEnum; import cn.axzo.msg.center.service.enums.PushTerminalEnum;
import cn.axzo.msg.center.service.enums.RouterCategoryEnum;
import cn.axzo.msg.center.service.enums.StatusEnum; import cn.axzo.msg.center.service.enums.StatusEnum;
import cn.axzo.msg.center.service.template.request.MessageTemplatePageRequest; import cn.axzo.msg.center.service.template.request.MessageTemplatePageRequest;
import cn.axzo.msg.center.service.template.response.MessageTemplateDetailResponse; import cn.axzo.msg.center.service.template.response.MessageTemplateDetailResponse;
import cn.axzo.msg.center.service.template.response.MessageTemplatePageResponse; import cn.axzo.msg.center.service.template.response.MessageTemplatePageResponse;
import cn.axzo.msg.center.utils.JSONObjectUtil; import cn.axzo.msg.center.utils.JSONObjectUtil;
import cn.axzo.msg.center.utils.MessageRouterUtil;
import cn.axzo.msg.center.utils.UUIDUtil; import cn.axzo.msg.center.utils.UUIDUtil;
import cn.azxo.framework.common.model.Page; import cn.azxo.framework.common.model.Page;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
@ -315,18 +318,27 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
template.setCardContent(JSONObjectUtil.toJSONString(param.getMsgCardContentItems())); template.setCardContent(JSONObjectUtil.toJSONString(param.getMsgCardContentItems()));
template.setIcon(param.getIcon()); template.setIcon(param.getIcon());
template.setPushTerminal(JSONObjectUtil.toJSONString(param.getPushTerminals())); template.setPushTerminal(JSONObjectUtil.toJSONString(param.getPushTerminals()));
if (Objects.nonNull(param.getBizDetailShowStrategy())) {
template.setBizDetailShowStrategy(param.getBizDetailShowStrategy().getShowStrategy());
}
template.setMinAppVersion(param.getMinAppVersion());
template.setCreatorId(param.getOperatorId()); template.setCreatorId(param.getOperatorId());
template.setUpdaterId(param.getOperatorId()); template.setUpdaterId(param.getOperatorId());
return template; return template;
} }
private void saveTemplateRouters(MessageTemplateSaveOrUpdateParam param, String templateCode) { private void saveTemplateRouters(MessageTemplateSaveOrUpdateParam param, String templateCode) {
if (CollectionUtils.isEmpty(param.getRouters())) { List<RawMessageRouterDTO> routers = Lists.newArrayList();
return; if (Objects.nonNull(param.getBizDetailShowStrategy())
&& CollectionUtils.isNotEmpty(param.getBizDetailShowStrategy().getTerminals())) {
routers.add(RawMessageRouterDTO.from(param.getBizDetailShowStrategy(), templateCode));
}
if (CollectionUtils.isNotEmpty(param.getRouters())) {
List<RawMessageRouterDTO> btnRouters = param.getRouters().stream()
.map(e -> RawMessageRouterDTO.from(e, templateCode))
.collect(Collectors.toList());
routers.addAll(btnRouters);
} }
List<RawMessageRouterDTO> routers = param.getRouters().stream()
.map(e -> RawMessageRouterDTO.from(e, templateCode))
.collect(Collectors.toList());
messageTemplateRouterService.batchInsert(routers); messageTemplateRouterService.batchInsert(routers);
} }
@ -344,6 +356,10 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
JSONObjectUtil.toJSONString(param.getMsgCardContentItems())) JSONObjectUtil.toJSONString(param.getMsgCardContentItems()))
.set(StringUtils.isNotBlank(param.getContent()), MessageBaseTemplate::getContent, param.getContent()) .set(StringUtils.isNotBlank(param.getContent()), MessageBaseTemplate::getContent, param.getContent())
.set(StringUtils.isNotBlank(param.getIcon()), MessageBaseTemplate::getIcon, param.getIcon()) .set(StringUtils.isNotBlank(param.getIcon()), MessageBaseTemplate::getIcon, param.getIcon())
.set(StringUtils.isNotBlank(param.getMinAppVersion()), MessageBaseTemplate::getMinAppVersion,
param.getMinAppVersion())
.set(Objects.nonNull(param.getBizDetailShowStrategy()), MessageBaseTemplate::getBizDetailShowStrategy,
param.getBizDetailShowStrategy().getShowStrategy())
.update(); .update();
} }
@ -355,10 +371,20 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
} }
private void updateTemplateRouters(MessageTemplateSaveOrUpdateParam param) { private void updateTemplateRouters(MessageTemplateSaveOrUpdateParam param) {
if (CollectionUtils.isEmpty(param.getRouters())) { List<MessageRouterButtonDTO> routers = Lists.newArrayList();
return; if (Objects.nonNull(param.getBizDetailShowStrategy())
&& CollectionUtils.isNotEmpty(param.getBizDetailShowStrategy().getTerminals())) {
MessageRouterButtonDTO btn = MessageRouterButtonDTO.builder()
.desc(RouterCategoryEnum.DETAIL.getDesc())
.category(RouterCategoryEnum.DETAIL)
.terminals(param.getBizDetailShowStrategy().getTerminals())
.build();
routers.add(btn);
} }
messageTemplateRouterService.updateTemplateRoutes(param.getTemplateCode(), param.getRouters()); if (CollectionUtils.isNotEmpty(param.getRouters())) {
routers.addAll(param.getRouters());
}
messageTemplateRouterService.updateTemplateRoutes(param.getTemplateCode(), routers);
} }
private MessageBaseTemplateDTO convert(MessageBaseTemplate record) { private MessageBaseTemplateDTO convert(MessageBaseTemplate record) {
@ -398,10 +424,11 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
List<String> groupNodeCodes = groupNodePaths.stream() List<String> groupNodeCodes = groupNodePaths.stream()
.map(GroupTreeNodePathDTO::parseLeafNodeCode) .map(GroupTreeNodePathDTO::parseLeafNodeCode)
.collect(Collectors.toList()); .collect(Collectors.toList());
// 转化为页面相关的数据模型 // 按钮路由策略
List<MessageRouterButtonDTO> routerButtons = routers.stream() List<MessageRouterButtonDTO> msgRouterButtons = MessageRouterUtil.selectAndConvertRouterButtons(routers);
.map(RawMessageRouterDTO::toMessageRouterButton) // 业务详情展示策略
.collect(Collectors.toList()); BizDetailShowStrategyDTO bizDetailShowStrategy = MessageRouterUtil.selectAndConvertBizDetailShowStrategy(
record.getBizDetailShowStrategy(), routers).orElse(null);
return MessageTemplateDetailResponse.builder() return MessageTemplateDetailResponse.builder()
.templateName(record.getName()) .templateName(record.getName())
.category(record.getMsgCategory()) .category(record.getMsgCategory())
@ -411,7 +438,9 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
.msgContent(record.getContent()) .msgContent(record.getContent())
.cardContentItems(JSONObjectUtil.parseArray(record.getCardContent(), MessageCardContentItemDTO.class)) .cardContentItems(JSONObjectUtil.parseArray(record.getCardContent(), MessageCardContentItemDTO.class))
.msgIcon(record.getIcon()) .msgIcon(record.getIcon())
.routers(routerButtons) .routers(msgRouterButtons)
.detailStrategy(bizDetailShowStrategy)
.minAppVersion(record.getMinAppVersion())
.createTimestamp(record.getCreateAt().getTime()) .createTimestamp(record.getCreateAt().getTime())
.updateTimestamp(record.getUpdateAt().getTime()) .updateTimestamp(record.getUpdateAt().getTime())
.build(); .build();

View File

@ -2,8 +2,11 @@ package cn.axzo.msg.center.utils;
import cn.axzo.msg.center.common.utils.PlaceholderResolver; import cn.axzo.msg.center.common.utils.PlaceholderResolver;
import cn.axzo.msg.center.message.domain.dto.RawMessageRouterDTO; import cn.axzo.msg.center.message.domain.dto.RawMessageRouterDTO;
import cn.axzo.msg.center.service.dto.BizDetailShowStrategyDTO;
import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO;
import cn.axzo.msg.center.service.dto.MessageRouterDTO; import cn.axzo.msg.center.service.dto.MessageRouterDTO;
import cn.axzo.msg.center.service.dto.MessageRouterTerminalDTO; import cn.axzo.msg.center.service.dto.MessageRouterTerminalDTO;
import cn.axzo.msg.center.service.enums.BizDetailShowStrategyEnum;
import cn.axzo.msg.center.service.enums.ButtonStyleEnum; import cn.axzo.msg.center.service.enums.ButtonStyleEnum;
import cn.axzo.msg.center.service.enums.RouterCategoryEnum; import cn.axzo.msg.center.service.enums.RouterCategoryEnum;
import cn.axzo.msg.center.service.enums.TerminalTypeEnum; import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
@ -17,6 +20,7 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -33,6 +37,51 @@ public final class MessageRouterUtil {
// 非法路由参数的定义 // 非法路由参数的定义
private static final String INVALID_ROUTER_PARAM = "null"; private static final String INVALID_ROUTER_PARAM = "null";
/**
* 获取业务展示详情策略
*
* @param showStrategy 展示策略
* @param routers 路由列表
* @return 业务展示详情策略
*/
public static Optional<BizDetailShowStrategyDTO> selectAndConvertBizDetailShowStrategy(
BizDetailShowStrategyEnum showStrategy, List<RawMessageRouterDTO> routers) {
return routers.stream()
// 过滤掉非页面详情相关的路由
.filter(e -> RouterCategoryEnum.DETAIL.equals(e.getCategory()))
.map(e -> BizDetailShowStrategyDTO.builder()
.terminals(e.getTerminals())
// 兼容老数据默认为跳转业务详情
.showStrategy(Objects.nonNull(showStrategy) ? showStrategy : BizDetailShowStrategyEnum.JUMP_TO)
.build())
.findFirst();
}
/**
* 获取业务按钮路由策略
*
* @param routers 路由列表
* @return 业务展示详情策略
*/
public static List<MessageRouterButtonDTO> selectAndConvertRouterButtons(List<RawMessageRouterDTO> routers) {
return selectRouterButtons(routers).stream()
.map(RawMessageRouterDTO::toMessageRouterButton)
.collect(Collectors.toList());
}
/**
* 获取业务按钮路由策略
*
* @param routers 路由列表
* @return 业务展示详情策略
*/
public static List<RawMessageRouterDTO> selectRouterButtons(List<RawMessageRouterDTO> routers) {
return routers.stream()
// 过滤掉页面详情相关的路由
.filter(e -> !RouterCategoryEnum.DETAIL.equals(e.getCategory()))
.collect(Collectors.toList());
}
/** /**
* 根据指定的终端类型选取合适的路由 * 根据指定的终端类型选取合适的路由
* *
@ -46,27 +95,9 @@ public final class MessageRouterUtil {
} }
return rawMessageRouter.getTerminals().stream() return rawMessageRouter.getTerminals().stream()
.filter(e -> Objects.equals(terminalType, e.getTerminalType())) .filter(e -> Objects.equals(terminalType, e.getTerminalType()))
// 若没有匹配的默认选择第一个然后由前端去进行最终判断 .findFirst()
.findFirst().orElseGet(() -> rawMessageRouter.getTerminals().get(0)); // 优先选择H5没有则选择第一个元素
} .orElseGet(() -> selectH5(rawMessageRouter).orElseGet(() -> rawMessageRouter.getTerminals().get(0)));
/**
* 根据指定的终端类型选取合适的路由
*
* @param rawMessageRouter 原始的模板路由策略
* @param excludeTerminalType 待排除的终端类型
* @return 合适的路由数据
*/
public static List<MessageRouterTerminalDTO> selectWithout(RawMessageRouterDTO rawMessageRouter,
TerminalTypeEnum excludeTerminalType) {
if (RouterCategoryEnum.ACTION.equals(rawMessageRouter.getCategory())) {
// 如果配置路由是API调用这与终端无关
return rawMessageRouter.getTerminals();
}
return rawMessageRouter.getTerminals().stream()
.filter(e -> !Objects.equals(excludeTerminalType, e.getTerminalType()))
// 若没有匹配的默认选择第一个然后由前端去进行最终判断
.collect(Collectors.toList());
} }
/** /**
@ -146,4 +177,10 @@ public final class MessageRouterUtil {
} }
return JSON.parseArray(style, ButtonStyleEnum.class); return JSON.parseArray(style, ButtonStyleEnum.class);
} }
private static Optional<MessageRouterTerminalDTO> selectH5(RawMessageRouterDTO rawMessageRouter) {
return rawMessageRouter.getTerminals().stream()
.filter(e -> Objects.equals(TerminalTypeEnum.WEB_VIEW, e.getTerminalType()))
.findFirst();
}
} }

View File

@ -21,7 +21,7 @@ import java.util.List;
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class MessageDetailShowStrategyDTO implements Serializable { public class BizDetailShowStrategyDTO implements Serializable {
private static final long serialVersionUID = -3496745332397525305L; private static final long serialVersionUID = -3496745332397525305L;

View File

@ -16,11 +16,11 @@ import lombok.Getter;
public enum BizDetailShowStrategyEnum { public enum BizDetailShowStrategyEnum {
/** /**
* 内嵌H5展示 * 内嵌展示
*/ */
INLINE, INLINE,
/** /**
* 跳转至业务详情页展示 * 跳转展示
*/ */
JUMP_TO; JUMP_TO;
} }

View File

@ -1,7 +1,7 @@
package cn.axzo.msg.center.service.template.request; package cn.axzo.msg.center.service.template.request;
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO; import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
import cn.axzo.msg.center.service.dto.MessageDetailShowStrategyDTO; import cn.axzo.msg.center.service.dto.BizDetailShowStrategyDTO;
import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO; import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO;
import cn.axzo.msg.center.service.enums.MessageCategoryEnum; import cn.axzo.msg.center.service.enums.MessageCategoryEnum;
import cn.axzo.msg.center.service.enums.PushTerminalEnum; import cn.axzo.msg.center.service.enums.PushTerminalEnum;
@ -82,7 +82,7 @@ public class MessageTemplateCreateRequest implements Serializable {
/** /**
* 详情展示策略 * 详情展示策略
*/ */
private MessageDetailShowStrategyDTO detailStrategy; private BizDetailShowStrategyDTO detailStrategy;
/** /**
* 路由策略列表 * 路由策略列表
*/ */

View File

@ -1,7 +1,7 @@
package cn.axzo.msg.center.service.template.request; package cn.axzo.msg.center.service.template.request;
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO; import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
import cn.axzo.msg.center.service.dto.MessageDetailShowStrategyDTO; import cn.axzo.msg.center.service.dto.BizDetailShowStrategyDTO;
import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO; import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO;
import cn.axzo.msg.center.service.enums.PushTerminalEnum; import cn.axzo.msg.center.service.enums.PushTerminalEnum;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
@ -73,7 +73,7 @@ public class MessageTemplateUpdateRequest implements Serializable {
/** /**
* 详情展示策略 * 详情展示策略
*/ */
private MessageDetailShowStrategyDTO detailStrategy; private BizDetailShowStrategyDTO detailStrategy;
/** /**
* 路由策略列表 * 路由策略列表
*/ */

View File

@ -1,7 +1,7 @@
package cn.axzo.msg.center.service.template.response; package cn.axzo.msg.center.service.template.response;
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO; import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
import cn.axzo.msg.center.service.dto.MessageDetailShowStrategyDTO; import cn.axzo.msg.center.service.dto.BizDetailShowStrategyDTO;
import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO; import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO;
import cn.axzo.msg.center.service.enums.MessageCategoryEnum; import cn.axzo.msg.center.service.enums.MessageCategoryEnum;
import cn.axzo.msg.center.service.enums.PushTerminalEnum; import cn.axzo.msg.center.service.enums.PushTerminalEnum;
@ -12,7 +12,6 @@ import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
@ -74,7 +73,7 @@ public class MessageTemplateDetailResponse implements Serializable {
/** /**
* 详情展示策略 * 详情展示策略
*/ */
private MessageDetailShowStrategyDTO detailStrategy; private BizDetailShowStrategyDTO detailStrategy;
/** /**
* 路由策略列表 * 路由策略列表
*/ */

View File

@ -1,6 +1,7 @@
package cn.axzo.msg.center.domain.entity; package cn.axzo.msg.center.domain.entity;
import cn.axzo.msg.center.domain.persistence.BaseEntity; import cn.axzo.msg.center.domain.persistence.BaseEntityExt;
import cn.axzo.msg.center.service.enums.BizDetailShowStrategyEnum;
import cn.axzo.msg.center.service.enums.MessageCategoryEnum; import cn.axzo.msg.center.service.enums.MessageCategoryEnum;
import cn.axzo.msg.center.service.enums.StatusEnum; import cn.axzo.msg.center.service.enums.StatusEnum;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
@ -20,7 +21,7 @@ import java.io.Serializable;
@Setter @Setter
@Getter @Getter
@TableName("message_base_template") @TableName("message_base_template")
public class MessageBaseTemplate extends BaseEntity<MessageBaseTemplate> implements Serializable { public class MessageBaseTemplate extends BaseEntityExt<MessageBaseTemplate> implements Serializable {
private static final long serialVersionUID = -880409106378455813L; private static final long serialVersionUID = -880409106378455813L;
@ -66,6 +67,10 @@ public class MessageBaseTemplate extends BaseEntity<MessageBaseTemplate> impleme
* APP最小版本支持可不配 * APP最小版本支持可不配
*/ */
private String minAppVersion; private String minAppVersion;
/**
* 业务详情展示策略
*/
private BizDetailShowStrategyEnum bizDetailShowStrategy;
/** /**
* 创建者自然人id * 创建者自然人id
*/ */