zhangnaisong
2024-04-29 f1ff9de1513d07ea0baede12a4d7953dc5a00ac4
ard-work/src/main/resources/mapper/alarmpoints/ArdWallMapper.xml
@@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.alarmpoints.elecwall.mapper.ArdWallMapper">
<mapper namespace="com.ruoyi.alarmpoints.wall.mapper.ArdWallMapper">
    
    <resultMap type="ArdWall" id="ArdWallResult">
        <result property="id"    column="id"    />
@@ -16,6 +16,32 @@
        <result property="createTime"    column="create_time"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
        <!-- 子查询,关联 ard_dispatch_police_user 表 -->
        <collection property="sysUserList" ofType="java.util.List" select="getSysUserListByMainTableId" column="id"/>
    </resultMap>
    <resultMap type="ArdWall" id="ArdWallOnlyResult">
        <result property="id"    column="id"    />
        <result property="wallName"    column="wall_name"    />
        <result property="wallPoi"    column="wall_poi"    />
        <result property="type"    column="type"    />
        <result property="color"    column="color"    />
        <result property="deptId"    column="dept_id"    />
        <result property="userId"    column="user_id"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
    </resultMap>
    <select id="getSysUserListByMainTableId" resultType="SysUser">
        SELECT u.*
        FROM ard_wall_user b
        left join sys_user u on b.user_id = u.user_id
        WHERE wall_id = #{id}
    </select>
    <resultMap type="SysUser" id="SysUserListResult">
        <result property="userId" column="sub_user_id"/>
        <result property="nickName" column="sub_nick_name"/>
        <result property="deptId" column="sub_dept_id"/>
    </resultMap>
    <sql id="selectArdWallVo">
@@ -29,8 +55,10 @@
            <if test="wallPoi != null  and wallPoi != ''"> and wall_poi = #{wallPoi}</if>
            <if test="type != null  and type != ''"> and type = #{type}</if>
            <if test="color != null  and color != ''"> and color = #{color}</if>
            <if test="deptId != null "> and dept_id = #{deptId}</if>
            <if test="userId != null  and userId != ''"> and user_id = #{userId}</if>
            <if test="deptId != null ">and (dept_id = #{deptId} OR dept_id IN ( SELECT t.dept_id FROM sys_dept t
                WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
            </if>
        </where>
    </select>
    
@@ -96,4 +124,35 @@
            #{id}
        </foreach>
    </delete>
    <insert id="batchArdWallUser">
        insert into ard_wall_user( wall_id, user_id) values
        <foreach item="item" index="index" collection="list" separator=",">
            ( #{item.wallId}, #{item.userId})
        </foreach>
    </insert>
    <delete id="deleteArdWallUserByWallId" parameterType="String">
        delete
        from ard_wall_user
        where wall_id = #{wallId}
    </delete>
    <delete id="deleteArdWallUserByWallIds" parameterType="String">
        delete from ard_wall_user where wall_id in
        <foreach item="wallId" collection="array" open="(" separator="," close=")">
            #{wallId}
        </foreach>
    </delete>
    <select id="selectArdWallListByUserId" parameterType="String"  resultMap="ArdWallResult">
        SELECT
            aw.*
        FROM
            ard_wall aw
                LEFT JOIN ard_wall_user awu ON awu.wall_id = aw.ID
        WHERE
            awu.user_id =  #{userId}
    </select>
    <select id="getArdWallListByUserId" parameterType="java.lang.String"  resultMap="ArdWallOnlyResult">
        select aw.* from ard_wall_user awu
        inner join ard_wall aw on awu.wall_id = aw.id
        where awu.user_id = #{userId}
    </select>
</mapper>