<?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.BigScreenMapper">

    <select id="getCpuAndMemoryPay" resultType="cn.roadm.bo.BigScreenDO">
        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 ORDER BY id DESC  LIMIT 1
    </select>

    <select id="getDiskPay" resultType="cn.roadm.bo.BigScreenDO">
        SELECT disk_payload AS diskPayload
    FROM platform_disk_monitor ORDER BY id DESC  LIMIT 1
    </select>

    <select id="getChannelTop10" resultType="cn.roadm.bo.BigScreenDO">
        select sum(IFNULL(spp.submit_succ, 0) + IFNULL(spp.submit_fail, 0))*3 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 8
    </select>

    <select id="getOtypeSend" resultType="cn.roadm.bo.BigScreenDO">
        select
        sum(IFNULL(spp.submit_succ,0) + IFNULL(spp.submit_fail, 0))*3 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="getSendTotalEchartsData" resultType="cn.roadm.bo.BigScreenDO">
        Select date_format(sr.createtime, '%Y-%m-%d %H:%i')                      `time`,
        sum(IFNULL(sr.all_number, 0)) + sum(IFNULL(sr.submit_fail, 0))*3 as allNumber,
        sum(IFNULL(sr.all_number, 0))*3                                  as submitSucc,
        sum(IFNULL(sr.submit_fail, 0))*3                                 as submitFail,
        sum(IFNULL(sr.arrive_succ, 0))*3                                 as arriveSucc,
        sum(IFNULL(sr.arrive_fail, 0))*3                                 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.bo.BigScreenDO">
        select sp.sp_name as spName, sp.id as spId, sum(IFNULL(tk.allnumber, 0))*3 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 8
    </select>

    <select id="getProvince" resultType="cn.roadm.bo.BigScreenDO">
        select sum(IFNULL(spp.submit_succ, 0) + IFNULL(spp.submit_fail, 0))*3 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
    </select>

    <select id="getTodaySendTotal" resultType="java.lang.Long">
        select sum(IFNULL(tk.allnumber, 0))*3
        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="getSpSend" resultType="cn.roadm.bo.BigScreenDO">
        SELECT
            sp.sp_name AS spName,
            sp.id AS spId,
            sp.ip AS ipAddress
        FROM
            sms_sp_info sp WHERE
            NOT EXISTS ( SELECT 1 FROM
                (SELECT spid FROM sms_sp_summary WHERE stat_time >= str_to_date(#{startTime}, '%Y-%m-%d') GROUP BY spid  UNION ALL
                 SELECT spid FROM mms_sp_summary WHERE stat_time >= str_to_date(#{startTime}, '%Y-%m-%d') GROUP BY spid  UNION ALL
                 SELECT spid FROM inter_sp_summary WHERE stat_time >= str_to_date(#{startTime}, '%Y-%m-%d') GROUP BY spid
                ) AS summary WHERE sp.id = summary.spid )
                             AND sp.is_lock = 1 AND sp.`status` = 1 and is_web = 1 and sp.createtime  &lt; str_to_date(#{startTime}, '%Y-%m-%d')
                              AND noProfit != 1;
    </select>

    <select id="getWebSpSend" resultType="cn.roadm.bo.SpInfo">
        SELECT
            sp.sp_name,
            sp.id AS spid,
            sp.ip,
            sp.is_web,
            sp.web_send_flag
        FROM
            sms_sp_info sp WHERE
            NOT EXISTS ( SELECT 1 FROM
                (SELECT SP_ID as spid  FROM sms_send_task  GROUP BY SP_ID
                ) AS summary WHERE sp.id = summary.spid )
                             AND sp.is_lock = 1 AND sp.`status` = 1 and sp.createtime &lt; str_to_date(#{startTime}, '%Y-%m-%d')
                             AND noProfit != 1;
    </select>

    <select id="getWebSendSpid" resultType="cn.roadm.bo.SpInfo">
        SELECT
            sp.sp_name,
            sp.id AS spid,
            sp.ip,
            sp.is_web,
            sp.web_send_flag
        FROM
            sms_sp_info sp WHERE
            EXISTS ( SELECT 1 FROM
                (SELECT SP_ID as spid  FROM sms_send_task  GROUP BY SP_ID
                ) AS summary WHERE sp.id = summary.spid )
                             AND sp.is_lock = 1 AND sp.`status` = 1 and enableClientSms = 0
                             AND noProfit != 1;
    </select>

</mapper>
