From dca2532f01dac86be25ad09fa9ee8035bccdca6a Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Sat, 27 Nov 2021 17:11:33 +0800
Subject: [PATCH] 1.部门tree修改 2.用户查询修改 3.培训报名年龄拦截

---
 src/main/java/org/springblade/modules/system/mapper/UserMapper.xml |   64 ++++++++++++++++++++++++++++---
 1 files changed, 57 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
index a641008..3adc6b5 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -100,7 +100,25 @@
             and bu.hold = #{user.hold}
         </if>
         <if test="user.deptId!=null and user.deptId != ''">
-            and (bd.id = #{user.deptId} or bd.parent_id = #{user.deptId})
+            and bd.id in
+            (
+                select id from blade_dept where id = #{user.deptId}
+                union
+                SELECT
+                id
+                FROM
+                (
+                SELECT
+                t1.id,t1.parent_id,t1.dept_name,
+                IF
+                ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
+                FROM
+                ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
+                ( SELECT @pids := #{user.deptId} ) t2
+                ) t3
+                WHERE
+                ischild != 0
+            )
         </if>
         <if test="user.roleId!=null and user.roleId != ''">
             and bu.role_id = #{user.roleId}
@@ -166,7 +184,25 @@
             and real_name like concat(concat('%', #{user.realName}),'%')
         </if>
         <if test="user.deptId!=null and user.deptId != ''">
-            and (bd.id = #{user.deptId} or bd.parent_id = #{user.deptId})
+            and bd.id in
+            (
+                select id from blade_dept where id = #{user.deptId}
+                union
+                SELECT
+                id
+                FROM
+                (
+                SELECT
+                t1.id,t1.parent_id,t1.dept_name,
+                IF
+                ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
+                FROM
+                ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
+                ( SELECT @pids := #{user.deptId} ) t2
+                ) t3
+                WHERE
+                ischild != 0
+            )
         </if>
         <if test="user.userType!=null and user.userType != ''">
             and user_type = #{user.userType}
@@ -377,13 +413,9 @@
             where 1 = 1
             <if test="user.examType==1">
                 and a.isApply != 1
-                and a.age&gt;=18
-                and a.age&lt;=60
             </if>
             <if test="user.examType==2">
                 and a.isTrain != 1
-                and a.age&gt;=18
-                and a.age&lt;=60
             </if>
         )
     </select>
@@ -698,7 +730,25 @@
             and bu.hold = #{user.hold}
         </if>
         <if test="user.deptId!=null and user.deptId != ''">
-            and (bd.id = #{user.deptId} or bd.parent_id = #{user.deptId})
+            and bd.id in
+            (
+                select id from blade_dept where id = #{user.deptId}
+                union
+                SELECT
+                id
+                FROM
+                (
+                SELECT
+                t1.id,t1.parent_id,t1.dept_name,
+                IF
+                ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
+                FROM
+                ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
+                ( SELECT @pids := #{user.deptId} ) t2
+                ) t3
+                WHERE
+                ischild != 0
+            )
         </if>
         <if test="user.roleId!=null and user.roleId != ''">
             and bu.role_id = #{user.roleId}

--
Gitblit v1.9.3