REQ-3201: 修复查询模版的表的问题

This commit is contained in:
yanglin 2025-01-06 15:26:55 +08:00
parent 1696f0db9f
commit 683a26a1eb
2 changed files with 42 additions and 45 deletions

View File

@ -1,14 +1,13 @@
package cn.axzo.msg.center.message.domain.dto;
import cn.axzo.im.center.api.feign.SendPriority;
import cn.axzo.msg.center.domain.entity.MessageBaseTemplate;
import cn.axzo.msg.center.domain.entity.MessageTemplateV3;
import cn.axzo.msg.center.message.domain.dto.MessageTemplateRouterDTO.MessageRouteButtonDTO;
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
import cn.axzo.msg.center.service.enums.BizDetailJumpStrategyEnum;
import cn.axzo.msg.center.service.enums.MessageCategoryEnum;
import cn.axzo.msg.center.service.enums.PushTerminalEnum;
import cn.axzo.msg.center.service.enums.RouterCategoryEnum;
import cn.axzo.msg.center.utils.JSONObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
@ -131,7 +130,7 @@ public class MessageTemplateDTO implements Serializable {
return routeDetail.getJumpStrategy() == BizDetailJumpStrategyEnum.BUSINESS;
}
public static MessageTemplateDTO from(MessageBaseTemplate baseTemplate, MessageTemplateRouterDTO msgTemplateRouter) {
public static MessageTemplateDTO from(MessageTemplateV3 baseTemplate, MessageTemplateRouterDTO msgTemplateRouter) {
// 业务详情展示策略
return MessageTemplateDTO.builder()
.id(baseTemplate.getId())
@ -140,7 +139,6 @@ public class MessageTemplateDTO implements Serializable {
.detailStyleCode(baseTemplate.getDetailStyleCode())
.title(baseTemplate.getTitle())
.content(baseTemplate.getContent())
.msgCardContentItems(JSONObjectUtil.parseArray(baseTemplate.getCardContent(), MessageCardContentItemDTO.class))
.msgCategory(baseTemplate.getMsgCategory())
.icon(baseTemplate.getIcon())
.msgTemplateRouter(msgTemplateRouter)

View File

@ -6,7 +6,9 @@ import cn.axzo.msg.center.common.enums.TableIsDeleteEnum;
import cn.axzo.msg.center.common.redis.RedisUtil;
import cn.axzo.msg.center.common.utils.PageHelperUtil;
import cn.axzo.msg.center.dal.MessageBaseTemplateDao;
import cn.axzo.msg.center.dal.MessageTemplateV3Dao;
import cn.axzo.msg.center.domain.entity.MessageBaseTemplate;
import cn.axzo.msg.center.domain.entity.MessageTemplateV3;
import cn.axzo.msg.center.inside.notices.config.DetailStyleInfo;
import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig;
import cn.axzo.msg.center.message.domain.dto.GroupTreeNodePathDTO;
@ -22,7 +24,6 @@ import cn.axzo.msg.center.message.service.MessageTemplateRouterService;
import cn.axzo.msg.center.message.service.group.GroupTemplateService;
import cn.axzo.msg.center.service.dto.MessageBaseTemplateDTO;
import cn.axzo.msg.center.service.dto.MessageButtonRouteStrategyDTO;
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
import cn.axzo.msg.center.service.enums.MessageCategoryEnum;
import cn.axzo.msg.center.service.enums.PushTerminalEnum;
import cn.axzo.msg.center.service.enums.StatusEnum;
@ -39,7 +40,6 @@ import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.google.common.collect.Lists;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -83,6 +83,7 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
private final MessageTemplateRouterService messageTemplateRouterService;
private final PendingMessageBizConfig pendingBizConfig;
private final GroupTemplateService groupTemplateService;
private final MessageTemplateV3Dao messageTemplateV3Dao;
@Override
@Transactional(rollbackFor = Exception.class)
@ -112,9 +113,9 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
if (StringUtils.isBlank(templateCode)) {
return null;
}
MessageBaseTemplate baseTemplate = messageBaseTemplateDao.lambdaQuery()
.eq(MessageBaseTemplate::getCode, templateCode)
.eq(MessageBaseTemplate::getIsDelete, TableIsDeleteEnum.NORMAL.value)
MessageTemplateV3 baseTemplate = messageTemplateV3Dao.lambdaQuery()
.eq(MessageTemplateV3::getCode, templateCode)
.eq(MessageTemplateV3::getIsDelete, TableIsDeleteEnum.NORMAL.value)
.one();
if (Objects.isNull(baseTemplate)) {
log.info("there is not any template match the templateCode:[{}]", templateCode);
@ -149,10 +150,10 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
log.info("msgTemplateCode is blank.");
return Optional.empty();
}
MessageBaseTemplate msgBaseTemplate = messageBaseTemplateDao.lambdaQuery()
.eq(MessageBaseTemplate::getCode, msgTemplateCode)
.eq(MessageBaseTemplate::getIsDelete, 0)
.eq(MessageBaseTemplate::getStatus, StatusEnum.ENABLE)
MessageTemplateV3 msgBaseTemplate = messageTemplateV3Dao.lambdaQuery()
.eq(MessageTemplateV3::getCode, msgTemplateCode)
.eq(MessageTemplateV3::getIsDelete, 0)
.eq(MessageTemplateV3::getStatus, StatusEnum.ENABLE)
.one();
if (Objects.isNull(msgBaseTemplate)) {
log.info("not find the [{}] template.", msgTemplateCode);
@ -170,9 +171,9 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
log.info("msgTemplateCodes is empty.");
return Collections.emptyList();
}
List<MessageBaseTemplate> msgBaseTemplates = messageBaseTemplateDao.lambdaQuery()
.in(MessageBaseTemplate::getCode, msgTemplateCodes)
.eq(MessageBaseTemplate::getIsDelete, 0)
List<MessageTemplateV3> msgBaseTemplates = messageTemplateV3Dao.lambdaQuery()
.in(MessageTemplateV3::getCode, msgTemplateCodes)
.eq(MessageTemplateV3::getIsDelete, 0)
.list();
if (Objects.isNull(msgBaseTemplates)) {
log.info("not find the [{}] templates.", msgTemplateCodes);
@ -187,13 +188,13 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
@Override
public Page<MessageTemplatePageResponse> page(MessageTemplatePageRequest request) {
IPage<MessageBaseTemplate> result = pageQueryBaseTemplate(request);
IPage<MessageTemplateV3> result = pageQueryBaseTemplate(request);
if (Objects.isNull(result)
|| CollectionUtils.isEmpty(result.getRecords())) {
return PageHelperUtil.emptyPage(request.getPage(), request.getPageSize());
}
List<String> templateCodes = result.getRecords().stream()
.map(MessageBaseTemplate::getCode)
.map(MessageTemplateV3::getCode)
.collect(Collectors.toList());
Map<String, List<String>> groupNodePaths = messageTemplateGroupService
.listMessageTemplateGroupPaths(templateCodes);
@ -207,7 +208,7 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
@Override
public Page<MessageBaseTemplateDTO> pageBaseTemplate(MessageTemplatePageRequest request) {
IPage<MessageBaseTemplate> result = pageQueryBaseTemplate(request);
IPage<MessageTemplateV3> result = pageQueryBaseTemplate(request);
if (Objects.isNull(result)
|| CollectionUtils.isEmpty(result.getRecords())) {
return PageHelperUtil.emptyPage(request.getPage(), request.getPageSize());
@ -226,12 +227,12 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
}
AssertUtil.isTrue(templateCodes.size() <= MAX_NUM_ONCE_QUERY, "the collection of templateCodes is too large");
// 查询模板基础数据
List<MessageBaseTemplate> records = messageBaseTemplateDao.lambdaQuery()
.in(MessageBaseTemplate::getCode, templateCodes)
.eq(MessageBaseTemplate::getIsDelete, TableIsDeleteEnum.NORMAL.value)
List<MessageTemplateV3> records = messageTemplateV3Dao.lambdaQuery()
.in(MessageTemplateV3::getCode, templateCodes)
.eq(MessageTemplateV3::getIsDelete, TableIsDeleteEnum.NORMAL.value)
.list();
// 查询模板的分类结点编码path
templateCodes = records.stream().map(MessageBaseTemplate::getCode).collect(Collectors.toList());
templateCodes = records.stream().map(MessageTemplateV3::getCode).collect(Collectors.toList());
Map<String, List<String>> groupNodePaths = messageTemplateGroupService
.listMessageTemplateGroupPaths(templateCodes);
// 将模板分类结点编码path转化为分类名称path
@ -249,19 +250,19 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
log.info("ids is empty.");
return Collections.emptyList();
}
return messageBaseTemplateDao.lambdaQuery()
.in(MessageBaseTemplate::getId, ids)
.select(MessageBaseTemplate::getCode)
return messageTemplateV3Dao.lambdaQuery()
.in(MessageTemplateV3::getId, ids)
.select(MessageTemplateV3::getCode)
.list().stream()
.map(MessageBaseTemplate::getCode)
.map(MessageTemplateV3::getCode)
.collect(Collectors.toList());
}
@Override
public MessageTemplateDetailResponse querySyncMessageTemplate(String templateCode) {
MessageBaseTemplate baseTemplate = messageBaseTemplateDao.lambdaQuery()
.eq(MessageBaseTemplate::getCode, templateCode)
.eq(MessageBaseTemplate::getIsDelete, TableIsDeleteEnum.NORMAL.value)
MessageTemplateV3 baseTemplate = messageTemplateV3Dao.lambdaQuery()
.eq(MessageTemplateV3::getCode, templateCode)
.eq(MessageTemplateV3::getIsDelete, TableIsDeleteEnum.NORMAL.value)
.one();
if (Objects.isNull(baseTemplate)) {
log.info("there is not any template match the templateCode:[{}]", templateCode);
@ -387,7 +388,7 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
}
}
private IPage<MessageBaseTemplate> pageQueryBaseTemplate(MessageTemplatePageRequest request) {
private IPage<MessageTemplateV3> pageQueryBaseTemplate(MessageTemplatePageRequest request) {
List<String> templateCodes = Lists.newArrayList();
if (StringUtils.isNotBlank(request.getGroupNodeCode())) {
templateCodes = groupTemplateService.collectTemplateCodes(request.getGroupNodeCode());
@ -405,7 +406,7 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
// 取两者的交集
templateCodes = Lists.newArrayList(request.getTemplateCode());
}
IPage<MessageBaseTemplate> pageRequest = request.toPage();
IPage<MessageTemplateV3> pageRequest = request.toPage();
String title = request.getTitle();
if (title != null) {
title = title.trim();
@ -415,36 +416,35 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
content = content.trim();
}
return messageBaseTemplateDao.lambdaQuery()
.like(StringUtils.isNotBlank(title), MessageBaseTemplate::getTitle, title)
.like(StringUtils.isNotBlank(content), MessageBaseTemplate::getContent, content)
return messageTemplateV3Dao.lambdaQuery()
.like(StringUtils.isNotBlank(title), MessageTemplateV3::getTitle, title)
.like(StringUtils.isNotBlank(content), MessageTemplateV3::getContent, content)
.apply(BooleanUtils.isFalse(request.pushSwitchOn), "(json_extract(push_data, '$.switchOn') is null or json_extract(push_data, '$.switchOn') = false)")
.apply(BooleanUtils.isTrue(request.pushSwitchOn), "json_extract(push_data, '$.switchOn') = true")
.like(StringUtils.isNotBlank(request.getTemplateName()),
MessageBaseTemplate::getName, request.getTemplateName())
.in(CollectionUtils.isNotEmpty(templateCodes), MessageBaseTemplate::getCode, templateCodes)
.in(CollectionUtils.isNotEmpty(request.getCategories()), MessageBaseTemplate::getMsgCategory,
MessageTemplateV3::getName, request.getTemplateName())
.in(CollectionUtils.isNotEmpty(templateCodes), MessageTemplateV3::getCode, templateCodes)
.in(CollectionUtils.isNotEmpty(request.getCategories()), MessageTemplateV3::getMsgCategory,
request.getCategories())
.eq(Objects.nonNull(request.getStatus()), MessageBaseTemplate::getStatus, request.getStatus())
.orderByDesc(MessageBaseTemplate::getCreateAt)
.eq(Objects.nonNull(request.getStatus()), MessageTemplateV3::getStatus, request.getStatus())
.orderByDesc(MessageTemplateV3::getCreateAt)
.page(pageRequest);
}
private MessageBaseTemplateDTO convert(MessageBaseTemplate record) {
private MessageBaseTemplateDTO convert(MessageTemplateV3 record) {
return MessageBaseTemplateDTO.builder()
.name(record.getName())
.code(record.getCode())
.msgCategory(record.getMsgCategory())
.title(record.getTitle())
.content(record.getContent())
.cardContentItems(JSONObjectUtil.parseArray(record.getCardContent(), MessageCardContentItemDTO.class))
.icon(record.getIcon())
.pushTerminals(JSON.parseArray(record.getPushTerminal(), PushTerminalEnum.class))
.createTimestamp(record.getCreateAt().getTime())
.build();
}
private MessageTemplatePageResponse convert(MessageBaseTemplate record, Map<String, List<String>> groupNodePaths,
private MessageTemplatePageResponse convert(MessageTemplateV3 record, Map<String, List<String>> groupNodePaths,
Map<String, String> codeNameMap) {
MessageDetailStyle styleType = pendingBizConfig
.findMessageDetailType(record.getDetailStyleCode())
@ -478,7 +478,7 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
return response;
}
private MessageTemplateDetailResponse convert(MessageBaseTemplate record, List<String> groupNodePaths,
private MessageTemplateDetailResponse convert(MessageTemplateV3 record, List<String> groupNodePaths,
MessageTemplateRouterDTO msgTemplateRouter) {
List<String> groupNodeCodes = Lists.newArrayList();
if (CollUtil.isNotEmpty(groupNodePaths)) {
@ -499,7 +499,6 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
.pushTerminals(JSON.parseArray(record.getPushTerminal(), PushTerminalEnum.class))
.msgTitle(record.getTitle())
.msgContent(record.getContent())
.cardContentItems(JSONObjectUtil.parseArray(record.getCardContent(), MessageCardContentItemDTO.class))
.msgIcon(record.getIcon())
.detailStrategy(MessageRouterUtil.fetchBizDetailShowStrategy(msgTemplateRouter).orElse(null))
.routers(MessageRouterUtil.fetchMessageRouterButtonStrategies(msgTemplateRouter))