From 0c8cd957630d43aa71183d34ecb1faf60689f8a4 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 18 十二月 2024 11:30:15 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/mapper/data/DirMapper.java         |    8 ++++++++
 src/main/resources/mapper/data/DirMapper.xml                   |    9 +++++++++
 src/main/java/com/lf/server/controller/data/DirController.java |   32 ++++++++++++++++++++++++++++++++
 src/main/java/com/lf/server/service/data/DirService.java       |    7 +++++++
 4 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/lf/server/controller/data/DirController.java b/src/main/java/com/lf/server/controller/data/DirController.java
index 550d4df..7444279 100644
--- a/src/main/java/com/lf/server/controller/data/DirController.java
+++ b/src/main/java/com/lf/server/controller/data/DirController.java
@@ -209,4 +209,36 @@
             log.error(ex.getMessage(), ex);
         }
     }
+
+    @SysLog()
+    @ApiOperation(value = "鏌ヨ椤圭洰")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "name", value = "鍚嶇О", dataType = "String", paramType = "query", example = "瑗�")
+    })
+    @GetMapping(value = "/selectProject")
+    public ResponseMsg<List<DirEntity>> selectProject(String name) {
+        try {
+            List<DirEntity> list = dirService.selectProject(name);
+
+            return success(list);
+        } catch (Exception ex) {
+            return fail(ex, null);
+        }
+    }
+
+    @SysLog()
+    @ApiOperation(value = "閫掑綊鏌ヨ")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pid", value = "鐖禝D", dataType = "Integer", paramType = "query", example = "1")
+    })
+    @GetMapping(value = "/selectByPid")
+    public ResponseMsg<List<DirEntity>> selectByPid(int pid) {
+        try {
+            List<DirEntity> list = dirService.selectByPid(pid);
+
+            return success(list);
+        } catch (Exception ex) {
+            return fail(ex, null);
+        }
+    }
 }
diff --git a/src/main/java/com/lf/server/mapper/data/DirMapper.java b/src/main/java/com/lf/server/mapper/data/DirMapper.java
index edd4793..9766c60 100644
--- a/src/main/java/com/lf/server/mapper/data/DirMapper.java
+++ b/src/main/java/com/lf/server/mapper/data/DirMapper.java
@@ -110,6 +110,14 @@
     public List<DirEntity> selectRecursiveById(Integer id);
 
     /**
+     * 閫掑綊鏌ヨ
+     *
+     * @param pid
+     * @return
+     */
+    public List<DirEntity> selectByPid(int pid);
+
+    /**
      * 鏌ヨ椤圭洰鐩綍鏍�
      *
      * @return
diff --git a/src/main/java/com/lf/server/service/data/DirService.java b/src/main/java/com/lf/server/service/data/DirService.java
index d9fd76b..faac358 100644
--- a/src/main/java/com/lf/server/service/data/DirService.java
+++ b/src/main/java/com/lf/server/service/data/DirService.java
@@ -117,6 +117,13 @@
     }
 
     @Override
+    public List<DirEntity> selectByPid(int pid) {
+        List<DirEntity> list = dirMapper.selectByPid(pid);
+
+        return null == list ? new ArrayList<>() : list;
+    }
+
+    @Override
     public List<DirEntity> selectDirsForPrj() {
         String key = RedisCacheKey.dataDirKey("selectDirsForPrj");
         List<DirEntity> list = redisService.getListByKey(key);
diff --git a/src/main/resources/mapper/data/DirMapper.xml b/src/main/resources/mapper/data/DirMapper.xml
index b0affef..8a4106c 100644
--- a/src/main/resources/mapper/data/DirMapper.xml
+++ b/src/main/resources/mapper/data/DirMapper.xml
@@ -49,6 +49,15 @@
         order by code;
     </select>
 
+    <select id="selectByPid" resultType="com.lf.server.entity.data.DirEntity">
+        with recursive rs as(
+            select a.* from lf.sys_dir a where id = #{pid}
+            union
+            select b.* from lf.sys_dir b, rs c where b.pid = c.id)
+        select * from rs
+        order by code;
+    </select>
+
     <select id="selectDirsForPrj" resultType="com.lf.server.entity.data.DirEntity">
         select a.* from lf.sys_dir a where code not like '00%' order by code;
     </select>

--
Gitblit v1.9.3