perf: 零部件查询接口性能优化

This commit is contained in:
2024-02-26 15:41:54 +08:00
parent ce556a34f2
commit f7159831fe
2 changed files with 10 additions and 4 deletions
@@ -38,6 +38,12 @@ public class LawsPartNameController {
@RequestParam(name = "nodeName", required = false, defaultValue = "") @ApiParam("一级节点名称") String nodeName, @RequestParam(name = "nodeName", required = false, defaultValue = "") @ApiParam("一级节点名称") String nodeName,
@RequestParam(name = "pageNo", defaultValue = "1") @ApiParam("页码") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") @ApiParam("页码") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") @ApiParam("页面大小") Integer pageSize) { @RequestParam(name = "pageSize", defaultValue = "10") @ApiParam("页面大小") Integer pageSize) {
if (pageNo == null) {
pageNo = 1;
}
if (pageSize == null) {
pageSize = 5;
}
TreePage<PartName> list = partNameService.queryTreeList(nodeName, pageNo, pageSize); TreePage<PartName> list = partNameService.queryTreeList(nodeName, pageNo, pageSize);
return Result.OK(list); return Result.OK(list);
} }
@@ -48,7 +48,7 @@ public class PartNameServiceImpl extends ServiceImpl<PartNameMapper, PartName>
// 不做筛选的时候查询加速 // 不做筛选的时候查询加速
if (StrUtil.isBlank(nodeName)) { if (StrUtil.isBlank(nodeName)) {
// 构建树结构 // 构建树结构
topLevelNodes = this.buildTree(new HashSet<>(allNodes)); topLevelNodes = this.buildTree(allNodes);
} else { } else {
// 做筛选的时候需要自己组树 // 做筛选的时候需要自己组树
queryWrapper.clear(); queryWrapper.clear();
@@ -85,11 +85,11 @@ public class PartNameServiceImpl extends ServiceImpl<PartNameMapper, PartName>
return result; return result;
} }
private List<PartName> buildTree(Set<PartName> nodesSet) { private List<PartName> buildTree(Collection<PartName> nodesCollection) {
List<PartName> topLevelNodes = new ArrayList<>(); List<PartName> topLevelNodes = new ArrayList<>();
Map<String, PartName> nodeMap = nodesSet.stream() Map<String, PartName> nodeMap = nodesCollection.stream()
.collect(Collectors.toMap(PartName::getCode, Function.identity())); .collect(Collectors.toMap(PartName::getCode, Function.identity()));
for (PartName node : nodesSet) { for (PartName node : nodesCollection) {
PartName parentNode = nodeMap.get(node.getParentCode()); PartName parentNode = nodeMap.get(node.getParentCode());
if (parentNode != null) { if (parentNode != null) {
if (parentNode.getChildPartNameList() == null) { if (parentNode.getChildPartNameList() == null) {