PartyRoleProvider.map.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.lc.ibps.platform.dao.PartyRoleProviderDao">
  4. <select id="getUserRoleJobByUserId" parameterType="string" resultType="string">
  5. select JOB_ from IBPS_PARTY_EMPLOYEE where ID_ = #{userId}
  6. </select>
  7. <update id="updateUserRoleJobByUserId" parameterType="string">
  8. update IBPS_PARTY_EMPLOYEE set JOB_ = #{job} where ID_ = #{userId}
  9. </update>
  10. <resultMap id="PartyRole" type="com.lc.ibps.org.party.persistence.entity.PartyRolePo">
  11. <id property="id" column="ID_" jdbcType="VARCHAR"/>
  12. <result property="name" column="NAME_" jdbcType="VARCHAR"/>
  13. <result property="roleNote" column="ROLE_NOTE_" jdbcType="BLOB"/>
  14. <result property="roleAlias" column="ROLE_ALIAS_" jdbcType="VARCHAR"/>
  15. <result property="roleType" column="ROLE_TYPE_" jdbcType="VARCHAR"/>
  16. <result property="subSystemName" column="SYSTEM_NAME_" jdbcType="VARCHAR"/>
  17. <result property="subSystemId" column="SYSTEM_ID_" jdbcType="VARCHAR"/>
  18. <result property="subSystemAlias" column="ALIAS_" jdbcType="VARCHAR"/>
  19. <result property="tenantId" column="TENANT_ID_" jdbcType="VARCHAR"/>
  20. </resultMap>
  21. <select id="getRoleByName" resultMap="PartyRole" parameterType="string">
  22. SELECT
  23. t1.ID_,
  24. t1.NAME_,
  25. t1.ROLE_NOTE_,
  26. t1.ROLE_ALIAS_,
  27. t1.TENANT_ID_,
  28. t1.ROLE_TYPE_,
  29. t2.SYSTEM_ID_
  30. FROM IBPS_PARTY_ROLE as t1
  31. LEFT JOIN (
  32. select
  33. SYSTEM_ID_,
  34. ROLE_ID_,
  35. NAME_ as SYSTEM_NAME_
  36. from IBPS_AUTH_ROLE_SYSTEM
  37. left join IBPS_AUTH_SUBSYS a on a.ID_ = SYSTEM_ID_
  38. )as t2 on t2.ROLE_ID_ = t1.ID_
  39. <if test="name != null and name != ''">
  40. WHERE t1.NAME_ LIKE CONCAT('%',#{name},'%')
  41. </if>
  42. </select>
  43. <resultMap id="Resources" type="com.lc.ibps.org.auth.persistence.entity.ResourcesPo">
  44. <id property="id" column="ID_" jdbcType="VARCHAR"/>
  45. <result property="name" column="NAME_" jdbcType="VARCHAR"/>
  46. <result property="alias" column="ALIAS_" jdbcType="VARCHAR"/>
  47. <result property="desc" column="DESC_" jdbcType="VARCHAR"/>
  48. <result property="sn" column="SN_" jdbcType="NUMERIC"/>
  49. <result property="icon" column="ICON_" jdbcType="VARCHAR"/>
  50. <result property="resourceType" column="RESOURCE_TYPE_" jdbcType="VARCHAR"/>
  51. <result property="parentId" column="PARENT_ID_" jdbcType="VARCHAR"/>
  52. <result property="defaultUrl" column="DEFAULT_URL_" jdbcType="VARCHAR"/>
  53. <result property="isFolder" column="IS_FOLDER_" jdbcType="CHAR"/>
  54. <result property="displayInMenu" column="DISPLAY_IN_MENU_" jdbcType="CHAR"/>
  55. <result property="isOpen" column="IS_OPEN_" jdbcType="CHAR"/>
  56. <result property="systemId" column="SYSTEM_ID_" jdbcType="VARCHAR"/>
  57. <result property="path" column="PATH_" jdbcType="VARCHAR"/>
  58. <result property="tenantId" column="TENANT_ID_" jdbcType="VARCHAR"/>
  59. <result property="tenantType" column="TENANT_TYPE_" jdbcType="VARCHAR"/>
  60. <result property="createBy" column="CREATE_BY_" jdbcType="VARCHAR"/>
  61. <result property="createTime" column="CREATE_TIME_" jdbcType="TIMESTAMP"/>
  62. </resultMap>
  63. <select id="getResourcesByName" resultMap="Resources" parameterType="string">
  64. SELECT
  65. DISTINCT r.*
  66. FROM IBPS_AUTH_RES AS r
  67. <choose>
  68. <when test="name != null and name != ''">
  69. WHERE (
  70. EXISTS (
  71. SELECT 1
  72. FROM ibps_auth_res m
  73. WHERE m.NAME_ LIKE CONCAT('%',#{name},'%')
  74. AND m.ID_ NOT IN (
  75. select ID_ from IBPS_AUTH_RES
  76. where PATH_ LIKE CONCAT('%', (select ID_ from IBPS_AUTH_RES where NAME_ = '系统管理' limit 1), '%')
  77. )
  78. AND (
  79. r.PATH_ LIKE CONCAT('%', m.ID_, '%')
  80. OR
  81. m.PATH_ LIKE CONCAT('%', r.ID_, '%')
  82. )
  83. )
  84. )
  85. </when>
  86. <otherwise>
  87. where 1=1
  88. </otherwise>
  89. </choose>
  90. AND DISPLAY_IN_MENU_ = 'Y'
  91. AND ID_ NOT IN (select ID_ from IBPS_AUTH_RES where PATH_ LIKE CONCAT('%', (select ID_ from IBPS_AUTH_RES where NAME_ = '系统管理' limit 1), '%'))
  92. ORDER BY SN_
  93. </select>
  94. <select id="getRoleIdsByResourcesId" parameterType="string" resultType="string">
  95. SELECT ROLE_ID_ FROM IBPS_AUTH_ROLE_RES
  96. WHERE RES_ID_ = #{id}
  97. </select>
  98. <delete id="deleteRoleResourcesByResourcesId" parameterType="string">
  99. DELETE FROM IBPS_AUTH_ROLE_RES
  100. WHERE RES_ID_ = #{pageId}
  101. AND ROLE_ID_ = (select ID_ from IBPS_PARTY_ROLE where NAME_ = #{roleName} LIMIT 1)
  102. </delete>
  103. <insert id="insertRoleResources" parameterType="string">
  104. insert into IBPS_AUTH_ROLE_RES (ID_, ROLE_ID_, RES_ID_,SYSTEM_ID_)
  105. values
  106. (
  107. (select max(CONVERT(ID_, SIGNED))+1 from IBPS_AUTH_ROLE_RES as t1),
  108. (select ID_ from IBPS_PARTY_ROLE where NAME_ = #{roleName} LIMIT 1),
  109. #{resId},
  110. (select SYSTEM_ID_ from IBPS_AUTH_ROLE_SYSTEM where ROLE_ID_ = (select ID_ from IBPS_PARTY_ROLE where NAME_ = #{roleName} LIMIT 1))
  111. )
  112. </insert>
  113. <!-- RoleDO 结果映射 -->
  114. <resultMap id="RoleDOMap" type="com.lc.ibps.org.party.persistence.entity.RoleDO">
  115. <id property="id" column="ID_" jdbcType="VARCHAR"/>
  116. <result property="name" column="NAME_" jdbcType="VARCHAR"/>
  117. </resultMap>
  118. <!-- 查询所有角色 -->
  119. <select id="getAllRoles" resultMap="RoleDOMap">
  120. SELECT
  121. ID_,
  122. NAME_
  123. FROM IBPS_PARTY_ROLE
  124. ORDER BY NAME_
  125. </select>
  126. <!-- 查询有效资源并构建显示名称和排序路径,同时过滤父级不显示的菜单 -->
  127. <select id="getResourcesWithPathPaging" resultType="com.lc.ibps.org.party.persistence.entity.ResourceDO">
  128. SELECT
  129. r.ID_ AS id,
  130. r.NAME_ AS name,
  131. r.SN_ AS sn,
  132. r.PARENT_ID_ AS parentId,
  133. r.PATH_ AS path,
  134. (
  135. SELECT GROUP_CONCAT(parent.NAME_ ORDER BY FIND_IN_SET(parent.ID_, REPLACE(r.PATH_, '.', ',')) SEPARATOR '/')
  136. FROM IBPS_AUTH_RES parent
  137. WHERE FIND_IN_SET(parent.ID_, REPLACE(r.PATH_, '.', ','))
  138. ) AS displayName,
  139. (
  140. SELECT GROUP_CONCAT(LPAD(parent.SN_, 10, '0') ORDER BY FIND_IN_SET(parent.ID_, REPLACE(r.PATH_, '.', ',')) SEPARATOR '.')
  141. FROM IBPS_AUTH_RES parent
  142. WHERE FIND_IN_SET(parent.ID_, REPLACE(r.PATH_, '.', ','))
  143. ) AS sortPath
  144. FROM IBPS_AUTH_RES r
  145. WHERE r.DISPLAY_IN_MENU_ = 'Y'
  146. AND NOT EXISTS (
  147. SELECT 1
  148. FROM (
  149. SELECT
  150. SUBSTRING_INDEX(SUBSTRING_INDEX(r.PATH_, '.', numbers.n), '.', -1) AS pid
  151. FROM (
  152. SELECT 1 n UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5
  153. UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10
  154. ) numbers
  155. WHERE numbers.n <![CDATA[ <= ]]> (LENGTH(r.PATH_) - LENGTH(REPLACE(r.PATH_, '.', '')) + 1)
  156. ) path_ids
  157. LEFT JOIN IBPS_AUTH_RES parent_res ON parent_res.ID_ = path_ids.pid
  158. WHERE parent_res.ID_ IS NULL OR parent_res.DISPLAY_IN_MENU_ != 'Y'
  159. )
  160. <if test="resourceNameFilter != null and resourceNameFilter != ''">
  161. AND displayName LIKE CONCAT('%', #{resourceNameFilter}, '%')
  162. </if>
  163. ORDER BY sortPath
  164. LIMIT #{offset}, #{limit}
  165. </select>
  166. <!-- 统计有效资源总数 -->
  167. <select id="countResources" resultType="int">
  168. SELECT COUNT(*)
  169. FROM (
  170. SELECT
  171. r.ID_,
  172. (
  173. SELECT GROUP_CONCAT(parent.NAME_ ORDER BY FIND_IN_SET(parent.ID_, REPLACE(r.PATH_, '.', ',')) SEPARATOR '/')
  174. FROM IBPS_AUTH_RES parent
  175. WHERE FIND_IN_SET(parent.ID_, REPLACE(r.PATH_, '.', ','))
  176. ) AS displayName
  177. FROM IBPS_AUTH_RES r
  178. WHERE r.DISPLAY_IN_MENU_ = 'Y'
  179. AND NOT EXISTS (
  180. SELECT 1
  181. FROM (
  182. SELECT
  183. SUBSTRING_INDEX(SUBSTRING_INDEX(r.PATH_, '.', numbers.n), '.', -1) AS pid
  184. FROM (
  185. SELECT 1 n UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5
  186. UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10
  187. ) numbers
  188. WHERE numbers.n <![CDATA[ <= ]]> (LENGTH(r.PATH_) - LENGTH(REPLACE(r.PATH_, '.', '')) + 1)
  189. ) path_ids
  190. LEFT JOIN IBPS_AUTH_RES parent_res ON parent_res.ID_ = path_ids.pid
  191. WHERE parent_res.ID_ IS NULL OR parent_res.DISPLAY_IN_MENU_ != 'Y'
  192. )
  193. ) t
  194. <if test="resourceNameFilter != null and resourceNameFilter != ''">
  195. WHERE t.displayName LIKE CONCAT('%', #{resourceNameFilter}, '%')
  196. </if>
  197. </select>
  198. <!-- 查询有效的角色-资源权限关系 -->
  199. <select id="getValidRoleResources" resultType="com.lc.ibps.org.party.persistence.entity.RoleResourceDO">
  200. SELECT DISTINCT
  201. rr.ROLE_ID_ AS roleId,
  202. rr.RES_ID_ AS resId
  203. FROM IBPS_AUTH_ROLE_RES rr
  204. WHERE EXISTS (
  205. SELECT 1 FROM IBPS_PARTY_ROLE r WHERE r.ID_ = rr.ROLE_ID_
  206. )
  207. AND EXISTS (
  208. SELECT 1 FROM IBPS_AUTH_RES r WHERE r.ID_ = rr.RES_ID_ AND r.DISPLAY_IN_MENU_ = 'Y'
  209. )
  210. </select>
  211. <select id="getAllDisplayableResources" resultType="com.lc.ibps.org.party.persistence.entity.ResourceRawDO">
  212. SELECT
  213. ID_ AS id,
  214. NAME_ AS name,
  215. SN_ AS sn,
  216. PARENT_ID_ AS parentId,
  217. PATH_ AS path,
  218. DISPLAY_IN_MENU_ AS displayInMenu
  219. FROM IBPS_AUTH_RES
  220. WHERE DISPLAY_IN_MENU_ = 'Y'
  221. AND ID_ NOT IN (
  222. select ID_ from IBPS_AUTH_RES
  223. where PATH_ LIKE CONCAT('%', (select ID_ from IBPS_AUTH_RES where NAME_ = '系统管理' limit 1), '%')
  224. )
  225. </select>
  226. <select id="getAllUsers" resultType="com.lc.ibps.org.party.persistence.entity.UserDO">
  227. SELECT
  228. ID_ AS id,
  229. NAME_ AS name,
  230. JOB_ AS job
  231. FROM IBPS_PARTY_EMPLOYEE
  232. WHERE STATUS_ != 'deleted'
  233. <if test="userName != null and userName != ''">
  234. AND NAME_ LIKE CONCAT('%', #{userName}, '%')
  235. </if>
  236. ORDER BY NAME_
  237. </select>
  238. </mapper>