109 lines
3.7 KiB
XML
109 lines
3.7 KiB
XML
<?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="cn.axzo.tyr.server.repository.mapper.SaasRoleMapper">
|
|
|
|
|
|
<select id="listRoleUserByIdentity" resultType="cn.axzo.tyr.server.repository.entity.SaasRoleWithUser">
|
|
SELECT
|
|
ru.id AS relationId,
|
|
r.id AS roleId,
|
|
r.`name` AS roleName,
|
|
r.role_type AS roleType,
|
|
r.workspace_id AS workspaceId,
|
|
ru.identity_id AS identityId,
|
|
ru.identity_type AS identityType,
|
|
ru.natural_person_id AS naturalPersonId,
|
|
ru.ou_id AS ouId,
|
|
ru.workspace_id AS relationWorkspaceId
|
|
FROM
|
|
saas_role r,
|
|
saas_role_user_relation ru
|
|
WHERE
|
|
ru.role_id = r.id
|
|
AND r.is_delete = 0
|
|
AND ru.is_delete = 0
|
|
AND ru.identity_id = #{identityId}
|
|
AND ru.identity_type = #{identityType}
|
|
</select>
|
|
|
|
<select id="listSuperAdminByWorkspace" resultType="cn.axzo.tyr.server.repository.entity.SaasRoleWithUser">
|
|
SELECT
|
|
ru.id AS relationId,
|
|
r.id AS roleId,
|
|
r.`name` AS roleName,
|
|
r.role_type AS roleType,
|
|
r.workspace_id AS workspaceId,
|
|
ru.identity_id AS identityId,
|
|
ru.identity_type AS identityType,
|
|
ru.natural_person_id AS naturalPersonId,
|
|
ru.ou_id AS ouId,
|
|
ru.workspace_id AS relationWorkspaceId
|
|
FROM
|
|
saas_role r,
|
|
saas_role_user_relation ru
|
|
WHERE
|
|
ru.role_id = r.id
|
|
AND r.is_delete = 0
|
|
AND ru.is_delete = 0
|
|
AND r.role_type='super_admin'
|
|
AND r.workspace_id IN
|
|
<foreach collection="workspaceIds" open="(" close=")" separator="," index="index" item="item">
|
|
#{item, jdbcType=NUMERIC}
|
|
</foreach>
|
|
</select>
|
|
|
|
<select id="listRoleUserByPermissionGroup" resultType="cn.axzo.tyr.server.repository.entity.SaasRoleWithUser">
|
|
SELECT DISTINCT
|
|
ru.id AS relationId,
|
|
r.id AS roleId,
|
|
r.`name` AS roleName,
|
|
r.role_type AS roleType,
|
|
r.workspace_id AS workspaceId,
|
|
ru.identity_id AS identityId,
|
|
ru.identity_type AS identityType,
|
|
ru.natural_person_id AS naturalPersonId,
|
|
ru.ou_id AS ouId,
|
|
ru.workspace_id AS relationWorkspaceId
|
|
FROM
|
|
saas_pgroup_role_relation rg,
|
|
saas_role_user_relation ru,
|
|
saas_role r
|
|
WHERE
|
|
rg.role_id = ru.role_id
|
|
AND ru.role_id = r.id
|
|
AND rg.is_delete = 0
|
|
AND ru.is_delete = 0
|
|
AND r.is_delete = 0
|
|
<if test="permissionGroupIds != null">
|
|
AND rg.group_id IN
|
|
<foreach collection="permissionGroupIds" open="(" close=")" separator="," index="index" item="item">
|
|
#{item, jdbcType=NUMERIC}
|
|
</foreach>
|
|
</if>
|
|
<if test="workspaceIds != null">
|
|
AND r.workspace_id IN
|
|
<foreach collection="workspaceIds" open="(" close=")" separator="," index="index" item="item">
|
|
#{item, jdbcType=NUMERIC}
|
|
</foreach>
|
|
</if>
|
|
|
|
</select>
|
|
|
|
<select id="pageQueryForOUWorkspace" resultType="cn.axzo.tyr.server.repository.entity.SaasRole">
|
|
SELECT
|
|
r.*
|
|
FROM
|
|
saas_role r
|
|
LEFT JOIN saas_role_group_relation rg ON r.id = rg.role_id
|
|
LEFT JOIN saas_role_group g ON rg.saas_role_group_id = g.id
|
|
WHERE
|
|
r.is_delete = 0
|
|
AND (
|
|
( r.workspace_id = #{workspaceId} AND r.owner_ou_id = #{ouId} AND r.role_type = 'common' )
|
|
OR
|
|
( r.owner_ou_id = - 1 AND FIND_IN_SET( #{workspaceJoinType},g.ou_type_code) > 0)
|
|
)
|
|
</select>
|
|
|
|
</mapper> |