REQ-2303: 统计分类数据时, 只统计返回分类子节点的数据,前端页面上不关注分类的层级关系

This commit is contained in:
yanglin 2024-04-22 10:15:43 +08:00
parent a61f06795a
commit 016c14c049
2 changed files with 12 additions and 12 deletions

View File

@ -52,10 +52,8 @@ public class GroupTemplateService {
return new RootNodeWrapper(TreeBuilder.build(nodes, true));
}
public List<ValueNode<NodeWrapper>> getTodoGroups(
AppTerminalTypeEnum terminal, boolean leafOnly) {
Set<Long> configuredIds = new HashSet<>(
cfg.fetchMessageGroupTreeNodeIds(terminal));
public List<ValueNode<NodeWrapper>> getTodoGroups(AppTerminalTypeEnum terminal) {
Set<Long> configuredIds = new HashSet<>(cfg.fetchMessageGroupTreeNodeIds(terminal));
ArrayList<ValueNode<NodeWrapper>> configuredNodes = new ArrayList<>();
getGroupRoot().unwrap().walkDown(node -> {
//noinspection unchecked
@ -69,10 +67,12 @@ public class GroupTemplateService {
configuredNodes.add(valueNode);
return true;
});
if (!leafOnly)
return configuredNodes;
return configuredNodes;
}
public List<ValueNode<NodeWrapper>> collectLeafNodes(List<ValueNode<NodeWrapper>> nodes) {
List<ValueNode<NodeWrapper>> leafNodes = new ArrayList<>();
for (ValueNode<NodeWrapper> configuredNode : configuredNodes) {
for (ValueNode<NodeWrapper> configuredNode : nodes) {
configuredNode.walkDown(node -> {
//noinspection unchecked
ValueNode<NodeWrapper> valueNode = node.tryCast(ValueNode.class);

View File

@ -217,8 +217,7 @@ public class TodoRangeQueryService {
if (!request.determineGroupNodeCodes().isEmpty())
return groupTemplateService.collectTemplateCodes(request.determineGroupNodeCodes());
// 获取可见的模版时, 不用定位到叶子节点
List<ValueNode<NodeWrapper>> nodes = groupTemplateService
.getTodoGroups(request.getAppTerminalType(), false);
List<ValueNode<NodeWrapper>> nodes = groupTemplateService.getTodoGroups(request.getAppTerminalType());
return groupTemplateService.collectTemplateCodes(nodes);
}
@ -277,10 +276,11 @@ public class TodoRangeQueryService {
}
public List<ValueNode<NodeWrapper>> determineStatNodes(MessageGroupNodeStatisticParam request) {
if (CollectionUtils.isNotEmpty(request.getGroupNodeCodes()))
return groupTemplateService.getGroupRoot().getNodes(request.getGroupNodeCodes());
List<ValueNode<NodeWrapper>> nodes = CollectionUtils.isNotEmpty(request.getGroupNodeCodes())
? groupTemplateService.getGroupRoot().getNodes(request.getGroupNodeCodes())
: groupTemplateService.getTodoGroups(request.getTerminalType());
// 只返回给前端叶子节点的信息, 前端不需要层级信息
return groupTemplateService.getTodoGroups(request.getTerminalType(), true);
return groupTemplateService.collectLeafNodes(nodes);
}
// helper