Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
yitonglei 2022-07-01 17:29:30 +08:00
commit a5954e286e
1 changed files with 13 additions and 7 deletions

View File

@ -51,22 +51,28 @@ public class CategoryServiceImpl extends CrudServiceImpl<CategoryDao, Category,
}
private List<CategoryDTO> getAllCategory(List<CategoryDTO> topCategory) {
List<CompletableFuture> tasks = new CopyOnWriteArrayList<>();
for (CategoryDTO categoryDto : topCategory) {
if (categoryDao.selectByParentId(categoryDto.getId()).isEmpty()) {
categoryDto.setIsLeaf("Y");
categoryDto.setChildren(new ArrayList());
} else {
ArrayList<CategoryDTO> list = new ArrayList<>();
categoryDao.selectByParentId(categoryDto.getId())
.forEach(item -> {
CategoryDTO dto = new CategoryDTO();
BeanUtils.copyProperties(item, dto);
list.add(dto);
CompletableFuture task =
CompletableFuture.runAsync(() -> {
categoryDao.selectByParentId(categoryDto.getId())
.forEach(item -> {
CategoryDTO dto = new CategoryDTO();
BeanUtils.copyProperties(item, dto);
list.add(dto);
});
categoryDto.setIsLeaf("N");
categoryDto.setChildren(getAllCategory(list));
});
categoryDto.setIsLeaf("N");
categoryDto.setChildren(getAllCategory(list));
tasks.add(task);
}
}
CompletableFuture.allOf(tasks.toArray(new CompletableFuture[tasks.size()])).join();
return topCategory;
}