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

This commit is contained in:
luofu 2023-10-18 09:26:08 +08:00
commit f48dafc1f6
6 changed files with 141 additions and 0 deletions

View File

@ -0,0 +1,61 @@
package cn.axzo.msg.center.message.controller;
import cn.axzo.msg.center.common.utils.PageHelperUtil;
import cn.axzo.msg.center.message.service.MessageTemplateGroupService;
import cn.axzo.msg.center.message.service.MessageTemplateNewService;
import cn.axzo.msg.center.service.dto.MessageBaseTemplateDTO;
import cn.axzo.msg.center.service.group.client.MessageTemplateGroupRelationClient;
import cn.axzo.msg.center.service.group.request.MessageTemplateGroupRelationMoveRequest;
import cn.axzo.msg.center.service.group.request.MessageTemplateGroupRelationPageRequest;
import cn.axzo.msg.center.service.group.request.MessageTemplateGroupRelationRemoveRequest;
import cn.axzo.msg.center.service.group.response.MessageTemplateGroupRelationResponse;
import cn.axzo.msg.center.service.template.request.MessageTemplatePageRequest;
import cn.azxo.framework.common.model.CommonResponse;
import cn.azxo.framework.common.model.Page;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author cold_blade
* @date 2023/10/17
* @version 1.0
*/
@RestController
@RequiredArgsConstructor
public class MessageTemplateGroupRelationController implements MessageTemplateGroupRelationClient {
private final MessageTemplateNewService messageTemplateNewService;
private final MessageTemplateGroupService messageTemplateGroupService;
@Override
public CommonResponse<Page<MessageTemplateGroupRelationResponse>> page(MessageTemplateGroupRelationPageRequest request) {
MessageTemplatePageRequest pageRequest = new MessageTemplatePageRequest();
pageRequest.setPage(request.getPage());
pageRequest.setPageSize(request.getPageSize());
pageRequest.setTemplateName(request.getTemplateName());
pageRequest.setGroupNodeCode(request.getNodeCode());
Page<MessageBaseTemplateDTO> result = messageTemplateNewService.pageBaseTemplate(pageRequest);
return CommonResponse.success(PageHelperUtil.convert(result, this::convert));
}
@Override
public CommonResponse<Void> move(MessageTemplateGroupRelationMoveRequest request) {
return null;
}
@Override
public CommonResponse<List<String>> remove(MessageTemplateGroupRelationRemoveRequest request) {
return null;
}
private MessageTemplateGroupRelationResponse convert(MessageBaseTemplateDTO dto) {
MessageTemplateGroupRelationResponse response = new MessageTemplateGroupRelationResponse();
response.setTitle(dto.getTitle());
response.setTemplateCode(dto.getCode());
response.setTemplateName(dto.getName());
response.setCreateTimestamp(dto.getCreateTimestamp());
return response;
}
}

View File

@ -2,6 +2,7 @@ package cn.axzo.msg.center.message.service;
import cn.axzo.msg.center.message.domain.dto.MessageTemplateDTO;
import cn.axzo.msg.center.message.domain.param.MessageTemplateSaveOrUpdateParam;
import cn.axzo.msg.center.service.dto.MessageBaseTemplateDTO;
import cn.axzo.msg.center.service.enums.StatusEnum;
import cn.axzo.msg.center.service.template.request.MessageTemplatePageRequest;
import cn.axzo.msg.center.service.template.response.MessageTemplateDetailResponse;
@ -76,6 +77,14 @@ public interface MessageTemplateNewService {
*/
Page<MessageTemplatePageResponse> page(MessageTemplatePageRequest request);
/**
* 分页查询模板基础数据
*
* @param request 分页请求参数
* @return 模板数据列表
*/
Page<MessageBaseTemplateDTO> pageBaseTemplate(MessageTemplatePageRequest request);
/**
* 通过模板编码查询对应的模板
*

View File

@ -15,6 +15,7 @@ import cn.axzo.msg.center.message.service.MessageGroupNodeService;
import cn.axzo.msg.center.message.service.MessageTemplateGroupService;
import cn.axzo.msg.center.message.service.MessageTemplateNewService;
import cn.axzo.msg.center.message.service.MessageTemplateRouterService;
import cn.axzo.msg.center.service.dto.MessageBaseTemplateDTO;
import cn.axzo.msg.center.service.dto.MessageRouterButtonDTO;
import cn.axzo.msg.center.service.enums.PushTerminalEnum;
import cn.axzo.msg.center.service.enums.StatusEnum;
@ -204,6 +205,43 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
return Page.toPage(request.getPage(), request.getPageSize(), result.getTotal(), records);
}
@Override
public Page<MessageBaseTemplateDTO> pageBaseTemplate(MessageTemplatePageRequest request) {
List<String> templateCodes = Lists.newArrayList();
if (StringUtils.isNotBlank(request.getGroupNodeCode())) {
templateCodes = messageTemplateGroupService.listMessageTemplateCodes(request.getGroupNodeCode());
if (CollectionUtils.isEmpty(templateCodes)) {
// 入参中的分类没有关联任何模板,直接返回查询结果
return PageHelperUtil.emptyPage(request.getPage(), request.getPageSize());
}
}
if (StringUtils.isNotBlank(request.getTemplateCode())) {
if (CollectionUtils.isNotEmpty(templateCodes)
&& !templateCodes.contains(request.getTemplateCode())) {
// 分页查询的入参中没指定的模板编码与分类映射的模板编码无交集
return PageHelperUtil.emptyPage(request.getPage(), request.getPageSize());
}
// 取两者的交集
templateCodes = Lists.newArrayList(request.getTemplateCode());
}
IPage<MessageBaseTemplate> pageRequest = request.toPage();
IPage<MessageBaseTemplate> result = messageBaseTemplateDao.lambdaQuery()
.like(StringUtils.isNotBlank(request.getTemplateName()),
MessageBaseTemplate::getName, request.getTemplateName())
.in(CollectionUtils.isNotEmpty(templateCodes),
MessageBaseTemplate::getCode, request.getTemplateCode())
.eq(Objects.nonNull(request.getCategory()), MessageBaseTemplate::getMsgCategory, request.getCategory())
.eq(Objects.nonNull(request.getStatus()), MessageBaseTemplate::getStatus, request.getStatus())
.page(pageRequest);
if (CollectionUtils.isEmpty(result.getRecords())) {
return PageHelperUtil.emptyPage(request.getPage(), request.getPageSize());
}
List<MessageBaseTemplateDTO> records = result.getRecords().stream()
.map(this::convert)
.collect(Collectors.toList());
return Page.toPage(request.getPage(), request.getPageSize(), result.getTotal(), records);
}
@Override
public List<MessageTemplatePageResponse> listByCodes(Collection<String> templateCodes) {
if (CollectionUtils.isEmpty(templateCodes)) {
@ -322,6 +360,20 @@ public class MessageTemplateNewServiceImpl implements MessageTemplateNewService
messageTemplateRouterService.updateTemplateRoutes(param.getTemplateCode(), param.getRouters());
}
private MessageBaseTemplateDTO convert(MessageBaseTemplate record) {
return MessageBaseTemplateDTO.builder()
.name(record.getName())
.code(record.getCode())
.msgCategory(record.getMsgCategory())
.title(record.getTitle())
.content(record.getContent())
.cardContent(record.getCardContent())
.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,
Map<String, String> codeNameMap) {
MessageTemplatePageResponse response = new MessageTemplatePageResponse();

View File

@ -58,6 +58,10 @@ public class MessageBaseTemplateDTO implements Serializable {
* 推送终端配置列表
*/
private List<PushTerminalEnum> pushTerminals;
/**
* 消息模板创建时间戳
*/
private Long createTimestamp;
@Override
public String toString() {

View File

@ -24,6 +24,10 @@ public class MessageTemplateGroupRelationPageRequest extends PageRequest impleme
*/
@NotBlank(message = "nodeCode is required")
private String nodeCode;
/**
* 模板名称
*/
private String templateName;
@Override
public String toString() {

View File

@ -5,6 +5,8 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import java.util.Collections;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @author cold_blade
@ -17,4 +19,13 @@ public final class PageHelperUtil {
public static <T> Page<T> emptyPage(Long pageNum, Long pageSize) {
return Page.toPage(pageNum, pageSize, 0L, Collections.emptyList());
}
public static <T, S> Page<T> convert(Page<S> page, Function<S, T> convertFunc) {
Page<T> tgtPage = new Page<>();
tgtPage.setPageNum(page.getPageNum());
tgtPage.setPageSize(page.getPageSize());
tgtPage.setTotalElements(page.getTotalElements());
tgtPage.setList(page.getList().stream().map(convertFunc).collect(Collectors.toList()));
return tgtPage;
}
}