xiangpei
2025-07-15 37325b5b629a296230e87d41187742f843c7494c
system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -47,6 +47,18 @@
      order by d.parent_id, d.order_num
    </select>
   <select id="selectDeptListNoAuth" parameterType="SysDept" resultMap="SysDeptResult">
      <include refid="selectDeptVo"/>
      where d.del_flag = '0'
      <if test="parentId != null">
         AND FIND_IN_SET(#{parentId}, ancestors) > 0
      </if>
      <if test="deptName != null and deptName != ''">
         AND dept_name like concat('%', #{deptName}, '%')
      </if>
      order by d.parent_id, d.order_num
   </select>
    <select id="selectDeptListByRoleId" resultType="Long">
      select d.dept_id
      from sys_dept d
@@ -94,7 +106,7 @@
      where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
   </select>
    <select id="selectAncestors" resultType="java.lang.String">
      select ancestors
      select SD.ancestors
      from sys_user SU
      INNER JOIN sys_dept SD ON SU.dept_id = SD.dept_id
      where SU.user_id = #{userId}
@@ -102,6 +114,20 @@
   <select id="selectByName" parameterType="string" resultType="long">
      SELECT dept_id FROM sys_dept WHERE dept_name = #{name} and del_flag = '0' limit 1
   </select>
   <select id="getChildIds" parameterType="long" resultType="long">
      WITH RECURSIVE temp_table AS (
         SELECT
            dept_id FROM sys_dept WHERE dept_id = #{deptId} AND del_flag = '0'
         UNION ALL
         SELECT
            so.dept_id FROM sys_dept so INNER JOIN temp_table tb ON so.parent_id = tb.dept_id AND so.del_flag = '0'
      )
      SELECT
         dept_id
      FROM
         temp_table
   </select>
    <insert id="insertDept" parameterType="SysDept">
@@ -135,9 +161,9 @@
   <update id="updateDept" parameterType="SysDept">
       update sys_dept
       <set>
          <if test="parentId != null and parentId != 0">parent_id = #{parentId},</if>
          <if test="parentId != null">parent_id = #{parentId},</if>
          <if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
          <if test="ancestors != null and ancestors != ''">ancestors = #{ancestors},</if>
          <if test="ancestors != null">ancestors = #{ancestors},</if>
          <if test="orderNum != null">order_num = #{orderNum},</if>
          <if test="leader != null">leader = #{leader},</if>
          <if test="phone != null">phone = #{phone},</if>