SysUserRoleMapper.xml 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.zd.system.mapper.SysUserRoleMapper">
  6. <resultMap type="com.zd.system.domain.SysUserRole" id="SysUserRoleResult">
  7. <result property="userId" column="user_id"/>
  8. <result property="roleId" column="role_id"/>
  9. </resultMap>
  10. <delete id="deleteUserRoleByUserId" >
  11. delete from sys_user_role where user_id=#{userId}
  12. </delete>
  13. <select id="countUserRoleByRoleId" resultType="java.lang.Integer">
  14. select count(1) from sys_user_role where role_id=#{roleId}
  15. </select>
  16. <select id="selectAuthUserPower" resultType="java.lang.String">
  17. select
  18. case when
  19. '1' = t.data_scope then 1
  20. when
  21. '2' = t.data_scope then
  22. ifnull((select data_sort from sys_dept where data_sort is not null and dept_id in (select dept_id from sys_role_dept where role_id = t.role_id) order by data_sort desc limit 1), 0)
  23. when
  24. '3' = t.data_scope then
  25. ifnull((select data_sort from sys_dept where data_sort is not null and dept_id in (select dept_id from sys_user where user_id = #{userId}) order by data_sort desc limit 1), 0)
  26. when
  27. '4' = t.data_scope then
  28. ifnull((select data_sort from sys_dept where data_sort is not null and dept_id in (SELECT dept_id FROM sys_dept WHERE find_in_set((select dept_id from sys_user where user_id = #{userId}), ancestors)) order by data_sort desc limit 1), 0)
  29. else 0 end
  30. from (select role_id, data_scope from sys_role where role_id = (select role_id from sys_user_role where user_id = #{userId} limit 1) ) t
  31. </select>
  32. <select id="selectLevelByUserId" resultType="java.lang.Integer">
  33. select
  34. case when '1' = t.data_scope then 1
  35. when '2' = t.data_scope then
  36. (
  37. select
  38. case when a.count > 0
  39. then 1 else 2 end
  40. from (select count(1) count from sys_role_dept where role_id = (select ur.role_id from sys_user_role ur left join sys_role r on ur.role_id = r.role_id where ur.user_id = #{userId} order by r.data_scope limit 1) and dept_id in (select dept_id from sys_dept where parent_id = 0)) a
  41. )
  42. else 2 end
  43. from
  44. (select role_id, data_scope from sys_role where role_id = (select ur.role_id from sys_user_role ur left join sys_role r on ur.role_id = r.role_id where ur.user_id = #{userId} order by r.data_scope limit 1)) t
  45. </select>
  46. <delete id="deleteUserRole" >
  47. delete from sys_user_role where user_id in
  48. <foreach collection="array" item="userId" open="(" separator="," close=")">
  49. #{userId}
  50. </foreach>
  51. </delete>
  52. <insert id="batchUserRole">
  53. insert into sys_user_role(user_id, role_id) values
  54. <foreach item="item" index="index" collection="list" separator=",">
  55. (#{item.userId},#{item.roleId})
  56. </foreach>
  57. </insert>
  58. <delete id="deleteUserRoleInfo" parameterType="com.zd.system.domain.SysUserRole">
  59. delete from sys_user_role where user_id=#{userId} and role_id=#{roleId}
  60. </delete>
  61. <delete id="deleteUserRoleInfos">
  62. delete from sys_user_role where role_id=#{roleId} and user_id in
  63. <foreach collection="userIds" item="userId" open="(" separator="," close=")">
  64. #{userId}
  65. </foreach>
  66. </delete>
  67. </mapper>