feat(REQ-1465): 消息模板与分类关联模块接口实现
背景: https://jira.axzo.cn/browse/REQ-1465?goToView=1 修改: 1、消息模板与分类关联模块接口实现 影响: 无
This commit is contained in:
parent
458846ca15
commit
e18b59125a
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
|
||||
/**
|
||||
* 通过模板编码查询对应的模板
|
||||
*
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -58,6 +58,10 @@ public class MessageBaseTemplateDTO implements Serializable {
|
||||
* 推送终端配置列表
|
||||
*/
|
||||
private List<PushTerminalEnum> pushTerminals;
|
||||
/**
|
||||
* 消息模板创建时间戳
|
||||
*/
|
||||
private Long createTimestamp;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
@ -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() {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user