From 24c4699005da96f45562d7057d80c103b8e428a2 Mon Sep 17 00:00:00 2001 From: WangHan <wwh_work@126,com> Date: 星期五, 03 一月 2025 10:32:34 +0800 Subject: [PATCH] 子级分类在用删除 --- consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java | 196 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 136 insertions(+), 60 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 982610e..1af508a 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,5 +1,10 @@ package com.consum.base.service.impl; +import java.util.*; + +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + import com.consum.base.Constants; import com.consum.base.core.utils.IdUtil; import com.consum.base.pojo.BaseCategoryParam; @@ -11,13 +16,6 @@ import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.stream.Collectors; /** * @Description 鐗╁搧鍒嗙被 @@ -27,7 +25,8 @@ @Service public class BaseCategoryServiceImpl extends BaseServiceImpl implements BaseCategoryService { - private static final String QUERY_TREE_ALL = "select * from base_category where states = 1 order by FATHER_CATEGORY_ID, LEVELS ASC"; + private static final String QUERY_TREE_ALL = + "select * from base_category where states = 1 order by FATHER_CATEGORY_ID, LEVELS ASC"; /** * @Description 鏂板鍒嗙被 @@ -38,24 +37,24 @@ BaseCategory baseCategory = new BaseCategory(); BeanUtils.copyProperties(param, baseCategory); baseCategory.setId(IdUtil.generateId()); - //灞傜骇 + // 灞傜骇 if (baseCategory.getFatherCategoryId() == null) { - //涓�绾у垎绫� + // 涓�绾у垎绫� baseCategory.setFatherCategoryId(0L); baseCategory.setLevels(Constants.LEVELS_ONE); } else { - //鏍规嵁鐖剁被id鏌ヨ涓婄骇鍒嗙被淇℃伅 + // 鏍规嵁鐖剁被id鏌ヨ涓婄骇鍒嗙被淇℃伅 BaseCategory category = this.get(new BaseCategory(baseCategory.getFatherCategoryId())); - if (category.getFatherCategoryId() == 0L) { //浜岀骇鍒嗙被 + if (category.getFatherCategoryId() == 0L) { // 浜岀骇鍒嗙被 baseCategory.setLevels(Constants.LEVELS_TWO); - } else { //涓夌骇鍒嗙被 + } else { // 涓夌骇鍒嗙被 baseCategory.setLevels(Constants.LEVELS_THREE); } } - //鍒涘缓浜篿d鍜屽垱寤轰汉濮撳悕 + // 鍒涘缓浜篿d鍜屽垱寤轰汉濮撳悕 baseCategory.setCreateUserId(currentUser.getId()); baseCategory.setCreateUserName(currentUser.getUser_name()); - //鍒涘缓鏃堕棿 + // 鍒涘缓鏃堕棿 baseCategory.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); return this.insert(baseCategory); @@ -72,13 +71,13 @@ StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 "); HashMap<String, Object> paramts = new HashMap<>(); - //鍒嗙被鍚嶇О - sql.append(" and category_name =:category_name "); - paramts.put("category_name", categoryName); - //鐖剁被id - sql.append(" and father_category_id =:father_category_id "); - paramts.put("father_category_id", fatherCategoryId); - + // 鍒嗙被鍚嶇О + sql.append("and category_name =:categoryName "); + paramts.put("categoryName", categoryName); + // 鐖剁被id + sql.append("and father_category_id =:fatherCategoryId "); + paramts.put("fatherCategoryId", fatherCategoryId); + sql.append("and states = 1 "); return this.get(sql.toString(), paramts, new BaseCategory()); } @@ -90,24 +89,24 @@ public GenericPager<BaseCategory> queryBaseCategoryList(BaseCategoryParam param) { StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 "); HashMap<String, Object> paramts = new HashMap<>(); - //鍒嗙被鍚嶇О + // 鍒嗙被鍚嶇О if (param.getFatherCategoryId() != null) { sql.append("and father_category_id =:fatherCategoryId "); paramts.put("fatherCategoryId", param.getFatherCategoryId()); } else { sql.append("and levels =1 "); } - //鍒嗙被鍚嶇О + // 鍒嗙被鍚嶇О if (!StringUtils.isEmpty(param.getCategoryName())) { sql.append(" and category_name like:category_name "); paramts.put("category_name", StringUtils.CHAR_PERCENT + param.getCategoryName() + StringUtils.CHAR_PERCENT); } - //绫诲埆 + // 绫诲埆 if (!StringUtils.isEmpty(param.getClassification())) { sql.append(" and classification =:classification "); paramts.put("classification", param.getClassification()); } - //鐘舵�� + // 鐘舵�� if (param.getStates() != null) { sql.append(" and states =:states "); paramts.put("states", param.getStates()); @@ -116,6 +115,48 @@ } sql.append(" ORDER BY ORDER_NUMBER,CREATE_TIME DESC "); return selectSplit(sql.toString(), paramts, new BaseCategory()); + } + + /** + * 鐗╁搧鍒嗙被鍒楄〃鏌ヨ绮剧‘鏌ヨ + * @param param + * @return + */ + public GenericPager<BaseCategory> queryBaseCategoryList2(BaseCategoryParam param) { + StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 "); + HashMap<String, Object> paramts = new HashMap<>(); + // 鍒嗙被鍚嶇О + if (param.getFatherCategoryId() != null) { + sql.append("and father_category_id =:fatherCategoryId "); + paramts.put("fatherCategoryId", param.getFatherCategoryId()); + } else { + sql.append("and levels =1 "); + } + // 鍒嗙被鍚嶇О + if (!StringUtils.isEmpty(param.getCategoryName())) { + sql.append(" and category_name =:category_name "); + paramts.put("category_name", param.getCategoryName()); + } + // 绫诲埆 + if (!StringUtils.isEmpty(param.getClassification())) { + sql.append(" and classification =:classification "); + paramts.put("classification", param.getClassification()); + } + // 鐘舵�� + if (param.getStates() != null) { + sql.append(" and states =:states "); + paramts.put("states", param.getStates()); + } else { + sql.append(" and states !=3 "); + } + sql.append(" ORDER BY ORDER_NUMBER,CREATE_TIME DESC "); + return selectSplit(sql.toString(), paramts, new BaseCategory()); + } + + @Override + public List<BaseCategory> selectByFatherId(Long fatherId) { + StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE FATHER_CATEGORY_ID = " + fatherId + " and STATES != 3"); + return select(sql.toString(), new HashMap<>(), new BaseCategory()); } /** @@ -144,9 +185,9 @@ */ public int updateById(BaseCategory baseCategory, S_user_core currentUser) { baseCategory.setStates(Constants.STATES_DELETED); - //鍒犻櫎鏃堕棿 + // 鍒犻櫎鏃堕棿 baseCategory.setDTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); - //鍒犻櫎浜篿d鍜屽垹闄や汉濮撳悕 + // 鍒犻櫎浜篿d鍜屽垹闄や汉濮撳悕 baseCategory.setDUserId(currentUser.getId()); baseCategory.setDUserName(currentUser.getUser_name()); return this.update(baseCategory); @@ -169,47 +210,49 @@ */ public List<BaseCategory> queryForTree() { // 灞曠ず鍏ㄩ儴鑺傜偣 - return this.select(QUERY_TREE_ALL, new Object[]{}, new BaseCategory()); + return this.select(QUERY_TREE_ALL, new Object[] {}, new BaseCategory()); } public List<ProjectTreeResult> tree() { 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); + 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<>()); + } + parent.getChildren().add(node); + break; } else { - projectTreeResult.setChildren(getChildren(projectTreeResult, all)); + // 缁х画鏌ユ壘鐖惰妭鐐圭殑瀛愯妭鐐� + List<ProjectTreeResult> children = parent.getChildren(); + if (children != null) { + addToParent(parentId, node, children); + } } - return projectTreeResult; - }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList()); - return children; + } } - /** * @return @@ -218,7 +261,40 @@ * @Date 2023/10/30 */ public List<BaseCategory> queryForLv3Tree() { - StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE states = 1 and levels = 3 order by ORDER_NUMBER,CREATE_TIME desc"); - return this.select(sql.toString(), new Object[]{}, new BaseCategory()); + StringBuilder sql = new StringBuilder( + "SELECT * FROM base_category WHERE states = 1 and levels = 3 order by ORDER_NUMBER,CREATE_TIME desc"); + return this.select(sql.toString(), new Object[] {}, new BaseCategory()); } + + @Override + public BaseCategory getByCategoryByName(String categoryName) { + StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 "); + HashMap<String, Object> paramts = new HashMap<>(); + // 鍒嗙被鍚嶇О + sql.append(" and category_name =:category_name "); + paramts.put("category_name", categoryName); + BaseCategory baseCategory = this.get(sql.toString(), paramts, new BaseCategory()); + return baseCategory; + } + + /** + * 鏌ヨ鍒嗙被鍚岀骇鍒殑鏈�澶ф帓搴忓彿 + * @param id 鍒嗙被 + * @return + */ + @Override + public int selIndexByPid(Long id) { + StringBuilder sql = new StringBuilder("SELECT max(ORDER_NUMBER) maxNum FROM base_category WHERE 1 = 1 "); + HashMap<String, Object> paramts = new HashMap<>(); + // 鍒嗙被鍚嶇О + sql.append(" and FATHER_CATEGORY_ID =:FATHER_CATEGORY_ID "); + paramts.put("FATHER_CATEGORY_ID", id); + Map getMap = this.get(sql.toString(), paramts); + Object obj = getMap.get("maxNum"); + if(obj!=null){ + return new Integer(obj.toString()); + } + return 0; + } + } -- Gitblit v1.9.1