瀏覽代碼

递归查询报价业务员

wanghao 1 周之前
父節點
當前提交
b2ca1f578b
共有 1 個文件被更改,包括 23 次插入12 次删除
  1. 23 12
      tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml

+ 23 - 12
tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml

@@ -126,38 +126,49 @@
         order by suji.create_time desc
     </select>
     <select id="queryBJYwy" resultMap="BaseResultMap">
-        select
+
+        WITH RECURSIVE leader_tree AS (
+        SELECT id, leader_id, 1 AS depth,system_code
+        FROM sys_user_jzg_info
+        WHERE leader_id = #{leaderId}
+        AND is_delete = 0
+        UNION ALL
+        SELECT t.id, t.leader_id, lt.depth + 1,t.system_code
+        FROM sys_user_jzg_info t
+        INNER JOIN leader_tree lt ON t.leader_id = lt.id
+        WHERE t.is_delete = 0
+        AND lt.depth <![CDATA[  <  ]]> 10
+        )
+        SELECT
         suji.id,
         suji.user_id,
         suji.work_number,
         su.username,
-        su.mobile ,
+        su.mobile,
         suji.name,
         suji.dept_id,
         sd.name AS dept_name,
         suji.status,
         suji.is_enable,
         lsu.name AS leader_name,
-        ( select  aa.mobile from sys_user aa
-        where aa.id = lsu.user_id AND aa.is_delete = 0 ) AS leader_id,
-        (select re.name from sys_user_jzg_info re where re.id = suji.referrer_id) referrer_name,
+        (SELECT aa.mobile FROM sys_user aa
+        WHERE aa.id = lsu.user_id AND aa.is_delete = 0) AS leader_id,
+        (SELECT re.name FROM sys_user_jzg_info re WHERE re.id = suji.referrer_id) AS referrer_name,
         suji.referrer_id,
         suji.create_time AS createTime,
         suji.create_by AS createBy
-        from
+        FROM
         sys_user_jzg_info suji
-        left join sys_user su on su.id = suji.user_id AND su.is_delete = 0
-        LEFT JOIN sys_user_jzg_info lsu on lsu.id = suji.leader_id AND lsu.is_delete = 0
-        left join sys_dept sd on sd.id = suji.dept_id AND sd.is_delete = 0
+        INNER JOIN leader_tree lt ON suji.id = lt.id
+        LEFT JOIN sys_user su ON su.id = suji.user_id AND su.is_delete = 0
+        LEFT JOIN sys_user_jzg_info lsu ON lsu.id = suji.leader_id AND lsu.is_delete = 0
+        LEFT JOIN sys_dept sd ON sd.id = suji.dept_id AND sd.is_delete = 0
         LEFT JOIN sys_dept d ON suji.dept_id = d.id AND d.is_delete = 0
         <where>
             suji.is_delete = 0
             and suji.id  in (
             select sujis.sys_user_jzg_info_id  from sys_user_jzg_info_salesman sujis  where  sujis.type_attr != 2 AND sujis.type_attr != 3
             )
-            <if test="leaderId != null and leaderId != ''">
-                and suji.leader_id = #{leaderId}
-            </if>
             <if test="sysUserInfoListVo.deptId != null and sysUserInfoListVo.deptId != ''">
                 and d.route LIKE CONCAT('%', #{sysUserInfoListVo.deptId}, '%')
             </if>