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

    <select id="getChargeRecordListPageList" resultType="cn.roadm.admin.dto.SmsChargeRecordDTO">
        select sd.id,
        date_format( sd.charge_time,'%Y-%m-%d %H:%i:%s')
        charge_time,
        sd.sp_id,
        sd.chargenum,
        sd.chargeafternum,
        sd.chargeopeartor,
        sd.amount,
        case
        when sd.type=1 then '充值'
        when sd.type=2 then '扣减'
        else '其他类型'
        end as type,
        case
        when sd.pay_type=1 then '预支'
        when sd.pay_type=2 then '已支付'
        end as pay_type,
        sd.price,
        sd.descption,
        sp.sp_name
        from sms_charge_record sd, sms_sp_info sp
        <where>
            sp.id = sd.sp_id
            and sp.status!=2
            <if test="query.type!=null and query.type!=0">
                and sd.type = #{query.type}
            </if>
            <if test="query.spId!=null and query.spId!=0">
                and sp.id=#{query.spId}
            </if>
            <if test="query.month!=null and query.month!=''">
                and date_format(sd.charge_time ,'%Y-%m')=#{query.month}
            </if>
            <if test="query.startCreateTime!=null and query.startCreateTime!=''">
                and sd.charge_time&gt;=str_to_date(#{query.startCreateTime},'%Y-%m-%d')
            </if>
            <if test="query.endCreateTime!=null and query.endCreateTime!=''">
                and
                sd.charge_time&lt;=DATE_ADD(str_to_date(#{query.endCreateTime},'%Y-%m-%d'),INTERVAL 1 DAY)
            </if>
            <if test="query.spName!=null and query.spName!=''">
                and sp.sp_name like CONCAT('%',#{query.spName},'%')
            </if>
        </where>
        order by sd.charge_time desc
    </select>


    <select id="getChargeRecordTotal" parameterType="cn.roadm.admin.controller.vo.SmsChargeRecordVO"
            resultType="cn.roadm.admin.dto.SmsChargeRecordDTO">
        select sd.id,
        date_format( sd.charge_time,'%Y-%m-%d %H:%i:%s')
        charge_time,
        sd.sp_id,
        sd.chargenum,
        sd.chargeafternum,
        sd.chargeopeartor,
        sd.amount,
        case
        when sd.type=1 then '充值'
        when sd.type=2 then '扣减'
        else '其他类型'
        end as type,
        case
        when sd.pay_type=1 then '预支'
        when sd.pay_type=2 then '已支付'
        end as pay_type,
        sd.price,
        sd.descption,
        sp.sp_name
        from sms_charge_record sd, sms_sp_info sp
        <where>
            sp.id = sd.sp_id
            and sp.status!=2
            <if test="query.type!=null and query.type!=0">
                and sd.type = #{query.type}
            </if>
            <if test="query.spId!=null and query.spId!=0">
                and sp.id=#{query.spId}
            </if>
            <if test="query.month!=null and query.month!=''">
                and date_format(sd.charge_time ,'%Y-%m')=#{query.month}
            </if>
            <if test="query.startCreateTime!=null and query.startCreateTime!=''">
                and sd.charge_time&gt;=str_to_date(#{query.startCreateTime},'%Y-%m-%d')
            </if>
            <if test="query.endCreateTime!=null and query.endCreateTime!=''">
                and
                sd.charge_time&lt;=DATE_ADD(str_to_date(#{query.endCreateTime},'%Y-%m-%d'),INTERVAL 1 DAY)
            </if>
            <if test="query.spName!=null and query.spName!=''">
                and sp.sp_name like CONCAT('%',#{query.spName},'%')
            </if>
        </where>
        order by sd.charge_time desc
    </select>

</mapper>
