12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <?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="com.yc.ship.module.trade.dal.mysql.smsSendconfig.SmsSendconfigMapper">
- <!--
- 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
- 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
- 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
- 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
- -->
- <select id="querySendList" resultType="com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigQueryRespVO">
- select * from (
- select t1.*,t2.product_id,t3.product_name,tt2.short_name,t4.order_no,t3.use_date,count(1)
- num,t4.source_name,t5.contact_name,t5.mobile,t6.`name` as routeName,t7.api_template_id,t7.params templateParams,t8.api_key,t8.api_secret,t8.api_url,t8.signature,t8.code channelCode from
- system_sms_sendconfig t1
- inner join system_sms_product t2 on t1.id = t2.sms_template_id
- inner join trade_detail t3 on t2.product_id = t3.product_id
- inner join product_spu tt2 on t3.product_id = tt2.id
- inner join trade_order t4 on t3.order_id = t4.id
- inner join trade_order_user t5 on t4.id=t5.order_id
- left join product_route_plan t6 on t4.route_plan_id = t6.id
- inner join sanxia_system.system_sms_template t7 on t1.sms_template_id=t7.id
- inner join sanxia_system.system_sms_channel t8 on t8.id = t7.channel_id
- where t3.use_date <![CDATA[ >= ]]> DATE_SUB(CURDATE(), INTERVAL 0 DAY) and t3.use_date <![CDATA[ <=]]>
- DATE_SUB(CURDATE(), INTERVAL -1 DAY)
- and t3.voucher_status in (1,2)
- and t1.deleted = 0
- and t2.deleted = 0
- and t7.deleted = 0
- and t1.is_use = 1
- <if test="id != null">
- AND t1.id = #{id}
- </if>
- <if test="type != null and type == 0">
- AND t1.send_type = 2
- </if>
- GROUP BY t1.id,t4.id
- UNION ALL
- select t1.*,t2.product_id,t3.product_name,tt2.short_name,t4.order_no,t3.use_date,count
- (1) num,t4.source_name,t5.contact_name,t5.mobile,t6.`name` as routeName,t7.api_template_id,t7.params templateParams,t8.api_key,t8.api_secret,t8.api_url,t8.signature,t8.code channelCode
- from system_sms_sendconfig t1
- inner join system_sms_product t2 on t1.id = t2.sms_template_id
- inner join trade_order t4 on t2.product_id = t4.route_plan_id
- inner join trade_detail t3 on t3.order_id = t4.id
- inner join product_spu tt2 on t3.product_id = tt2.id
- inner join trade_order_user t5 on t4.id=t5.order_id
- left join product_route_plan t6 on t4.route_plan_id = t6.id
- inner join sanxia_system.system_sms_template t7 on t1.sms_template_id=t7.id
- inner join sanxia_system.system_sms_channel t8 on t8.id = t7.channel_id
- where t3.use_date <![CDATA[ >= ]]> DATE_SUB(CURDATE(), INTERVAL 0 DAY) and t3.use_date <![CDATA[ <= ]]> DATE_SUB(CURDATE(), INTERVAL -1 DAY)
- and t3.voucher_status in (1,2)
- and t1.deleted = 0
- and t2.deleted = 0
- and t7.deleted = 0
- and t1.is_use = 1
- <if test="id != null">
- AND t1.id = #{id}
- </if>
- <if test="type != null and type == 0">
- AND t1.send_type = 2
- </if>
- GROUP BY t1.id,t4.id
- ) m where not EXISTS (
- select p1.order_no from system_sms_send_log p1 where status = 1 and m.order_no=p1.order_no and p1.sms_config_id = m.id
- )
- </select>
- <select id="querySendLogList" resultType="com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigQueryRespVO">
- select t1.*,t3.product_id,t3.product_name,tt2.short_name,t3.use_date,count(1)
- num,t2.source_name,t5.contact_name,t6.`name` as routeName from
- system_sms_send_log t1
- inner join trade_order t2 on t1.order_no = t2.order_no
- inner join trade_detail t3 on t2.id = t3.order_id
- inner join product_spu tt2 on t3.product_id = tt2.id
- inner join trade_order_user t5 on t2.id=t5.order_id
- left join product_route_plan t6 on t2.route_plan_id = t6.id
- where 1=1
- <if test="param.smsConfigId != null">
- AND t1.sms_config_id = #{param.smsConfigId}
- </if>
- <if test="param.travelDate != null and param.travelDate!=''">
- AND t3.use_date = #{param.travelDate}
- </if>
- <if test="param.contact != null and param.contact!=''">
- AND (t5.contact_name = #{param.contact} or t1.mobile = #{param.contact})
- </if>
- GROUP BY t1.id
- order by t1.create_time desc
- </select>
- </mapper>
|