zhangnaisong
2024-05-28 9caa82674793eb3ce6b9cfc0dd20d931bcd25e0c
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -77,7 +77,9 @@
   <select id="selectChildrenDeptById" parameterType="Long" resultMap="SysDeptResult">
      select * from sys_dept where cast(#{deptId} as varchar) = any(string_to_array(ancestors,','))
   </select>
   <select id="selectNextChildrenDeptById" parameterType="Long" resultMap="SysDeptResult">
      select * from sys_dept where parent_id=#{deptId} and del_flag='0'
   </select>
   <select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int">
      select count(*) from sys_dept where status = '0' and del_flag = '0' and cast(#{deptId} as varchar) = any(string_to_array(ancestors,','))
   </select>
@@ -156,4 +158,27 @@
      update sys_dept set del_flag = '2' where dept_id = #{deptId}
   </delete>
   <select id="getChildrenDeptIdList" resultType="java.lang.Long">
      select distinct sd.dept_id from sys_dept sd
      where sd.parent_id in
      <foreach collection="deptIdList" item="deptId" separator="," open="(" close=")">
         #{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}
   </select>
</mapper>