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.dto.GroupTreeNodeDTO;
|
||||||
import cn.axzo.msg.center.service.group.client.MessageGroupClient;
|
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.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.MessageGroupNodeUpdateRequest;
|
||||||
import cn.axzo.msg.center.service.group.request.MessageGroupQueryRequest;
|
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.axzo.msg.center.service.group.response.MessageGroupTreeNodeResponse;
|
||||||
import cn.azxo.framework.common.model.CommonResponse;
|
import cn.azxo.framework.common.model.CommonResponse;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@ -54,4 +56,13 @@ public class MessageGroupController implements MessageGroupClient {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
return CommonResponse.success(groupTreeNodes);
|
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 对应的分类树的根节点编码列表
|
* @return 对应的分类树的根节点编码列表
|
||||||
*/
|
*/
|
||||||
List<String> listGroupTreeRootNodeCodes(MessageGroupCategoryEnum category, AppTerminalTypeEnum appTerminalType);
|
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());
|
.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) {
|
private MessageGroupNode convert(MessageGroupNodeSaveOrUpdateParam param) {
|
||||||
MessageGroupNode groupNode = new MessageGroupNode();
|
MessageGroupNode groupNode = new MessageGroupNode();
|
||||||
groupNode.setCode(UUIDUtil.uuidString());
|
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.MessageGroupNodeCategoryEnum;
|
||||||
import cn.axzo.msg.center.service.enums.StatusEnum;
|
import cn.axzo.msg.center.service.enums.StatusEnum;
|
||||||
import cn.axzo.msg.center.service.group.response.MessageGroupTreeNodeResponse;
|
import cn.axzo.msg.center.service.group.response.MessageGroupTreeNodeResponse;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -85,4 +88,26 @@ public class GroupTreeNodeDTO implements IBaseTree<GroupTreeNodeDTO, String>, Se
|
|||||||
.children(children)
|
.children(children)
|
||||||
.build();
|
.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.client.fallback.MessageGroupClientFallback;
|
||||||
import cn.axzo.msg.center.service.group.request.MessageGroupNodeAddRequest;
|
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.MessageGroupNodeUpdateRequest;
|
||||||
import cn.axzo.msg.center.service.group.request.MessageGroupQueryRequest;
|
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.axzo.msg.center.service.group.response.MessageGroupTreeNodeResponse;
|
||||||
import cn.azxo.framework.common.model.CommonResponse;
|
import cn.azxo.framework.common.model.CommonResponse;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
@ -61,4 +63,13 @@ public interface MessageGroupClient {
|
|||||||
*/
|
*/
|
||||||
@PostMapping(value = "/message/group/node/list", produces = {MediaType.APPLICATION_JSON_VALUE})
|
@PostMapping(value = "/message/group/node/list", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||||
CommonResponse<List<MessageGroupTreeNodeResponse>> list(@RequestBody MessageGroupQueryRequest request);
|
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.client.MessageGroupClient;
|
||||||
import cn.axzo.msg.center.service.group.request.MessageGroupNodeAddRequest;
|
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.MessageGroupNodeUpdateRequest;
|
||||||
import cn.axzo.msg.center.service.group.request.MessageGroupQueryRequest;
|
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.axzo.msg.center.service.group.response.MessageGroupTreeNodeResponse;
|
||||||
import cn.azxo.framework.common.model.CommonResponse;
|
import cn.azxo.framework.common.model.CommonResponse;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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);
|
log.error("fall back while listing message group node. request:{}", request);
|
||||||
return CommonResponse.error("fall back while listing message group node");
|
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