|
|
@@ -0,0 +1,263 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
+<mapper namespace="com.lc.ibps.platform.dao.PartyRoleProviderDao">
|
|
|
+
|
|
|
+ <select id="getUserRoleJobByUserId" parameterType="string" resultType="string">
|
|
|
+ select JOB_ from IBPS_PARTY_EMPLOYEE where ID_ = #{userId}
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <update id="updateUserRoleJobByUserId" parameterType="string">
|
|
|
+ update IBPS_PARTY_EMPLOYEE set JOB_ = #{job} where ID_ = #{userId}
|
|
|
+ </update>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <resultMap id="PartyRole" type="com.lc.ibps.org.party.persistence.entity.PartyRolePo">
|
|
|
+ <id property="id" column="ID_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="name" column="NAME_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="roleNote" column="ROLE_NOTE_" jdbcType="BLOB"/>
|
|
|
+ <result property="roleAlias" column="ROLE_ALIAS_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="roleType" column="ROLE_TYPE_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="subSystemName" column="SYSTEM_NAME_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="subSystemId" column="SYSTEM_ID_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="subSystemAlias" column="ALIAS_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="tenantId" column="TENANT_ID_" jdbcType="VARCHAR"/>
|
|
|
+ </resultMap>
|
|
|
+
|
|
|
+ <select id="getRoleByName" resultMap="PartyRole" parameterType="string">
|
|
|
+ SELECT
|
|
|
+ t1.ID_,
|
|
|
+ t1.NAME_,
|
|
|
+ t1.ROLE_NOTE_,
|
|
|
+ t1.ROLE_ALIAS_,
|
|
|
+ t1.TENANT_ID_,
|
|
|
+ t1.ROLE_TYPE_,
|
|
|
+ t2.SYSTEM_ID_
|
|
|
+ FROM IBPS_PARTY_ROLE as t1
|
|
|
+ LEFT JOIN (
|
|
|
+ select
|
|
|
+ SYSTEM_ID_,
|
|
|
+ ROLE_ID_,
|
|
|
+ NAME_ as SYSTEM_NAME_
|
|
|
+ from IBPS_AUTH_ROLE_SYSTEM
|
|
|
+ left join IBPS_AUTH_SUBSYS a on a.ID_ = SYSTEM_ID_
|
|
|
+ )as t2 on t2.ROLE_ID_ = t1.ID_
|
|
|
+ <if test="name != null and name != ''">
|
|
|
+ WHERE t1.NAME_ LIKE CONCAT('%',#{name},'%')
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+
|
|
|
+
|
|
|
+ <resultMap id="Resources" type="com.lc.ibps.org.auth.persistence.entity.ResourcesPo">
|
|
|
+ <id property="id" column="ID_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="name" column="NAME_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="alias" column="ALIAS_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="desc" column="DESC_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="sn" column="SN_" jdbcType="NUMERIC"/>
|
|
|
+ <result property="icon" column="ICON_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="resourceType" column="RESOURCE_TYPE_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="parentId" column="PARENT_ID_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="defaultUrl" column="DEFAULT_URL_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="isFolder" column="IS_FOLDER_" jdbcType="CHAR"/>
|
|
|
+ <result property="displayInMenu" column="DISPLAY_IN_MENU_" jdbcType="CHAR"/>
|
|
|
+ <result property="isOpen" column="IS_OPEN_" jdbcType="CHAR"/>
|
|
|
+ <result property="systemId" column="SYSTEM_ID_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="path" column="PATH_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="tenantId" column="TENANT_ID_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="tenantType" column="TENANT_TYPE_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="createBy" column="CREATE_BY_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="createTime" column="CREATE_TIME_" jdbcType="TIMESTAMP"/>
|
|
|
+ </resultMap>
|
|
|
+
|
|
|
+ <select id="getResourcesByName" resultMap="Resources" parameterType="string">
|
|
|
+ SELECT
|
|
|
+ DISTINCT r.*
|
|
|
+ FROM IBPS_AUTH_RES AS r
|
|
|
+ <choose>
|
|
|
+ <when test="name != null and name != ''">
|
|
|
+ WHERE (
|
|
|
+ EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM ibps_auth_res m
|
|
|
+ WHERE m.NAME_ LIKE CONCAT('%',#{name},'%')
|
|
|
+ AND m.ID_ NOT IN (
|
|
|
+ select ID_ from IBPS_AUTH_RES
|
|
|
+ where PATH_ LIKE CONCAT('%', (select ID_ from IBPS_AUTH_RES where NAME_ = '系统管理' limit 1), '%')
|
|
|
+ )
|
|
|
+ AND (
|
|
|
+ r.PATH_ LIKE CONCAT('%', m.ID_, '%')
|
|
|
+ OR
|
|
|
+ m.PATH_ LIKE CONCAT('%', r.ID_, '%')
|
|
|
+ )
|
|
|
+ )
|
|
|
+ )
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ where 1=1
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ AND DISPLAY_IN_MENU_ = 'Y'
|
|
|
+ AND ID_ NOT IN (select ID_ from IBPS_AUTH_RES where PATH_ LIKE CONCAT('%', (select ID_ from IBPS_AUTH_RES where NAME_ = '系统管理' limit 1), '%'))
|
|
|
+ ORDER BY SN_
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getRoleIdsByResourcesId" parameterType="string" resultType="string">
|
|
|
+ SELECT ROLE_ID_ FROM IBPS_AUTH_ROLE_RES
|
|
|
+ WHERE RES_ID_ = #{id}
|
|
|
+ </select>
|
|
|
+
|
|
|
+
|
|
|
+ <delete id="deleteRoleResourcesByResourcesId" parameterType="string">
|
|
|
+ DELETE FROM IBPS_AUTH_ROLE_RES
|
|
|
+ WHERE RES_ID_ = #{pageId}
|
|
|
+ AND ROLE_ID_ = (select ID_ from IBPS_PARTY_ROLE where NAME_ = #{roleName} LIMIT 1)
|
|
|
+ </delete>
|
|
|
+
|
|
|
+ <insert id="insertRoleResources" parameterType="string">
|
|
|
+ insert into IBPS_AUTH_ROLE_RES (ID_, ROLE_ID_, RES_ID_,SYSTEM_ID_)
|
|
|
+ values
|
|
|
+ (
|
|
|
+ (select max(CONVERT(ID_, SIGNED))+1 from IBPS_AUTH_ROLE_RES as t1),
|
|
|
+ (select ID_ from IBPS_PARTY_ROLE where NAME_ = #{roleName} LIMIT 1),
|
|
|
+ #{resId},
|
|
|
+ (select SYSTEM_ID_ from IBPS_AUTH_ROLE_SYSTEM where ROLE_ID_ = (select ID_ from IBPS_PARTY_ROLE where NAME_ = #{roleName} LIMIT 1))
|
|
|
+ )
|
|
|
+ </insert>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <!-- RoleDO 结果映射 -->
|
|
|
+ <resultMap id="RoleDOMap" type="com.lc.ibps.org.party.persistence.entity.RoleDO">
|
|
|
+ <id property="id" column="ID_" jdbcType="VARCHAR"/>
|
|
|
+ <result property="name" column="NAME_" jdbcType="VARCHAR"/>
|
|
|
+ </resultMap>
|
|
|
+
|
|
|
+ <!-- 查询所有角色 -->
|
|
|
+ <select id="getAllRoles" resultMap="RoleDOMap">
|
|
|
+ SELECT
|
|
|
+ ID_,
|
|
|
+ NAME_
|
|
|
+ FROM IBPS_PARTY_ROLE
|
|
|
+ ORDER BY NAME_
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 查询有效资源并构建显示名称和排序路径,同时过滤父级不显示的菜单 -->
|
|
|
+ <select id="getResourcesWithPathPaging" resultType="com.lc.ibps.org.party.persistence.entity.ResourceDO">
|
|
|
+ SELECT
|
|
|
+ r.ID_ AS id,
|
|
|
+ r.NAME_ AS name,
|
|
|
+ r.SN_ AS sn,
|
|
|
+ r.PARENT_ID_ AS parentId,
|
|
|
+ r.PATH_ AS path,
|
|
|
+ (
|
|
|
+ SELECT GROUP_CONCAT(parent.NAME_ ORDER BY FIND_IN_SET(parent.ID_, REPLACE(r.PATH_, '.', ',')) SEPARATOR '/')
|
|
|
+ FROM IBPS_AUTH_RES parent
|
|
|
+ WHERE FIND_IN_SET(parent.ID_, REPLACE(r.PATH_, '.', ','))
|
|
|
+ ) AS displayName,
|
|
|
+ (
|
|
|
+ SELECT GROUP_CONCAT(LPAD(parent.SN_, 10, '0') ORDER BY FIND_IN_SET(parent.ID_, REPLACE(r.PATH_, '.', ',')) SEPARATOR '.')
|
|
|
+ FROM IBPS_AUTH_RES parent
|
|
|
+ WHERE FIND_IN_SET(parent.ID_, REPLACE(r.PATH_, '.', ','))
|
|
|
+ ) AS sortPath
|
|
|
+ FROM IBPS_AUTH_RES r
|
|
|
+ WHERE r.DISPLAY_IN_MENU_ = 'Y'
|
|
|
+ AND NOT EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ SUBSTRING_INDEX(SUBSTRING_INDEX(r.PATH_, '.', numbers.n), '.', -1) AS pid
|
|
|
+ FROM (
|
|
|
+ SELECT 1 n UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5
|
|
|
+ UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10
|
|
|
+ ) numbers
|
|
|
+ WHERE numbers.n <![CDATA[ <= ]]> (LENGTH(r.PATH_) - LENGTH(REPLACE(r.PATH_, '.', '')) + 1)
|
|
|
+ ) path_ids
|
|
|
+ LEFT JOIN IBPS_AUTH_RES parent_res ON parent_res.ID_ = path_ids.pid
|
|
|
+ WHERE parent_res.ID_ IS NULL OR parent_res.DISPLAY_IN_MENU_ != 'Y'
|
|
|
+ )
|
|
|
+ <if test="resourceNameFilter != null and resourceNameFilter != ''">
|
|
|
+ AND displayName LIKE CONCAT('%', #{resourceNameFilter}, '%')
|
|
|
+ </if>
|
|
|
+ ORDER BY sortPath
|
|
|
+ LIMIT #{offset}, #{limit}
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 统计有效资源总数 -->
|
|
|
+ <select id="countResources" resultType="int">
|
|
|
+ SELECT COUNT(*)
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ r.ID_,
|
|
|
+ (
|
|
|
+ SELECT GROUP_CONCAT(parent.NAME_ ORDER BY FIND_IN_SET(parent.ID_, REPLACE(r.PATH_, '.', ',')) SEPARATOR '/')
|
|
|
+ FROM IBPS_AUTH_RES parent
|
|
|
+ WHERE FIND_IN_SET(parent.ID_, REPLACE(r.PATH_, '.', ','))
|
|
|
+ ) AS displayName
|
|
|
+ FROM IBPS_AUTH_RES r
|
|
|
+ WHERE r.DISPLAY_IN_MENU_ = 'Y'
|
|
|
+ AND NOT EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ SUBSTRING_INDEX(SUBSTRING_INDEX(r.PATH_, '.', numbers.n), '.', -1) AS pid
|
|
|
+ FROM (
|
|
|
+ SELECT 1 n UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5
|
|
|
+ UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10
|
|
|
+ ) numbers
|
|
|
+ WHERE numbers.n <![CDATA[ <= ]]> (LENGTH(r.PATH_) - LENGTH(REPLACE(r.PATH_, '.', '')) + 1)
|
|
|
+ ) path_ids
|
|
|
+ LEFT JOIN IBPS_AUTH_RES parent_res ON parent_res.ID_ = path_ids.pid
|
|
|
+ WHERE parent_res.ID_ IS NULL OR parent_res.DISPLAY_IN_MENU_ != 'Y'
|
|
|
+ )
|
|
|
+ ) t
|
|
|
+ <if test="resourceNameFilter != null and resourceNameFilter != ''">
|
|
|
+ WHERE t.displayName LIKE CONCAT('%', #{resourceNameFilter}, '%')
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 查询有效的角色-资源权限关系 -->
|
|
|
+ <select id="getValidRoleResources" resultType="com.lc.ibps.org.party.persistence.entity.RoleResourceDO">
|
|
|
+ SELECT DISTINCT
|
|
|
+ rr.ROLE_ID_ AS roleId,
|
|
|
+ rr.RES_ID_ AS resId
|
|
|
+ FROM IBPS_AUTH_ROLE_RES rr
|
|
|
+ WHERE EXISTS (
|
|
|
+ SELECT 1 FROM IBPS_PARTY_ROLE r WHERE r.ID_ = rr.ROLE_ID_
|
|
|
+ )
|
|
|
+ AND EXISTS (
|
|
|
+ SELECT 1 FROM IBPS_AUTH_RES r WHERE r.ID_ = rr.RES_ID_ AND r.DISPLAY_IN_MENU_ = 'Y'
|
|
|
+ )
|
|
|
+ </select>
|
|
|
+
|
|
|
+
|
|
|
+ <select id="getAllDisplayableResources" resultType="com.lc.ibps.org.party.persistence.entity.ResourceRawDO">
|
|
|
+ SELECT
|
|
|
+ ID_ AS id,
|
|
|
+ NAME_ AS name,
|
|
|
+ SN_ AS sn,
|
|
|
+ PARENT_ID_ AS parentId,
|
|
|
+ PATH_ AS path,
|
|
|
+ DISPLAY_IN_MENU_ AS displayInMenu
|
|
|
+ FROM IBPS_AUTH_RES
|
|
|
+ WHERE DISPLAY_IN_MENU_ = 'Y'
|
|
|
+ AND ID_ NOT IN (
|
|
|
+ select ID_ from IBPS_AUTH_RES
|
|
|
+ where PATH_ LIKE CONCAT('%', (select ID_ from IBPS_AUTH_RES where NAME_ = '系统管理' limit 1), '%')
|
|
|
+ )
|
|
|
+ </select>
|
|
|
+
|
|
|
+
|
|
|
+ <select id="getAllUsers" resultType="com.lc.ibps.org.party.persistence.entity.UserDO">
|
|
|
+ SELECT
|
|
|
+ ID_ AS id,
|
|
|
+ NAME_ AS name,
|
|
|
+ JOB_ AS job
|
|
|
+ FROM IBPS_PARTY_EMPLOYEE
|
|
|
+ WHERE STATUS_ != 'deleted'
|
|
|
+ <if test="userName != null and userName != ''">
|
|
|
+ AND NAME_ LIKE CONCAT('%', #{userName}, '%')
|
|
|
+ </if>
|
|
|
+ ORDER BY NAME_
|
|
|
+ </select>
|
|
|
+
|
|
|
+</mapper>
|