<?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.zc.business.mapper.OnlineLogMapper">

    <resultMap type="com.zc.business.domain.OnlineLog" id="OnlineLog">
        <result property="id" column="id"/>
        <result property="deviceId" column="device_id"/>
        <result property="deviceName" column="device_name"/>
        <result property="deviceIp" column="device_ip"/>
        <result property="stakeMark" column="stake_mark"/>
        <result property="deviceStatus" column="device_status"/>
        <result property="sendCount" column="send_count"/>
        <result property="receiveCount" column="receive_count"/>
        <result property="lossCount" column="loss_count"/>
        <result property="lossRate" column="loss_rate"/>
        <result property="networkQuality" column="network_quality"/>
        <result property="rttAvg" column="rtt_avg"/>
        <result property="monitorTime" column="monitor_time"/>
        <result property="onlineRate" column="online_rate"/>
    </resultMap>

    <insert id="addBatch">
        insert into dc_online_log
        (
         device_id,device_name,device_ip,stake_mark,device_status,send_count,
        receive_count,loss_count,loss_rate,network_quality,rtt_avg,monitor_time,online_rate
        )
        values
        <foreach collection="list" item="item" index="index" separator=",">
            (
            #{item.deviceId},
             #{item.deviceName},
             #{item.deviceIp},
             #{item.stakeMark},
             #{item.deviceStatus},
             #{item.sendCount},
             #{item.receiveCount},
             #{item.lossCount},
             #{item.lossRate},
             #{item.networkQuality},
             #{item.rttAvg},
             #{item.monitorTime},
            #{item.onlineRate}
            )
        </foreach>
    </insert>

    <select id="queryByDate" resultMap="OnlineLog">
        select id,device_id,device_name,device_ip,stake_mark,device_status,send_count,
               receive_count,loss_count,loss_rate,network_quality,rtt_avg,monitor_time,online_rate
        from dc_online_log where monitor_time between #{startTime} and #{endTime}
    </select>
    <select id="queryByDateAndDevice" resultMap="OnlineLog">
        select id,device_id,device_name,device_ip,stake_mark,device_status,send_count,
               receive_count,loss_count,loss_rate,network_quality,rtt_avg,monitor_time,online_rate
        from dc_online_log where device_id = #{deviceId} and monitor_time between #{startTime} and #{endTime}
        order by monitor_time desc
    </select>

</mapper>