WholeProcessPlatform/backend/src/main/resources/mapper/system/SysUserTenantMapper.xml

58 lines
2.0 KiB
XML
Raw Normal View History

2026-08-03 10:05:56 +08:00
<?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>