WholeProcessPlatform/backend/src/main/resources/mapper/system/SysUserTenantMapper.xml
2026-08-03 10:05:56 +08:00

58 lines
2.0 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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.yfd.platform.system.mapper.SysUserTenantMapper">
<!-- 查询用户可访问的门户ID列表 -->
<select id="getTenantIdsByUserId" resultType="java.lang.String">
SELECT TENANT_ID
FROM SYS_USER_TENANT
WHERE USER_ID = #{userId}
</select>
<!-- 批量删除用户-门户关联 -->
<delete id="deleteByUserId">
DELETE FROM SYS_USER_TENANT WHERE USER_ID = #{userId}
</delete>
<!-- 批量新增用户-门户关联(使用 MERGE 兼容 Oracle -->
<insert id="batchInsert">
MERGE INTO SYS_USER_TENANT T
USING (
<foreach collection="tenantIds" item="tenantId" index="index" separator="UNION ALL">
SELECT
#{userId, jdbcType=VARCHAR} AS USER_ID,
#{tenantId, jdbcType=VARCHAR} AS TENANT_ID
FROM DUAL
</foreach>
) S
ON (T.USER_ID = S.USER_ID AND T.TENANT_ID = S.TENANT_ID)
WHEN NOT MATCHED THEN
INSERT (ID, USER_ID, TENANT_ID)
VALUES (SYS_GUID(), S.USER_ID, S.TENANT_ID)
</insert>
<!-- 删除指定用户和指定门户的关联 -->
<delete id="deleteByUserIdAndTenantId">
DELETE FROM SYS_USER_TENANT WHERE USER_ID = #{userId} AND TENANT_ID = #{tenantId}
</delete>
<!-- 查询某门户下的所有用户ID -->
<select id="getUserIdsByTenantId" resultType="java.lang.String">
SELECT USER_ID FROM SYS_USER_TENANT WHERE TENANT_ID = #{tenantId}
</select>
<!-- 批量查询用户-门户关联 -->
<select id="getTenantIdsByUserIds" resultType="java.util.HashMap">
SELECT
USER_ID AS "userId",
TENANT_ID AS "tenantId"
FROM SYS_USER_TENANT
WHERE USER_ID IN
<foreach collection="userIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper>