From 1b2f5270e25d96ad800ec44e063e8fb561bc131c Mon Sep 17 00:00:00 2001 From: johnniang Date: Wed, 1 May 2019 21:53:42 +0800 Subject: [PATCH] Refactor category tree concrete --- .../app/service/impl/CategoryServiceImpl.java | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/main/java/run/halo/app/service/impl/CategoryServiceImpl.java b/src/main/java/run/halo/app/service/impl/CategoryServiceImpl.java index c4466df4a..1f6114cd8 100644 --- a/src/main/java/run/halo/app/service/impl/CategoryServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/CategoryServiceImpl.java @@ -1,5 +1,6 @@ package run.halo.app.service.impl; +import com.google.common.base.Objects; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Sort; import org.springframework.lang.NonNull; @@ -101,23 +102,20 @@ public class CategoryServiceImpl extends AbstractCrudService return; } - // Create children container for removing after - List children = new LinkedList<>(); + // Get children for removing after + List children = categories.stream() + .filter(category -> Objects.equal(parentCategory.getId(), category.getParentId())) + .collect(Collectors.toList()); - categories.forEach(category -> { - if (parentCategory.getId().equals(category.getParentId())) { - // Save child category - children.add(category); - - // Convert to child category vo - CategoryVO child = new CategoryVO().convertFrom(category); - - // Init children if absent - if (parentCategory.getChildren() == null) { - parentCategory.setChildren(new LinkedList<>()); - } - parentCategory.getChildren().add(child); + children.forEach(category -> { + // Convert to child category vo + CategoryVO child = new CategoryVO().convertFrom(category); + // Init children if absent + if (parentCategory.getChildren() == null) { + parentCategory.setChildren(new LinkedList<>()); } + // Add child + parentCategory.getChildren().add(child); }); // Remove all child categories