From b8dc4ccc6ee580b084aa860e64af2d90d1cb5979 Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期三, 29 十一月 2023 10:11:52 +0800
Subject: [PATCH] feat: 1、首页接口对接 2、部门物品分发

---
 consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java |   93 ++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 80 insertions(+), 13 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java
index 0e79236..337af22 100644
--- a/consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java
@@ -2,17 +2,20 @@
 
 import com.consum.base.Constants;
 import com.consum.base.pojo.BaseCategoryParam;
-import com.consum.base.util.IdUtil;
+import com.consum.base.pojo.ProjectTreeResult;
+import com.consum.base.core.utils.IdUtil;
 import com.consum.model.po.BaseCategory;
 import com.iplatform.model.po.S_user_core;
 import com.walker.db.page.GenericPager;
 import com.walker.infrastructure.utils.DateUtils;
 import com.walker.infrastructure.utils.StringUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
 
 /**
  * @Description 鐗╁搧鍒嗙被
@@ -21,6 +24,8 @@
  */
 @Service
 public class BaseCategoryServiceImpl extends BaseServiceImpl {
+
+    private static final String QUERY_TREE_ALL = "select * from base_category where states = 1  order by FATHER_CATEGORY_ID, LEVELS ASC";
 
     /**
      * @Description 鏂板鍒嗙被
@@ -32,7 +37,9 @@
         BeanUtils.copyProperties(param, baseCategory);
         baseCategory.setId(IdUtil.generateId());
         //灞傜骇
-        if (baseCategory.getFatherCategoryId() == 0L) {  //涓�绾у垎绫�
+        if (baseCategory.getFatherCategoryId() == null) {
+            //涓�绾у垎绫�
+            baseCategory.setFatherCategoryId(0L);
             baseCategory.setLevels(Constants.LEVELS_ONE);
         } else {
             //鏍规嵁鐖剁被id鏌ヨ涓婄骇鍒嗙被淇℃伅
@@ -53,11 +60,11 @@
     }
 
     /**
+     * @param categoryName
+     * @param fatherCategoryId
      * @Description 鏍规嵁鍒嗙被鍚嶇О鍜岀埗绫籭d鏌ヨ鍒嗙被
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/23
-     * @param categoryName
-     * @param fatherCategoryId
      */
     public BaseCategory getByCategoryNameAndFatherCategoryId(String categoryName, Long fatherCategoryId) {
         StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 ");
@@ -81,7 +88,11 @@
     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());
+        }
         //鍒嗙被鍚嶇О
         if (!StringUtils.isEmpty(param.getCategoryName())) {
             sql.append(" and category_name like:category_name ");
@@ -94,15 +105,17 @@
         }
         //鐘舵��
         if (param.getStates() != null) {
-            sql.append(" and status =:status ");
-            paramts.put("status", param.getStates());
+            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());
     }
 
     /**
-     * @Description  缂栬緫
+     * @Description 缂栬緫
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/23
      */
@@ -112,6 +125,7 @@
 
     /**
      * 淇敼鐘舵��
+     *
      * @author 鍗㈠簡闃�
      * @date 2023/9/27
      */
@@ -120,12 +134,12 @@
     }
 
     /**
-     * @Description 鏍规嵁鑺傜偣id鍒犻櫎鑺傜偣(閫昏緫鍒犻櫎)
+     * @Description 鏍规嵁id鍒犻櫎鐗╁搧鍒嗙被
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/23
      */
     public int updateById(BaseCategory baseCategory, S_user_core currentUser) {
-        baseCategory.setStates(Constants.CATEGORY_DELETED);
+        baseCategory.setStates(Constants.STATES_DELETED);
         //鍒犻櫎鏃堕棿
         baseCategory.setDTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
         //鍒犻櫎浜篿d鍜屽垹闄や汉濮撳悕
@@ -136,10 +150,63 @@
 
     /**
      * 鏍规嵁鑺傜偣id鏌ヨ鑺傜偣璇︽儏
+     *
      * @author 鍗㈠簡闃�
-     * @date 2023/9/26
+     * @Date 2023/10/23
      */
     public BaseCategory getById(Long id) {
         return this.get(new BaseCategory(id));
     }
+
+    /**
+     * @Description
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/30
+     */
+    public List<BaseCategory> queryForTree() {
+        // 灞曠ず鍏ㄩ儴鑺傜偣
+        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);
+            projectTreeResult.setChildren(getChildren(projectTreeResult, all));
+            return projectTreeResult;
+        }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList());
+        return menus;
+
+    }
+
+    /**
+     * 閫掑綊鏌ユ壘鎵�鏈夎彍鍗曠殑瀛愯彍鍗�
+     */
+    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);
+            //閫氳繃閫掑綊鎵惧埌瀛愬垎绫�
+            projectTreeResult.setChildren(getChildren(projectTreeResult, all));
+            return projectTreeResult;
+        }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList());
+        return children;
+    }
+
+
+    /**
+     * @return
+     * @Description 涓夌骇鍒嗙被鍒楄〃鏌ヨ
+     * @Author 鍗㈠簡闃�
+     * @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());
+    }
 }

--
Gitblit v1.9.1