Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
a5954e286e
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue