IotTerminalMapper.xml 10.0 KB
<?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.zhonglai.luhui.device.mapper.IotTerminalMapper">
    
    <resultMap type="IotTerminal" id="IotTerminalResult">
        <result property="device_id"    column="device_id"    />
        <result property="id"    column="id"    />
        <result property="name"    column="name"    />
        <result property="things_model_value"    column="things_model_value"    />
        <result property="update_time"    column="update_time"    />
        <result property="things_model_config"    column="things_model_config"    />
        <result property="product_id"    column="product_id"    />
        <result property="mqtt_username"    column="mqtt_username"    />
        <result property="data_update_time"    column="data_update_time"    />
        <result property="online"    column="online"    />
        <result property="user_info_id"    column="user_info_id"    />
        <result property="create_time"    column="create_time"    />
        <result property="sensor_number"    column="sensor_number"    />
        <result property="sys_user_id"    column="sys_user_id"    />
        <association property="userTerminalGroupRelation"    column="id" javaType="UserTerminalGroupRelation" resultMap="userTerminalGroupRelationResult" />
        <association property="iotDevice"    column="device_id" javaType="IotDevice" resultMap="iotDeviceResult" />
    </resultMap>

    <resultMap type="UserTerminalGroupRelation" id="userTerminalGroupRelationResult">
        <result property="create_time"    column="create_time"    />
        <result property="iot_terminal_group_id"    column="iot_terminal_group_id"    />
        <result property="iot_terminal_group_name"    column="iot_terminal_group_name"    />
        <result property="iot_terminal_id"    column="iot_terminal_id"    />
        <result property="user_info_id"    column="user_info_id"    />
    </resultMap>

    <resultMap type="IotDevice" id="iotDeviceResult">
        <result property="active_time"    column="active_time"    />
        <result property="client_id"    column="client_id"    />
        <result property="completion_auth"    column="completion_auth"    />
        <result property="create_by"    column="create_by"    />
        <result property="create_time"    column="create_time"    />
        <result property="del_flag"    column="del_flag"    />
        <result property="firmware_version"    column="firmware_version"    />
        <result property="img_url"    column="img_url"    />
        <result property="is_shadow"    column="is_shadow"    />
        <result property="latitude"    column="latitude"    />
        <result property="location_way"    column="location_way"    />
        <result property="longitude"    column="longitude"    />
        <result property="name"    column="d_name"    />
        <result property="network_address"    column="network_address"    />
        <result property="network_ip"    column="network_ip"    />
        <result property="remark"    column="remark"    />
        <result property="rssi"    column="rssi"    />
        <result property="status"    column="status"    />
        <result property="summary"    column="summary"    />
        <result property="things_model_value"    column="d_things_model_value"    />
        <result property="update_by"    column="update_by"    />
        <result property="update_time"    column="update_time"    />
        <result property="product_id"    column="product_id"    />
        <result property="mqtt_username"    column="mqtt_username"    />
        <result property="payload_type"    column="payload_type"    />
        <result property="things_model_config"    column="d_things_model_config"    />
        <result property="listen_service_ip"    column="listen_service_ip"    />
        <result property="device_life"    column="device_life"    />
        <result property="data_update_time"    column="d_data_update_time"    />
        <result property="label"    column="label"    />
        <result property="sys_user_id"    column="sys_user_id"    />
    </resultMap>

    <sql id="selectIotTerminalVo">
        select a.* from iot_terminal a
    </sql>

    <select id="selectIotTerminalList" parameterType="IotTerminal" resultMap="IotTerminalResult">
        <include refid="selectIotTerminalVo"/>
        LEFT JOIN `sys_user` u ON u.user_id = a.sys_user_id
        <where>
            <if test="device_id !=null and device_id != ''">
                and device_id = #{device_id}
            </if>
            <if test="name != null and name != ''">
                AND `name` like concat('%', #{name}, '%')
            </if>
            <if test="product_id !=null and product_id != ''">
                and product_id = #{product_id}
            </if>
            <if test="mqtt_username != null and mqtt_username != ''">
                AND `mqtt_username` like concat('%', #{mqtt_username}, '%')
            </if>
            <if test="sys_user_id !=null and sys_user_id != ''">
                and sys_user_id = #{sys_user_id}
            </if>
            <if test="params.dataScope !=null and params.dataScope!=''">
                <!-- 数据范围过滤 -->
                ${params.dataScope}
            </if>
        </where>
    </select>

    <select id="selectIotTerminalListByUserId" parameterType="IotTerminal" resultMap="IotTerminalResult">
        SELECT a.*,b.*,c.*,c.`name` d_name,c.`things_model_value` d_things_model_value,c.`things_model_config` d_things_model_config,c.`data_update_time` d_data_update_time FROM `iot_terminal` a LEFT JOIN `user_terminal_group_relation` b ON a.`id`=b.`iot_terminal_id` LEFT JOIN `iot_device` c ON c.client_id=a.`device_id`
        <where>
            <if test="device_id !=null and device_id != ''">
                and a.device_id = #{device_id}
            </if>
            <if test="name != null and name != ''">
                AND (a.`name` like concat('%', #{name}, '%') or a.`id` like concat('%', #{name}, '%') or a.device_id like concat('%', #{name}, '%'))
            </if>
            <if test="id != null and id != ''">
                AND a.`id` like concat('%', #{id}, '%')
            </if>
            <if test="product_id !=null and product_id != ''">
                and a.product_id = #{product_id}
            </if>
            <if test="mqtt_username != null and mqtt_username != ''">
                AND a.`mqtt_username` = #{mqtt_username}
            </if>
            and b.user_info_id = #{userTerminalGroupRelation.user_info_id}
        </where>
    </select>
    
    <select id="selectIotTerminalById" parameterType="String" resultMap="IotTerminalResult">
        <include refid="selectIotTerminalVo"/>
        where id = #{id}
    </select>
        
    <insert id="insertIotTerminal" parameterType="IotTerminal">
        insert into iot_terminal
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="device_id != null">device_id,</if>
            <if test="id != null and id != ''">id,</if>
            <if test="name != null">`name`,</if>
            <if test="things_model_value != null">things_model_value,</if>
            <if test="update_time != null">update_time,</if>
            <if test="things_model_config != null">things_model_config,</if>
            <if test="product_id != null">product_id,</if>
            <if test="mqtt_username != null">mqtt_username,</if>
            <if test="data_update_time != null">data_update_time,</if>
            <if test="sys_user_id != null and sys_user_id != ''">sys_user_id,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="device_id != null">#{device_id},</if>
            <if test="id != null and id != ''">#{id},</if>
            <if test="name != null">#{name},</if>
            <if test="things_model_value != null">#{things_model_value},</if>
            <if test="update_time != null">#{update_time},</if>
            <if test="things_model_config != null">#{things_model_config},</if>
            <if test="product_id != null">#{product_id},</if>
            <if test="mqtt_username != null">#{mqtt_username},</if>
            <if test="data_update_time != null">#{data_update_time},</if>
            <if test="sys_user_id != null">#{sys_user_id},</if>
         </trim>
    </insert>

    <update id="updateIotTerminal" parameterType="IotTerminal">
        update iot_terminal
        <trim prefix="SET" suffixOverrides=",">
            <if test="device_id != null">device_id = #{device_id},</if>
            <if test="name != null">`name` = #{name},</if>
            <if test="things_model_value != null">things_model_value = #{things_model_value},</if>
            <if test="update_time != null">update_time = #{update_time},</if>
            <if test="things_model_config != null">things_model_config = #{things_model_config},</if>
            <if test="product_id != null">product_id = #{product_id},</if>
            <if test="mqtt_username != null">mqtt_username = #{mqtt_username},</if>
            <if test="data_update_time != null">data_update_time = #{data_update_time},</if>
            <if test="sys_user_id != null">sys_user_id = #{sys_user_id},</if>
        </trim>
        where id = #{id}
    </update>

    <delete id="deleteIotTerminalById" parameterType="String">
        delete from iot_terminal where id = #{id}
    </delete>

    <delete id="deleteIotTerminalByDeviceId" parameterType="String">
        delete from iot_terminal where device_id = #{device_id}
    </delete>

    <delete id="deleteIotTerminalByIds" parameterType="String">
        delete from iot_terminal where id in 
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    <select id="selectNotUserIotTerminalListByImei" parameterType="String" resultMap="IotTerminalResult">
           SELECT a.* FROM `iot_terminal` a LEFT JOIN `user_terminal_group_relation` b ON a.`id`=b.`iot_terminal_id` WHERE b.user_info_id is null  AND a.`device_id`= #{device_id}
    </select>

</mapper>