|
@@ -23,6 +23,8 @@ import org.dromara.system.service.ISysFoodCategoryService;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Collection;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 食材分类Service业务层处理
|
|
@@ -43,12 +45,25 @@ public class SysFoodCategoryServiceImpl implements ISysFoodCategoryService {
|
|
|
if (StrUtil.isNotBlank(bo.getName())) {
|
|
|
foodCategoryList = baseMapper.selectList(Wrappers.lambdaQuery(SysFoodCategory.class)
|
|
|
.like(SysFoodCategory::getName, bo.getName()));
|
|
|
- List<SysFoodCategory> parentList = CollUtil.newArrayList();
|
|
|
- for (int i = foodCategoryList.size() - 1; i >= 0; i--) {
|
|
|
- SysFoodCategory category = foodCategoryList.get(i);
|
|
|
-// if () {
|
|
|
-//
|
|
|
-// }
|
|
|
+ if (CollUtil.isEmpty(foodCategoryList)) {
|
|
|
+ return TableDataInfo.build();
|
|
|
+ }
|
|
|
+
|
|
|
+ Set<Long> parentIdSet = foodCategoryList.stream()
|
|
|
+ .filter(v -> ObjUtil.isNotNull(v.getParentId()) && v.getParentId() > 0)
|
|
|
+ .map(SysFoodCategory::getParentId).collect(Collectors.toSet());
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(parentIdSet)) {
|
|
|
+ Map<Long, SysFoodCategory> parentMap = baseMapper
|
|
|
+ .selectList(Wrappers.lambdaQuery(SysFoodCategory.class)
|
|
|
+ .in(SysFoodCategory::getFoodCategoryId, parentIdSet))
|
|
|
+ .stream().collect(Collectors.toMap(k1 -> k1.getFoodCategoryId(), k2 -> k2, (k1, k2) -> k1));
|
|
|
+
|
|
|
+ foodCategoryList.forEach(v -> {
|
|
|
+ parentMap.remove(v.getFoodCategoryId());
|
|
|
+ });
|
|
|
+ foodCategoryList.addAll(parentMap.values());
|
|
|
+ foodCategoryList.sort((o1, o2) -> o1.getParentId().compareTo(o2.getParentId()));
|
|
|
}
|
|
|
} else {
|
|
|
foodCategoryList = baseMapper.selectList();
|