<?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.admin.mapper.DashboardMapper">

    <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="selectListChannelId" resultType="java.lang.Integer">
        select id from sms_send_channel_info where STATUS = '1'
    </select>

    <select id="selectZxSmsDbUsedSize" resultType="java.lang.Long">
        SELECT ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) as size
        FROM information_schema.TABLES
        WHERE table_schema = 'zx_sms'
        GROUP BY table_schema;
    </select>

    <select id="selectMysqlBinLogResult" resultType="cn.roadm.admin.entity.MysqlBinLogResult">
        SHOW BINARY LOGS
    </select>

    <select id="getSendTotalEchartsData" resultType="cn.roadm.admin.dto.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="getSpSendTop10" resultType="cn.roadm.admin.dto.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="getCpuAndMemoryPayloadData" resultType="cn.roadm.admin.dto.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
        from platform_machine_monitor
        where agent_id = 'server1'
          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>

    <select id="getDiskPayloadData" resultType="cn.roadm.admin.dto.HomeSendTotalDO">
        select date_format(create_time, '%H:%i:%s') as `time`,
               disk_payload                         as diskPayload,
               disk
        from platform_disk_monitor
        where disk is not null
          and agent_id = 'server1'
          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>
