From 3be9cfcb6b59366b936821966d20a998a6895f9f Mon Sep 17 00:00:00 2001 From: 黎星凯 <13949086503@163.com> Date: 星期二, 30 四月 2024 14:38:13 +0800 Subject: [PATCH] bug41、42修改 --- consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java | 75 ++++++++++++++++++------------------- 1 files changed, 37 insertions(+), 38 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java index f2face6..27616a7 100644 --- a/consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java +++ b/consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java @@ -1,9 +1,8 @@ package com.consum.base.service.impl; -import java.util.Comparator; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.stream.Collectors; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -75,12 +74,12 @@ HashMap<String, Object> paramts = new HashMap<>(); // 鍒嗙被鍚嶇О - sql.append(" and category_name =:category_name "); - paramts.put("category_name", categoryName); + sql.append("and category_name =:categoryName "); + paramts.put("categoryName", categoryName); // 鐖剁被id - sql.append(" and father_category_id =:father_category_id "); - paramts.put("father_category_id", fatherCategoryId); - + sql.append("and father_category_id =:fatherCategoryId "); + paramts.put("fatherCategoryId", fatherCategoryId); + sql.append("and states = 1 "); return this.get(sql.toString(), paramts, new BaseCategory()); } @@ -178,41 +177,41 @@ BaseCategory categoryParam = new BaseCategory(); categoryParam.setStates(1); // 鏌ュ嚭鎵�鏈夊垎绫� - List<BaseCategory> all = select(categoryParam); - // 缁勮鎴愮埗瀛愭爲褰㈢粨鏋� - // 1绾у垎绫� - List<ProjectTreeResult> menus = all.stream().filter(entity -> entity.getLevels() == 1).map(entity -> { - ProjectTreeResult projectTreeResult = new ProjectTreeResult(entity); - if (getChildren(projectTreeResult, all).isEmpty()) { - projectTreeResult.setChildren(null); - } else { - projectTreeResult.setChildren(getChildren(projectTreeResult, all)); - } - return projectTreeResult; - }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))) - .collect(Collectors.toList()); - return menus; + List<BaseCategory> all = this.select(categoryParam); + // 缁勮鎴愮埗瀛愭爲褰㈢粨鏋� + List<ProjectTreeResult> rootNodes = new ArrayList<>(); + for (BaseCategory category : all) { + ProjectTreeResult node = new ProjectTreeResult(category); + Long parentId = category.getFatherCategoryId(); + if (parentId == 0) { + // 娌℃湁鐖惰妭鐐癸紝灏嗗叾浣滀负鏍硅妭鐐� + rootNodes.add(node); + } else { + // 鏈夌埗鑺傜偣锛屽皢鍏舵坊鍔犲埌鐖惰妭鐐圭殑瀛愯妭鐐瑰垪琛ㄤ腑 + addToParent(parentId, node, rootNodes); + } + } + return rootNodes; } - /** - * 閫掑綊鏌ユ壘鎵�鏈夎彍鍗曠殑瀛愯彍鍗� - */ - private List<ProjectTreeResult> getChildren(ProjectTreeResult root, List<BaseCategory> all) { - List<ProjectTreeResult> children = - all.stream().filter(entity -> entity.getFatherCategoryId().equals(root.getId())).map(entity -> { - - ProjectTreeResult projectTreeResult = new ProjectTreeResult(entity); - // 閫氳繃閫掑綊鎵惧埌瀛愬垎绫� - if (getChildren(projectTreeResult, all).isEmpty()) { - projectTreeResult.setChildren(null); - } else { - projectTreeResult.setChildren(getChildren(projectTreeResult, all)); + private void addToParent(Long parentId, ProjectTreeResult node, List<ProjectTreeResult> nodes) { + for (ProjectTreeResult parent : nodes) { + if (parent.getId().equals(parentId)) { + // 鎵惧埌浜嗙埗鑺傜偣锛屽皢鍏舵坊鍔犲埌瀛愯妭鐐瑰垪琛ㄤ腑 + if (parent.getChildren() == null) { + parent.setChildren(new ArrayList<>()); } - return projectTreeResult; - }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))) - .collect(Collectors.toList()); - return children; + parent.getChildren().add(node); + break; + } else { + // 缁х画鏌ユ壘鐖惰妭鐐圭殑瀛愯妭鐐� + List<ProjectTreeResult> children = parent.getChildren(); + if (children != null) { + addToParent(parentId, node, children); + } + } + } } /** -- Gitblit v1.9.1