<?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="cn.roadm.mapper.HomeMapper">

<select id="getSendTotalEchartsData" resultType="cn.roadm.bo.HomeSendTotalDO">
    Select date_format(sr.createtime, '%Y-%m-%d %H:%i')                      `time`,
           sum(IFNULL(sr.all_number, 0)) + sum(IFNULL(sr.submit_fail, 0)) as allNumber,
           sum(IFNULL(sr.all_number, 0))                                  as submitSucc,
           sum(IFNULL(sr.submit_fail, 0))                                 as submitFail,
           sum(IFNULL(sr.arrive_succ, 0))                                 as arriveSucc,
           sum(IFNULL(sr.arrive_fail, 0))                                 as arriveFail
    from sms_sp_delay_ratio sr
    <where>
        <if test="startTime != null and startTime != ''">
            sr.createtime &gt;= str_to_date(#{startTime}, '%Y-%m-%d %H:%i')
        </if>
        <if test="endTime != null and endTime != ''">
            and sr.createtime &lt; str_to_date(#{endTime}, '%Y-%m-%d %H:%i')
        </if>
    </where>
    group by `time`
    order by `time` desc
</select>

<select id="getTodaySendTotal" resultType="java.lang.Long">
    select sum(IFNULL(tk.allnumber, 0))
    from sms_sp_summary tk
    where tk.stat_time >= str_to_date(#{today}, '%Y-%m-%d')
      and tk.stat_time &lt; DATE_ADD(str_to_date(#{today}, '%Y-%m-%d'), INTERVAL 1 DAY);
</select>

<select id="getSpSendTop10" resultType="cn.roadm.bo.HomeSendTotalDO">
    select sp.sp_name as spName, sp.id as spId, sum(IFNULL(tk.allnumber, 0)) as allNumber
    from sms_sp_summary tk
             left join sms_sp_info sp on tk.spid = sp.id
    where tk.stat_time >= str_to_date(#{startTime}, '%Y-%m-%d')
      and tk.stat_time &lt; DATE_ADD(str_to_date(#{endTime}, '%Y-%m-%d'), INTERVAL 1 DAY)
    group by sp.id
    order by allNumber desc
    limit 10
</select>

<select id="getOtypeSend" resultType="cn.roadm.bo.HomeSendTotalDO">
    select
        sum(IFNULL(spp.submit_succ,0) + IFNULL(spp.submit_fail, 0)) as allNumber,
        spp.otype as otype
    from
        sms_sp_province_summary spp
    where spp.stat_time >= str_to_date(#{startTime},'%Y-%m-%d')
      and spp.stat_time &lt; DATE_ADD(str_to_date(#{endTime},'%Y-%m-%d'),INTERVAL 1 DAY)
    group by
    spp.otype
</select>

<select id="getChannelTop10" resultType="cn.roadm.bo.HomeSendTotalDO">
    select sum(IFNULL(spp.submit_succ, 0) + IFNULL(spp.submit_fail, 0)) as allNumber,
             spp.channelid as channelId, ci.CHANNEL_NAME as channelName
    from sms_sp_province_summary spp left join sms_send_channel_info ci on spp.channelid = ci.id
    where spp.stat_time >= str_to_date(#{startTime}, '%Y-%m-%d')
      and spp.stat_time &lt; DATE_ADD(str_to_date(#{endTime}, '%Y-%m-%d'), INTERVAL 1 DAY)
    group by spp.channelid
    order by allNumber desc
    limit 10
</select>

<select id="getProvinceTop10" resultType="cn.roadm.bo.HomeSendTotalDO">
    select sum(IFNULL(spp.submit_succ, 0) + IFNULL(spp.submit_fail, 0)) as allNumber,
                spp.province as province
    from sms_sp_province_summary spp
    where spp.stat_time >= str_to_date(#{startTime}, '%Y-%m-%d')
      and spp.stat_time &lt; DATE_ADD(str_to_date(#{endTime}, '%Y-%m-%d'), INTERVAL 1 DAY)
    group by spp.province
    order by allNumber desc
    limit 10
</select>

<select id="getCpuAndMemoryPayloadData" resultType="cn.roadm.bo.HomeSendTotalDO">
    select date_format(create_time, '%H:%i:%s') as `time`,
           max_memory as maxMemory,
           use_memory as useMemory,
           memory_payload as memoryPayload,
           cpu_payload as cpuPayload,
            agent_id as agentId
    from platform_machine_monitor
    where create_time &gt;= str_to_date(#{startTime}, '%Y-%m-%d %H:%i:%s')
      and create_time &lt; str_to_date(#{endTime}, '%Y-%m-%d %H:%i:%s')
</select>

<select id="getDiskPayloadData" resultType="cn.roadm.bo.HomeSendTotalDO">
    select date_format(create_time, '%H:%i:%s') as `time`,
           disk_payload as diskPayload, disk,
            agent_id as agentId
    from platform_disk_monitor
    where disk is not null and  create_time &gt;= str_to_date(#{startTime}, '%Y-%m-%d %H:%i:%s')
      and create_time &lt; str_to_date(#{endTime}, '%Y-%m-%d %H:%i:%s')
    </select>
</mapper>
