| <?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.ruoyi.alarmpoints.wall.mapper.ArdWallMapper"> | 
|      | 
|     <resultMap type="ArdWall" id="ArdWallResult"> | 
|         <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"    /> | 
|         <!-- 子查询,关联 ard_dispatch_police_user 表 --> | 
|         <collection property="sysUserList" ofType="java.util.List" select="getSysUserListByMainTableId" column="id"/> | 
|     </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"> | 
|         select id, wall_name, wall_poi, type, color, dept_id, user_id, create_by, create_time, update_by, update_time from ard_wall | 
|     </sql> | 
|   | 
|     <select id="selectArdWallList" parameterType="ArdWall" resultMap="ArdWallResult"> | 
|         <include refid="selectArdWallVo"/> | 
|         <where>   | 
|             <if test="wallName != null  and wallName != ''"> and wall_name like '%'||#{wallName}||'%'</if> | 
|             <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="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> | 
|      | 
|     <select id="selectArdWallById" parameterType="String" resultMap="ArdWallResult"> | 
|         <include refid="selectArdWallVo"/> | 
|         where id = #{id} | 
|     </select> | 
|          | 
|     <insert id="insertArdWall" parameterType="ArdWall"> | 
|         insert into ard_wall | 
|         <trim prefix="(" suffix=")" suffixOverrides=","> | 
|             <if test="id != null">id,</if> | 
|             <if test="wallName != null">wall_name,</if> | 
|             <if test="wallPoi != null">wall_poi,</if> | 
|             <if test="type != null">type,</if> | 
|             <if test="color != null">color,</if> | 
|             <if test="deptId != null">dept_id,</if> | 
|             <if test="userId != null">user_id,</if> | 
|             <if test="createBy != null">create_by,</if> | 
|             <if test="createTime != null">create_time,</if> | 
|             <if test="updateBy != null">update_by,</if> | 
|             <if test="updateTime != null">update_time,</if> | 
|          </trim> | 
|         <trim prefix="values (" suffix=")" suffixOverrides=","> | 
|             <if test="id != null">#{id},</if> | 
|             <if test="wallName != null">#{wallName},</if> | 
|             <if test="wallPoi != null">#{wallPoi},</if> | 
|             <if test="type != null">#{type},</if> | 
|             <if test="color != null">#{color},</if> | 
|             <if test="deptId != null">#{deptId},</if> | 
|             <if test="userId != null">#{userId},</if> | 
|             <if test="createBy != null">#{createBy},</if> | 
|             <if test="createTime != null">#{createTime},</if> | 
|             <if test="updateBy != null">#{updateBy},</if> | 
|             <if test="updateTime != null">#{updateTime},</if> | 
|          </trim> | 
|     </insert> | 
|   | 
|     <update id="updateArdWall" parameterType="ArdWall"> | 
|         update ard_wall | 
|         <trim prefix="SET" suffixOverrides=","> | 
|             <if test="wallName != null">wall_name = #{wallName},</if> | 
|             <if test="wallPoi != null">wall_poi = #{wallPoi},</if> | 
|             <if test="type != null">type = #{type},</if> | 
|             <if test="color != null">color = #{color},</if> | 
|             <if test="deptId != null">dept_id = #{deptId},</if> | 
|             <if test="userId != null">user_id = #{userId},</if> | 
|             <if test="createBy != null">create_by = #{createBy},</if> | 
|             <if test="createTime != null">create_time = #{createTime},</if> | 
|             <if test="updateBy != null">update_by = #{updateBy},</if> | 
|             <if test="updateTime != null">update_time = #{updateTime},</if> | 
|         </trim> | 
|         where id = #{id} | 
|     </update> | 
|   | 
|     <delete id="deleteArdWallById" parameterType="String"> | 
|         delete from ard_wall where id = #{id} | 
|     </delete> | 
|   | 
|     <delete id="deleteArdWallByIds" parameterType="String"> | 
|         delete from ard_wall where id in  | 
|         <foreach item="id" collection="array" open="(" separator="," close=")"> | 
|             #{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> | 
| </mapper> |