SmsSendconfigMapper.xml 4.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.yc.ship.module.trade.dal.mysql.smsSendconfig.SmsSendconfigMapper">
  4. <!--
  5. 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
  6. 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
  7. 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
  8. 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
  9. -->
  10. <select id="querySendList" resultType="com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigQueryRespVO">
  11. select * from (
  12. select t1.*,t2.product_id,t3.product_name,tt2.short_name,t4.order_no,t3.use_date,count(1)
  13. 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
  14. system_sms_sendconfig t1
  15. inner join system_sms_product t2 on t1.id = t2.sms_template_id
  16. inner join trade_detail t3 on t2.product_id = t3.product_id
  17. inner join product_spu tt2 on t3.product_id = tt2.id
  18. inner join trade_order t4 on t3.order_id = t4.id
  19. inner join trade_order_user t5 on t4.id=t5.order_id
  20. left join product_route_plan t6 on t4.route_plan_id = t6.id
  21. inner join sanxia_system.system_sms_template t7 on t1.sms_template_id=t7.id
  22. inner join sanxia_system.system_sms_channel t8 on t8.id = t7.channel_id
  23. where t3.use_date <![CDATA[ >= ]]> DATE_SUB(CURDATE(), INTERVAL 0 DAY) and t3.use_date <![CDATA[ <=]]>
  24. DATE_SUB(CURDATE(), INTERVAL -1 DAY)
  25. and t3.voucher_status in (1,2)
  26. and t1.deleted = 0
  27. and t2.deleted = 0
  28. and t7.deleted = 0
  29. and t1.is_use = 1
  30. <if test="id != null">
  31. AND t1.id = #{id}
  32. </if>
  33. <if test="type != null and type == 0">
  34. AND t1.send_type = 2
  35. </if>
  36. GROUP BY t1.id,t4.id
  37. UNION ALL
  38. select t1.*,t2.product_id,t3.product_name,tt2.short_name,t4.order_no,t3.use_date,count
  39. (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
  40. from system_sms_sendconfig t1
  41. inner join system_sms_product t2 on t1.id = t2.sms_template_id
  42. inner join trade_order t4 on t2.product_id = t4.route_plan_id
  43. inner join trade_detail t3 on t3.order_id = t4.id
  44. inner join product_spu tt2 on t3.product_id = tt2.id
  45. inner join trade_order_user t5 on t4.id=t5.order_id
  46. left join product_route_plan t6 on t4.route_plan_id = t6.id
  47. inner join sanxia_system.system_sms_template t7 on t1.sms_template_id=t7.id
  48. inner join sanxia_system.system_sms_channel t8 on t8.id = t7.channel_id
  49. where t3.use_date <![CDATA[ >= ]]> DATE_SUB(CURDATE(), INTERVAL 0 DAY) and t3.use_date <![CDATA[ <= ]]> DATE_SUB(CURDATE(), INTERVAL -1 DAY)
  50. and t3.voucher_status in (1,2)
  51. and t1.deleted = 0
  52. and t2.deleted = 0
  53. and t7.deleted = 0
  54. and t1.is_use = 1
  55. <if test="id != null">
  56. AND t1.id = #{id}
  57. </if>
  58. <if test="type != null and type == 0">
  59. AND t1.send_type = 2
  60. </if>
  61. GROUP BY t1.id,t4.id
  62. ) m where not EXISTS (
  63. 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
  64. )
  65. </select>
  66. <select id="querySendLogList" resultType="com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigQueryRespVO">
  67. select t1.*,t3.product_id,t3.product_name,tt2.short_name,t3.use_date,count(1)
  68. num,t2.source_name,t5.contact_name,t6.`name` as routeName from
  69. system_sms_send_log t1
  70. inner join trade_order t2 on t1.order_no = t2.order_no
  71. inner join trade_detail t3 on t2.id = t3.order_id
  72. inner join product_spu tt2 on t3.product_id = tt2.id
  73. inner join trade_order_user t5 on t2.id=t5.order_id
  74. left join product_route_plan t6 on t2.route_plan_id = t6.id
  75. where 1=1
  76. <if test="param.smsConfigId != null">
  77. AND t1.sms_config_id = #{param.smsConfigId}
  78. </if>
  79. <if test="param.travelDate != null and param.travelDate!=''">
  80. AND t3.use_date = #{param.travelDate}
  81. </if>
  82. <if test="param.contact != null and param.contact!=''">
  83. AND (t5.contact_name = #{param.contact} or t1.mobile = #{param.contact})
  84. </if>
  85. GROUP BY t1.id
  86. order by t1.create_time desc
  87. </select>
  88. </mapper>