liusuyi
2024-08-08 57c673aa3e83677bcf5d30b4b45d06bae6609db8
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -46,7 +46,23 @@
      ${params.dataScope}
      order by d.parent_id, d.order_num
    </select>
   <select id="selectDeptListNoDataScope" parameterType="SysDept" resultMap="SysDeptResult">
      <include refid="selectDeptVo"/>
      where d.del_flag = '0'
      <if test="deptId != null and deptId != 0">
         AND dept_id = #{deptId}
      </if>
      <if test="parentId != null and parentId != 0">
         AND parent_id = #{parentId}
      </if>
      <if test="deptName != null and deptName != ''">
         AND dept_name like ('%${deptName}%')
      </if>
      <if test="status != null and status != ''">
         AND status = #{status}
      </if>
      order by d.parent_id, d.order_num
   </select>
    <select id="selectDeptListByRoleId" resultType="Long">
      select d.dept_id
      from sys_dept d
@@ -165,4 +181,37 @@
         #{deptId}
      </foreach>
   </select>
   <select id="selectDeptIdBySub" resultType="java.lang.Long" parameterType="java.lang.Long">
      with recursive rsd as (
         select sd.dept_id from sys_dept sd where sd.dept_id = #{deptId}
         union
         select csd.dept_id from sys_dept csd inner join rsd on rsd.dept_id = csd.parent_id
      )
      select dept_id from rsd
   </select>
   <select id="selectRoleDeptIdByUsersId" resultType="java.lang.Long" parameterType="java.lang.String">
      select srd.dept_id from sys_user su
      inner join sys_user_role sur on su.user_id = sur.user_id
      inner join sys_role_dept srd on sur.role_id = srd.role_id
      where su.user_id = #{usersId} order by srd.dept_id
   </select>
   <select id="getParentsDeptListByDeptId" resultMap="SysDeptResult" parameterType="java.lang.Long">
      with recursive rsd as (
         select * from sys_dept sd where sd.dept_id = #{deptId}
         union
         select psd.* from sys_dept psd inner join rsd on rsd.parent_id = psd.dept_id
      )
      select * from rsd
   </select>
   <select id="selectNextChildrenDeptByIdAndInList" resultMap="SysDeptResult">
      select * from sys_dept where parent_id=#{deptId} and del_flag='0'
      and dept_id in
      <foreach collection="deptIdList" item="deptId" separator="," index="index" open="(" close=")">
         #{deptId}
      </foreach>
   </select>
</mapper>