This is an automated email from the ASF dual-hosted git repository.
caishunfeng pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 666201dbcc use Map to avoid traversing List repeatedly (#16365)
666201dbcc is described below
commit 666201dbccabb1e5015ac7d9d53b940803f01a9a
Author: Kinson <[email protected]>
AuthorDate: Mon Jul 29 14:39:49 2024 +0800
use Map to avoid traversing List repeatedly (#16365)
Co-authored-by: 石巧生(11032293) <[email protected]>
Co-authored-by: xiangzihao <[email protected]>
---
.../api/service/impl/ProjectServiceImpl.java | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java
index 3c623b7029..22093ccd7a 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java
@@ -396,16 +396,16 @@ public class ProjectServiceImpl extends BaseServiceImpl
implements ProjectServic
}
List<User> userList = userMapper.selectByIds(projectList.stream()
.map(Project::getUserId).distinct().collect(Collectors.toList()));
+ Map<Integer, String> userMap =
userList.stream().collect(Collectors.toMap(User::getId, User::getUserName));
List<ProjectProcessDefinitionCount> projectProcessDefinitionCountList =
processDefinitionMapper.queryProjectProcessDefinitionCountByProjectCodes(
projectList.stream().map(Project::getCode).distinct().collect(Collectors.toList()));
+ Map<Long, Integer> projectProcessDefinitionCountMap =
projectProcessDefinitionCountList.stream()
+
.collect(Collectors.toMap(ProjectProcessDefinitionCount::getProjectCode,
+ ProjectProcessDefinitionCount::getCount));
for (Project project : projectList) {
- project.setUserName(userList.stream().filter(user ->
user.getId().equals(project.getUserId()))
- .findFirst().map(User::getUserName).orElse(null));
- project.setDefCount(projectProcessDefinitionCountList.stream()
- .filter(projectProcessDefinitionCount ->
projectProcessDefinitionCount.getProjectCode()
- .equals(project.getCode()))
-
.findFirst().map(ProjectProcessDefinitionCount::getCount).orElse(0));
+ project.setUserName(userMap.get(project.getUserId()));
+
project.setDefCount(projectProcessDefinitionCountMap.getOrDefault(project.getCode(),
0));
}
pageInfo.setTotal((int) projectIPage.getTotal());
pageInfo.setTotalList(projectList);