Merge branch 'feature/REQ-1507' of axzsource.com:universal/infrastructure/backend/msg-center-plat into dev
This commit is contained in:
commit
1f7685fc7b
@ -5,8 +5,10 @@ import cn.axzo.msg.center.message.service.MessageGroupNodeService;
|
||||
import cn.axzo.msg.center.service.dto.GroupTreeNodeDTO;
|
||||
import cn.axzo.msg.center.service.group.client.MessageGroupClient;
|
||||
import cn.axzo.msg.center.service.group.request.MessageGroupNodeAddRequest;
|
||||
import cn.axzo.msg.center.service.group.request.MessageGroupNodeListRequest;
|
||||
import cn.axzo.msg.center.service.group.request.MessageGroupNodeUpdateRequest;
|
||||
import cn.axzo.msg.center.service.group.request.MessageGroupQueryRequest;
|
||||
import cn.axzo.msg.center.service.group.response.MessageGroupNodeBriefResponse;
|
||||
import cn.axzo.msg.center.service.group.response.MessageGroupTreeNodeResponse;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -54,4 +56,13 @@ public class MessageGroupController implements MessageGroupClient {
|
||||
.collect(Collectors.toList());
|
||||
return CommonResponse.success(groupTreeNodes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<List<MessageGroupNodeBriefResponse>> listNodeBriefInfo(MessageGroupNodeListRequest request) {
|
||||
List<MessageGroupNodeBriefResponse> groupTreeNodes = messageGroupNodeService
|
||||
.listLeafNodes(request.getTerminalType(), request.getGroupCategory()).stream()
|
||||
.map(e -> new MessageGroupNodeBriefResponse(e.getNodeName(), e.getNodeCode()))
|
||||
.collect(Collectors.toList());
|
||||
return CommonResponse.success(groupTreeNodes);
|
||||
}
|
||||
}
|
||||
|
||||
@ -91,4 +91,13 @@ public interface MessageGroupNodeService {
|
||||
* @return 对应的分类树的根节点编码列表
|
||||
*/
|
||||
List<String> listGroupTreeRootNodeCodes(MessageGroupCategoryEnum category, AppTerminalTypeEnum appTerminalType);
|
||||
|
||||
/**
|
||||
* 获取对应的应用终端配置的分类结点信息
|
||||
*
|
||||
* @param appTerminalType 应用终端类型
|
||||
* @param category 模板分类结点的类型
|
||||
* @return 分类结点列表
|
||||
*/
|
||||
List<GroupTreeNodeDTO> listLeafNodes(AppTerminalTypeEnum appTerminalType, MessageGroupCategoryEnum category);
|
||||
}
|
||||
|
||||
@ -160,6 +160,19 @@ public class MessageGroupNodeServiceImpl implements MessageGroupNodeService {
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<GroupTreeNodeDTO> listLeafNodes(AppTerminalTypeEnum appTerminalType, MessageGroupCategoryEnum category) {
|
||||
AssertUtil.notNull(category, "category can not be null");
|
||||
List<Long> nodeIds = MessageGroupCategoryEnum.PENDING.equals(category) ?
|
||||
pendingMessageBizConfig.fetchMessageGroupTreeNodeIds(appTerminalType) : Collections.emptyList();
|
||||
return messageGroupTreeNodeCacheService.listAllGroupTree().stream()
|
||||
.filter(e -> category.getMsgGroupNodeCategories().contains(e.getCategory()))
|
||||
.filter(e -> CollectionUtils.isEmpty(nodeIds) || nodeIds.contains(e.getNodeId()))
|
||||
.flatMap(e -> e.getLeafNodes().stream())
|
||||
.filter(GroupTreeNodeDTO::canMountTemplate)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private MessageGroupNode convert(MessageGroupNodeSaveOrUpdateParam param) {
|
||||
MessageGroupNode groupNode = new MessageGroupNode();
|
||||
groupNode.setCode(UUIDUtil.uuidString());
|
||||
|
||||
@ -4,14 +4,17 @@ import cn.axzo.basics.common.model.IBaseTree;
|
||||
import cn.axzo.msg.center.service.enums.MessageGroupNodeCategoryEnum;
|
||||
import cn.axzo.msg.center.service.enums.StatusEnum;
|
||||
import cn.axzo.msg.center.service.group.response.MessageGroupTreeNodeResponse;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
@ -85,4 +88,26 @@ public class GroupTreeNodeDTO implements IBaseTree<GroupTreeNodeDTO, String>, Se
|
||||
.children(children)
|
||||
.build();
|
||||
}
|
||||
|
||||
public List<GroupTreeNodeDTO> getLeafNodes() {
|
||||
if (CollectionUtils.isEmpty(this.nodeChildren)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<GroupTreeNodeDTO> leafNodes = Lists.newArrayList();
|
||||
LinkedList<GroupTreeNodeDTO> stack = new LinkedList<>(this.nodeChildren);
|
||||
while (!stack.isEmpty()) {
|
||||
GroupTreeNodeDTO node = stack.pop();
|
||||
if (CollectionUtils.isEmpty(node.getNodeChildren())) {
|
||||
leafNodes.add(node);
|
||||
} else {
|
||||
stack.addAll(node.getNodeChildren());
|
||||
}
|
||||
}
|
||||
return leafNodes;
|
||||
}
|
||||
|
||||
public boolean canMountTemplate() {
|
||||
return MessageGroupNodeCategoryEnum.GENERAL_MESSAGE_CATEGORY.equals(this.category)
|
||||
|| MessageGroupNodeCategoryEnum.PENDING_MESSAGE_CATEGORY.equals(this.category);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,8 +2,10 @@ package cn.axzo.msg.center.service.group.client;
|
||||
|
||||
import cn.axzo.msg.center.service.group.client.fallback.MessageGroupClientFallback;
|
||||
import cn.axzo.msg.center.service.group.request.MessageGroupNodeAddRequest;
|
||||
import cn.axzo.msg.center.service.group.request.MessageGroupNodeListRequest;
|
||||
import cn.axzo.msg.center.service.group.request.MessageGroupNodeUpdateRequest;
|
||||
import cn.axzo.msg.center.service.group.request.MessageGroupQueryRequest;
|
||||
import cn.axzo.msg.center.service.group.response.MessageGroupNodeBriefResponse;
|
||||
import cn.axzo.msg.center.service.group.response.MessageGroupTreeNodeResponse;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
@ -61,4 +63,13 @@ public interface MessageGroupClient {
|
||||
*/
|
||||
@PostMapping(value = "/message/group/node/list", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
CommonResponse<List<MessageGroupTreeNodeResponse>> list(@RequestBody MessageGroupQueryRequest request);
|
||||
|
||||
/**
|
||||
* 查询通知/待办的分类信息
|
||||
*
|
||||
* @param request 分页查询相关参数
|
||||
*/
|
||||
@PostMapping(value = "/message/group/node/brief/list", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
CommonResponse<List<MessageGroupNodeBriefResponse>> listNodeBriefInfo(@RequestBody
|
||||
MessageGroupNodeListRequest request);
|
||||
}
|
||||
|
||||
@ -2,8 +2,10 @@ package cn.axzo.msg.center.service.group.client.fallback;
|
||||
|
||||
import cn.axzo.msg.center.service.group.client.MessageGroupClient;
|
||||
import cn.axzo.msg.center.service.group.request.MessageGroupNodeAddRequest;
|
||||
import cn.axzo.msg.center.service.group.request.MessageGroupNodeListRequest;
|
||||
import cn.axzo.msg.center.service.group.request.MessageGroupNodeUpdateRequest;
|
||||
import cn.axzo.msg.center.service.group.request.MessageGroupQueryRequest;
|
||||
import cn.axzo.msg.center.service.group.response.MessageGroupNodeBriefResponse;
|
||||
import cn.axzo.msg.center.service.group.response.MessageGroupTreeNodeResponse;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -44,4 +46,10 @@ public class MessageGroupClientFallback implements MessageGroupClient {
|
||||
log.error("fall back while listing message group node. request:{}", request);
|
||||
return CommonResponse.error("fall back while listing message group node");
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<List<MessageGroupNodeBriefResponse>> listNodeBriefInfo(MessageGroupNodeListRequest request) {
|
||||
log.error("fall back while listing message group node brief info. request:{}", request);
|
||||
return CommonResponse.error("fall back while listing message group node brief info.");
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
package cn.axzo.msg.center.service.group.request;
|
||||
|
||||
import cn.axzo.msg.center.service.enums.AppTerminalTypeEnum;
|
||||
import cn.axzo.msg.center.service.enums.MessageGroupCategoryEnum;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author cold_blade
|
||||
* @date 2023/11/13
|
||||
* @version 1.0
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class MessageGroupNodeListRequest implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 6386337063784961842L;
|
||||
|
||||
/**
|
||||
* 应用终端类型
|
||||
*/
|
||||
private AppTerminalTypeEnum terminalType;
|
||||
/**
|
||||
* 消息模板分类的种类
|
||||
*/
|
||||
private MessageGroupCategoryEnum groupCategory;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return JSON.toJSONString(this);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
package cn.axzo.msg.center.service.group.response;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author cold_blade
|
||||
* @date 2023/11/13
|
||||
* @version 1.0
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class MessageGroupNodeBriefResponse implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -4032240752827379030L;
|
||||
|
||||
/**
|
||||
* 分类名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 分类编码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return JSON.toJSONString(this);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user