tyr/tyr-server/src/main/resources/mapper/SaasRoleMapper.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>