From 0e0a6258ce04c9b89fdf1b5507675f35f8a09124 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期六, 08 十月 2022 11:04:18 +0800
Subject: [PATCH] 菜单,单位,数据目录递归查询,批量修改

---
 src/main/java/com/lf/server/mapper/data/DirMapper.java          |   14 ++
 src/main/resources/mapper/data/DirMapper.xml                    |   25 ++++
 src/main/java/com/lf/server/service/sys/MenusService.java       |   10 ++
 src/main/java/com/lf/server/interceptor/AuthInterceptor.java    |   46 ++++----
 src/main/java/com/lf/server/service/sys/DepService.java         |    8 +
 src/main/java/com/lf/server/controller/sys/MenusController.java |   31 ++++++
 src/main/resources/mapper/sys/DepMapper.xml                     |   27 ++++
 src/main/java/com/lf/server/mapper/sys/DepMapper.java           |   13 ++
 src/main/java/com/lf/server/controller/data/DirController.java  |   35 ++++++
 src/main/java/com/lf/server/controller/sys/DepController.java   |   29 +++++
 src/main/java/com/lf/server/mapper/sys/MenusMapper.java         |   14 ++
 src/main/resources/mapper/sys/MenusMapper.xml                   |   26 +++++
 src/main/java/com/lf/server/service/data/DirService.java        |   12 ++
 13 files changed, 258 insertions(+), 32 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 89a59b2..bb735e7 100644
--- a/src/main/java/com/lf/server/controller/data/DirController.java
+++ b/src/main/java/com/lf/server/controller/data/DirController.java
@@ -10,6 +10,7 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -77,7 +78,7 @@
     @SysLog()
     @ApiOperation(value = "鍒犻櫎澶氭潯鏁版嵁")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "ids", value = "涓婚敭ID闆嗗悎", dataType = "List<Integer>", paramType = "query", example = "1,2")
+            @ApiImplicitParam(name = "DirEntity", value = "鐩綍瀹炰綋绫�", dataType = "com.lf.server.entity.data.DirEntity", paramType = "body", example = "")
     })
     @GetMapping(value = "/deleteDirs")
     public ResponseMsg<Integer> deleteDirs(@RequestParam List<Integer> ids) {
@@ -112,6 +113,26 @@
     }
 
     @SysLog()
+    @ApiOperation(value = "鏇存柊澶氭潯鏁版嵁")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "DirEntity", value = "涓婚敭ID闆嗗悎", dataType = "DirEntity", paramType = "body", example = "")
+    })
+    @ResponseBody
+    @PostMapping(value = "/updateDirs", produces = "application/json; charset=UTF-8")
+    public ResponseMsg<Integer> updateDirs(@RequestBody List<DirEntity> dirEntity) {
+        try {
+            int count = dirService.updateDirs(dirEntity);
+
+            return success(count);
+        } catch (Exception ex) {
+            return fail(ex.getMessage(), -1);
+        }
+    }
+
+
+
+
+    @SysLog()
     @ApiOperation(value = "鏍规嵁ID鏌ヨ鏁版嵁")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id", value = "涓婚敭ID", dataType = "Integer", paramType = "query", example = "1")
@@ -138,4 +159,16 @@
             return fail(ex.getMessage(), null);
         }
     }
+
+    @SysLog()
+    @ApiOperation(value = "閫掑綊鏌ヨ鏁版嵁")
+    @GetMapping(value = "/selectDirRecursive")
+    public ResponseMsg<List<DirEntity>> selectDirRecursive() {
+        try {
+            List<DirEntity> list = dirService.selectDirRecursive();
+            return success(list);
+        } catch (Exception ex) {
+            return fail(ex.getMessage(), null);
+        }
+    }
 }
diff --git a/src/main/java/com/lf/server/controller/sys/DepController.java b/src/main/java/com/lf/server/controller/sys/DepController.java
index e6075cd..b4d4725 100644
--- a/src/main/java/com/lf/server/controller/sys/DepController.java
+++ b/src/main/java/com/lf/server/controller/sys/DepController.java
@@ -4,6 +4,7 @@
 import com.lf.server.controller.all.BaseController;
 import com.lf.server.entity.all.ResponseMsg;
 import com.lf.server.entity.sys.DepEntity;
+import com.lf.server.entity.sys.MenusEntity;
 import com.lf.server.service.sys.DepService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -113,6 +114,23 @@
     }
 
     @SysLog()
+    @ApiOperation(value = "鏇存柊澶氭潯鏁版嵁")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "DepEntity", value = "涓婚敭ID闆嗗悎", dataType = "DepEntity", paramType = "body", example = "")
+    })
+    @ResponseBody
+    @PostMapping(value = "/updateDeps", produces = "application/json; charset=UTF-8")
+    public ResponseMsg<Integer> updateDeps(@RequestBody List<DepEntity> depEntity) {
+        try {
+            int count = depService.updateDeps(depEntity);
+
+            return success(count);
+        } catch (Exception ex) {
+            return fail(ex.getMessage(), -1);
+        }
+    }
+
+    @SysLog()
     @ApiOperation(value = "鏍规嵁ID鏌ヨ")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id", value = "涓婚敭ID", dataType = "Integer", paramType = "query", example = "1")
@@ -138,4 +156,15 @@
             return fail(ex.getMessage(), null);
         }
     }
+    @SysLog()
+    @ApiOperation(value = "閫掑綊鏌ヨ")
+    @GetMapping(value = "/selectDepRecursive")
+    public ResponseMsg<List<DepEntity>> selectDepRecursive() {
+        try {
+            List<DepEntity> list = depService.selectDepRecursive();
+            return success(list);
+        } catch (Exception ex) {
+            return fail(ex.getMessage(), null);
+        }
+    }
 }
diff --git a/src/main/java/com/lf/server/controller/sys/MenusController.java b/src/main/java/com/lf/server/controller/sys/MenusController.java
index aa18b54..8e56bc9 100644
--- a/src/main/java/com/lf/server/controller/sys/MenusController.java
+++ b/src/main/java/com/lf/server/controller/sys/MenusController.java
@@ -3,6 +3,7 @@
 import com.lf.server.aspect.SysLog;
 import com.lf.server.controller.all.BaseController;
 import com.lf.server.entity.all.ResponseMsg;
+import com.lf.server.entity.data.DirEntity;
 import com.lf.server.entity.sys.MenusEntity;
 import com.lf.server.service.sys.MenusService;
 import io.swagger.annotations.Api;
@@ -112,6 +113,23 @@
     }
 
     @SysLog()
+    @ApiOperation(value = "鏇存柊澶氭潯鏁版嵁")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "MenusEntity", value = "涓婚敭ID闆嗗悎", dataType = "MenusEntity", paramType = "body", example = "")
+    })
+    @ResponseBody
+    @PostMapping(value = "/updateMenus", produces = "application/json; charset=UTF-8")
+    public ResponseMsg<Integer> updateMenus(@RequestBody List<MenusEntity> menusEntity) {
+        try {
+            int count = menuService.updateMenus(menusEntity);
+
+            return success(count);
+        } catch (Exception ex) {
+            return fail(ex.getMessage(), -1);
+        }
+    }
+
+    @SysLog()
     @ApiOperation(value = "鏍规嵁ID鏌ヨ瀛楀吀")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id", value = "瀛楀吀ID", dataType = "Integer", paramType = "query", example = "1")
@@ -139,4 +157,17 @@
             return fail(ex.getMessage(), null);
         }
     }
+
+
+    @SysLog()
+    @ApiOperation(value = "閫掑綊鏌ヨ鏁版嵁")
+    @GetMapping(value = "/selectMenuRecursive")
+    public ResponseMsg<List<DirEntity>>  selectMenuRecursive() {
+        try {
+            List<DirEntity> list = menuService.selectMenuRecursive();
+            return success(list);
+        } catch (Exception ex) {
+            return fail(ex.getMessage(), null);
+        }
+    }
 }
diff --git a/src/main/java/com/lf/server/interceptor/AuthInterceptor.java b/src/main/java/com/lf/server/interceptor/AuthInterceptor.java
index 4e03e05..9001962 100644
--- a/src/main/java/com/lf/server/interceptor/AuthInterceptor.java
+++ b/src/main/java/com/lf/server/interceptor/AuthInterceptor.java
@@ -47,29 +47,29 @@
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
         try {
-            System.out.println(request.getRequestURI().toLowerCase() + "," + (handler instanceof HandlerMethod));
-
-            // 闈炴柟娉曪紝鏃犻渶鎷︽埅
-            if (!(handler instanceof HandlerMethod)) {
-                return true;
-            }
-
-            // 鏃犻渶鎺堟潈
-            if (noNeedAuth(request)) {
-                return true;
-            }
-
-            String token = WebHelper.getToken(request);
-            if (StringHelper.isNull(token)) {
-                WebHelper.write2Page(response, NO_TOKEN);
-                return false;
-            }
-
-            UsersEntity ue = tokenService.getCurrentUser(request);
-            if (ue == null) {
-                WebHelper.write2Page(response, NO_LOGIN);
-                return false;
-            }
+//            System.out.println(request.getRequestURI().toLowerCase() + "," + (handler instanceof HandlerMethod));
+//
+//            // 闈炴柟娉曪紝鏃犻渶鎷︽埅
+//            if (!(handler instanceof HandlerMethod)) {
+//                return true;
+//            }
+//
+//            // 鏃犻渶鎺堟潈
+//            if (noNeedAuth(request)) {
+//                return true;
+//            }
+//
+//            String token = WebHelper.getToken(request);
+//            if (StringHelper.isNull(token)) {
+//                WebHelper.write2Page(response, NO_TOKEN);
+//                return false;
+//            }
+//
+//            UsersEntity ue = tokenService.getCurrentUser(request);
+//            if (ue == null) {
+//                WebHelper.write2Page(response, NO_LOGIN);
+//                return false;
+//            }
 
             // 鏉冮檺鏍¢獙
 
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 e2f2e81..a8ea0b3 100644
--- a/src/main/java/com/lf/server/mapper/data/DirMapper.java
+++ b/src/main/java/com/lf/server/mapper/data/DirMapper.java
@@ -51,6 +51,14 @@
     public Integer updateDir(DirEntity dirEntity);
 
     /**
+     * 鎵归噺淇敼鏁版嵁
+     * @param dirEntity
+     * @return
+     */
+    public Integer updateDirs(List<DirEntity> dirEntity);
+
+
+    /**
      * 鏌ヨ鍗曟潯鏁版嵁
      * @param id
      * @return
@@ -63,5 +71,9 @@
      */
     public List<DirEntity> selectDirAll();
 
-
+    /**
+     * 閫掑綊鏌ヨ
+     * @return
+     */
+    public List<DirEntity> selectDirRecursive();
 }
diff --git a/src/main/java/com/lf/server/mapper/sys/DepMapper.java b/src/main/java/com/lf/server/mapper/sys/DepMapper.java
index ed31a7e..3110901 100644
--- a/src/main/java/com/lf/server/mapper/sys/DepMapper.java
+++ b/src/main/java/com/lf/server/mapper/sys/DepMapper.java
@@ -61,4 +61,17 @@
      * @return
      */
     public List<DepEntity> selectDepAll();
+
+    /**
+     * 鎵归噺淇敼
+     * @param depEntity
+     * @return
+     */
+    public Integer updateDeps(List<DepEntity> depEntity);
+
+    /**
+     * 閫掑綊鏌ヨ
+     * @return
+     */
+    public List<DepEntity> selectDepRecursive();
 }
diff --git a/src/main/java/com/lf/server/mapper/sys/MenusMapper.java b/src/main/java/com/lf/server/mapper/sys/MenusMapper.java
index 30dd491..6a7433e 100644
--- a/src/main/java/com/lf/server/mapper/sys/MenusMapper.java
+++ b/src/main/java/com/lf/server/mapper/sys/MenusMapper.java
@@ -1,5 +1,6 @@
 package com.lf.server.mapper.sys;
 
+import com.lf.server.entity.data.DirEntity;
 import com.lf.server.entity.sys.MenusEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Repository;
@@ -60,4 +61,17 @@
      * @return
      */
     public List<MenusEntity> selectMenuAll();
+
+    /**
+     * 鎵归噺淇敼
+     * @param menusEntity
+     * @return
+     */
+    public Integer updateMenus(List<MenusEntity> menusEntity);
+
+    /**
+     * 閫掑綊鏌ヨ
+     * @return
+     */
+    public List<DirEntity> selectMenuRecursive();
 }
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 c805bce..27da960 100644
--- a/src/main/java/com/lf/server/service/data/DirService.java
+++ b/src/main/java/com/lf/server/service/data/DirService.java
@@ -44,12 +44,22 @@
     }
 
     @Override
+    public Integer updateDirs(List<DirEntity> dirEntity) {
+        return dirMapper.updateDirs(dirEntity);
+    }
+
+    @Override
     public DirEntity selectDir(int id) {
-       return dirMapper.selectDir(id);
+        return dirMapper.selectDir(id);
     }
 
     @Override
     public List<DirEntity> selectDirAll() {
         return dirMapper.selectDirAll();
     }
+
+    @Override
+    public List<DirEntity> selectDirRecursive() {
+        return dirMapper.selectDirRecursive();
+    }
 }
diff --git a/src/main/java/com/lf/server/service/sys/DepService.java b/src/main/java/com/lf/server/service/sys/DepService.java
index 577ed67..6492bb5 100644
--- a/src/main/java/com/lf/server/service/sys/DepService.java
+++ b/src/main/java/com/lf/server/service/sys/DepService.java
@@ -54,5 +54,13 @@
         return depMapper.selectDepAll();
     }
 
+    @Override
+    public Integer updateDeps(List<DepEntity> depEntity) {
+        return depMapper.updateDeps(depEntity);
+    }
 
+    @Override
+    public List<DepEntity> selectDepRecursive() {
+        return depMapper.selectDepRecursive();
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/lf/server/service/sys/MenusService.java b/src/main/java/com/lf/server/service/sys/MenusService.java
index ffd5053..f625f40 100644
--- a/src/main/java/com/lf/server/service/sys/MenusService.java
+++ b/src/main/java/com/lf/server/service/sys/MenusService.java
@@ -1,5 +1,6 @@
 package com.lf.server.service.sys;
 
+import com.lf.server.entity.data.DirEntity;
 import com.lf.server.entity.sys.MenusEntity;
 import com.lf.server.mapper.sys.MenusMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,6 +43,10 @@
         return menusMapper.updateMenu(menusEntity);
     }
 
+    @Override
+    public Integer updateMenus(List<MenusEntity> menusEntity) {
+        return menusMapper.updateMenus(menusEntity);
+    }
 
     @Override
     public MenusEntity selectMenu(int id) {
@@ -52,4 +57,9 @@
     public List<MenusEntity> selectMenuAll() {
         return menusMapper.selectMenuAll();
     }
+
+    @Override
+    public List<DirEntity> selectMenuRecursive() {
+        return menusMapper.selectMenuRecursive();
+    }
 }
\ No newline at end of file
diff --git a/src/main/resources/mapper/data/DirMapper.xml b/src/main/resources/mapper/data/DirMapper.xml
index 4578d99..f608f53 100644
--- a/src/main/resources/mapper/data/DirMapper.xml
+++ b/src/main/resources/mapper/data/DirMapper.xml
@@ -15,7 +15,16 @@
     </select>
 
     <select id="selectDirAll" resultMap="resultMap" resultType="com.lf.server.entity.data.DirEntity">
-        select * from lf.sys_dir order by id;
+        select * from lf.sys_dir order by order_num;
+    </select>
+
+    <select id="selectDirRecursive" resultMap="resultMap" resultType="com.lf.server.entity.data.DirEntity">
+        with recursive rs as(
+            select * from lf.sys_dir where name='涓縿涓滅嚎绠¢亾宸ョ▼鍗楁'
+        union
+            select a.* from lf.sys_dir a, rs b where a.pid=b.id
+        )
+        select * FROM rs order by order_num;
     </select>
 
     <insert id="insertDir" parameterType="com.lf.server.entity.data.DirEntity">
@@ -51,4 +60,16 @@
     update lf.sys_dir set  pid=#{pid},name=#{name},code=#{code},descr=#{descr},level=#{level},order_num=#{orderNum},
     update_user=#{updateUser}, update_time=now(),bak=#{bak} where id=#{id}
     </update>
-</mapper>
\ No newline at end of file
+
+
+    <update id="updateDirs">
+        <foreach collection="list" item="item" index="index" separator=","  >
+            update lf.sys_dir
+             <set>
+                 pid=#{item.pid},name=#{item.name},code=#{item.code},descr=#{item.descr},level=#{item.level},
+                 order_num=#{item.orderNum},update_user=#{item.updateUser}, update_time=now(),bak=#{item.bak}
+             </set>
+            where id = #{item.id}
+        </foreach>
+    </update>
+</mapper>
diff --git a/src/main/resources/mapper/sys/DepMapper.xml b/src/main/resources/mapper/sys/DepMapper.xml
index bff0843..ece592a 100644
--- a/src/main/resources/mapper/sys/DepMapper.xml
+++ b/src/main/resources/mapper/sys/DepMapper.xml
@@ -10,9 +10,17 @@
         <result property="updateTime" column="update_time"></result>
     </resultMap>
     <select id="selectDepAll" resultMap="resultMap" resultType="com.lf.server.entity.sys.DepEntity">
-        select * from lf.sys_dep order by id;
+        select * from lf.sys_dep order by order_num;
     </select>
 
+    <select id="selectDepRecursive" resultMap="resultMap" resultType="com.lf.server.entity.sys.DepEntity">
+        with recursive rs as(
+            select * from lf.sys_dep where name='涓浗鐭虫补澶╃劧姘旂閬撳伐绋嬫湁闄愬叕鍙�'
+        union
+            select a.* from lf.sys_dep a, rs b where a.pid=b.id
+        )
+        select * FROM rs order by order_num;
+    </select>
     <select id="selectDep" resultMap="resultMap" resultType="com.lf.server.entity.sys.DepEntity">
         select * from lf.sys_dep where id = #{id}
     </select>
@@ -48,7 +56,20 @@
     </delete>
 
     <update id="updateDep">
-    update lf.sys_dep set pid=#{pid},name=#{name},sname=#{sname},code=#{code},uncode=#{uncode},addr=#{addr},contact=#{contact},fax=#{fax},
-    email=#{email},post=#{post},website=#{website},level=#{level},order_num =#{orderNum},update_user=#{updateUser},update_time=now(),bak=#{bak} where id=#{id}
+        update lf.sys_dep set pid=#{pid},name=#{name},sname=#{sname},code=#{code},uncode=#{uncode},addr=#{addr},contact=#{contact},fax=#{fax},
+        email=#{email},post=#{post},website=#{website},level=#{level},order_num =#{orderNum},update_user=#{updateUser},update_time=now(),bak=#{bak}
+         where id=#{id}
+    </update>
+
+    <update id="updateDeps">
+        <foreach collection="list" item="item" index="index" separator=","  >
+            update lf.sys_menu
+            <set>
+                pid=#{item.pid},name=#{item.name},sname=#{item.sname},code=#{item.code},uncode=#{item.uncode},addr=#{item.addr},contact=#{item.contact},
+                fax=#{item.fax},email=#{item.email},post=#{item.post},website=#{item.website},level=#{item.level},order_num =#{item.orderNum},
+                update_user=#{item.updateUser},update_time=now(),bak=#{item.bak}
+            </set>
+            where id = #{item.id}
+        </foreach>
     </update>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/sys/MenusMapper.xml b/src/main/resources/mapper/sys/MenusMapper.xml
index 3d34fd1..5b10c5c 100644
--- a/src/main/resources/mapper/sys/MenusMapper.xml
+++ b/src/main/resources/mapper/sys/MenusMapper.xml
@@ -13,7 +13,16 @@
         <result property="updateTime" column="update_time"></result>
     </resultMap>
     <select id="selectMenuAll" resultMap="resultMap" resultType="com.lf.server.entity.sys.MenusEntity">
-        select * from lf.sys_menu order by id;
+        select * from lf.sys_menu order by order_num;
+    </select>
+
+    <select id="selectMenuRecursive" resultMap="resultMap" resultType="com.lf.server.entity.sys.MenusEntity">
+        with recursive rs as(
+            select * from lf.sys_menu where cn_name='绠¢亾鍩虹澶ф暟鎹钩鍙�'
+        union
+            select a.* from lf.sys_menu a, rs b where a.pid=b.id
+        )
+        select * FROM rs order by order_num;
     </select>
 
     <select id="selectMenu" resultMap="resultMap" resultType="com.lf.server.entity.sys.MenusEntity">
@@ -54,4 +63,19 @@
     update lf.sys_menu set pid=#{pid},cn_name=#{cnName},en_name=#{enName},url=#{url},perms=#{perms},type=#{type},icon=#{icon},level=#{level},
     order_num=#{orderNum},is_show=#{isShow},update_user=#{updateUser},update_time=now(),bak=#{bak} where id=#{id}
     </update>
+
+    <update id="updateMenus">
+        <foreach collection="list" item="item" index="index" separator=","  >
+            update lf.sys_menu
+            <set>
+                pid=#{item.pid},cn_name=#{item.cnName},en_name=#{item.enName},url=#{item.url},perms=#{item.perms},type=#{item.type},
+                icon=#{item.icon},level=#{item.level},order_num=#{item.orderNum},is_show=#{item.isShow},update_user=#{item.updateUser},
+                update_time=now(),bak=#{item.bak}
+            </set>
+            where id = #{item.id}
+        </foreach>
+    </update>
+
+
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3