‘liusuyi’
2023-09-09 71dbac60afa54d2642c3471c080686da56579ca0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?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>
</mapper>