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

    <select id="listPageNotReportedSignChannel" resultType="cn.roadm.admin.dto.NotReportedSignChannelDTO">
        select snrc.id,
               snrc.spid as spId,
               ifnull(si.sp_name, '全部') as spName,
               snrc.oldchannel as oldChannel,
               oldCh.channel_name as oldChannelName,
               snrc.newchannel as newChannel,
               newCh.channel_name as newChannelName,
               date_format(snrc.createtime, '%Y-%m-%d %H:%i:%s') as createTime
        from sms_sign_not_register_channel snrc
                 left join sms_sp_info si on snrc.spid = si.id
                 left join sms_send_channel_info oldCh on oldCh.id = snrc.oldchannel
                 left join sms_send_channel_info newCh on newCh.id = snrc.newchannel
        <where>
            <if test="reqVO.spId != null">
                and snrc.spid = #{reqVO.spId}
            </if>
            <if test="reqVO.oldChannel != null">
                and snrc.oldchannel = #{reqVO.oldChannel}
            </if>
            <if test="reqVO.newChannel != null">
                and snrc.newchannel = #{reqVO.newChannel}
            </if>
            <if test="reqVO.startTime != null and reqVO.startTime != ''">
                and snrc.createtime &gt;= str_to_date(#{reqVO.startTime}, '%Y-%m-%d')
            </if>
            <if test="reqVO.endTime != null and reqVO.endTime != ''">
                and snrc.createtime &lt; DATE_ADD(str_to_date(#{reqVO.endTime}, '%Y-%m-%d'), INTERVAL 1 DAY)
            </if>
        </where>
        order by snrc.id desc
    </select>

    <select id="getNotReportedSignChannelDetail" resultType="cn.roadm.admin.dto.NotReportedSignChannelDTO">
        select snrc.id,
               snrc.spid as spId,
               ifnull(si.sp_name, '全部') as spName,
               snrc.oldchannel as oldChannel,
               oldCh.channel_name as oldChannelName,
               snrc.newchannel as newChannel,
               newCh.channel_name as newChannelName,
               date_format(snrc.createtime, '%Y-%m-%d %H:%i:%s') as createTime
        from sms_sign_not_register_channel snrc
                 left join sms_sp_info si on snrc.spid = si.id
                 left join sms_send_channel_info oldCh on oldCh.id = snrc.oldchannel
                 left join sms_send_channel_info newCh on newCh.id = snrc.newchannel
        where snrc.id = #{id}
        limit 1
    </select>

    <select id="countExists" resultType="java.lang.Integer">
        select count(1)
        from sms_sign_not_register_channel
        where oldchannel = #{oldChannel}
        <choose>
            <when test="spId != null">
                and spid = #{spId}
            </when>
            <otherwise>
                and spid is null
            </otherwise>
        </choose>
        <if test="id != null">
            and id != #{id}
        </if>
    </select>

    <insert id="insertNotReportedSignChannel" useGeneratedKeys="true" keyProperty="id">
        insert into sms_sign_not_register_channel(spid, oldchannel, newchannel, createtime)
        values (#{spId}, #{oldChannel}, #{newChannel}, now())
    </insert>

    <update id="updateNotReportedSignChannel">
        update sms_sign_not_register_channel
        <set>
            spid = #{spId},
            oldchannel = #{oldChannel},
            newchannel = #{newChannel}
        </set>
        where id = #{id}
    </update>

    <delete id="deleteNotReportedSignChannel">
        delete
        from sms_sign_not_register_channel
        where id = #{id}
    </delete>
</mapper>
