TradeVisitorMapper.xml 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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.order.TradeVisitorMapper">
  4. <select id="selectVisitorListBySupplierOrder"
  5. resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO">
  6. select v.*,d.voucher_code
  7. FROM trade_detail_base db
  8. INNER JOIN trade_detail d on d.id = db.detail_id
  9. INNER JOIN trade_visitor v on v.detail_id = d.id
  10. <where>
  11. db.plat_supplier_order_id = #{platSupplierOrderId}
  12. </where>
  13. group by v.id
  14. order by v.detail_id
  15. </select>
  16. <select id="selectVisitorListBySpecType"
  17. resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO">
  18. select v.*
  19. FROM trade_detail_base db
  20. INNER JOIN trade_detail d on d.id = db.detail_id
  21. INNER JOIN trade_visitor v on v.detail_id = d.id
  22. <where>
  23. db.plat_supplier_order_id = #{platSupplierOrderId}
  24. and db.spec_type = #{specType}
  25. and db.product_base_id in
  26. <foreach collection="baseList" index="index" item="item" open="(" separator="," close=")">
  27. #{item}
  28. </foreach>
  29. </where>
  30. group by v.id
  31. order by v.detail_id
  32. </select>
  33. <select id="selectVisitorVoucherListByOrderId"
  34. resultType="com.yc.ship.module.trade.service.order.bo.TradeVisitorBO">
  35. select v.*,d.voucher_code,d.quantity_of_one
  36. FROM trade_detail d
  37. LEFT JOIN trade_visitor v on v.detail_id = d.id
  38. <where>
  39. d.order_id = #{orderId}
  40. </where>
  41. order by d.id
  42. </select>
  43. <select id="selectInsureVisitor"
  44. resultType="com.yc.ship.module.trade.service.order.bo.TradeVisitorBO">
  45. select tv.*,td.use_date
  46. from trade_detail td
  47. inner join trade_visitor tv on tv.detail_id = td.id
  48. <where>
  49. td.order_id =#{orderId} and td.voucher_status not in (4,5) and td.voucher_status>=1 and tv.is_insure =1
  50. and td.product_id=#{productId}
  51. </where>
  52. </select>
  53. <select id="selectContractVisitor"
  54. resultType="com.yc.ship.module.trade.service.order.bo.TradeVisitorBO">
  55. select tv.*,td.use_date
  56. from trade_detail td
  57. inner join trade_visitor tv on tv.detail_id = td.id
  58. <where>
  59. td.order_id =#{orderId} and td.voucher_status not in (4,5) and td.voucher_status>=1
  60. and td.product_id=#{productId}
  61. </where>
  62. </select>
  63. <select id="selectSupplierVisitor"
  64. resultType="com.yc.ship.module.trade.service.order.bo.TradeVisitorBO">
  65. select tdb.supplier_voucher_code, v.*
  66. from trade_detail_base tdb
  67. inner join trade_visitor v on v.detail_id = tdb.detail_id
  68. <where>
  69. tdb.plat_supplier_order_id = #{platSupplierOrderId}
  70. <if test="visitorIdList!=null">
  71. and v.id in
  72. <foreach collection="visitorIdList" item="item" separator="," open="(" close=")">
  73. #{item}
  74. </foreach>
  75. </if>
  76. </where>
  77. </select>
  78. <select id="selectShipVisitor"
  79. resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO">
  80. select t.product_type productType,v.*,t3.id_card jzCard,t3.arrive_time jzTime,t3.phone jzPhone,t3.address jzAddress from trade_detail t inner join trade_visitor v on v.detail_id = t.id
  81. left join trade_order_jz_detail t3 on v.credential_no = t3.id_card and t3.deleted =0
  82. where t.order_id = #{orderId} and v.deleted =0 and t.product_type =0 and t.deleted =0
  83. group by v.id
  84. </select>
  85. <select id="queryRelatedVisitor"
  86. resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO">
  87. SELECT v1.*, v2.id associatedVisitorId
  88. FROM trade_visitor v1
  89. INNER JOIN trade_visitor v2 ON v2.ota_detail_id = v1.detail_id
  90. WHERE v2.id in
  91. <foreach collection="visitorIds" item="item" separator="," open="(" close=")">
  92. #{item}
  93. </foreach>
  94. UNION ALL
  95. SELECT v1.*, v2.id associatedVisitorId
  96. FROM trade_visitor v1
  97. INNER JOIN trade_visitor v2 ON v2.detail_id = v1.ota_detail_id
  98. WHERE v2.id in
  99. <foreach collection="visitorIds" item="item" separator="," open="(" close=")">
  100. #{item}
  101. </foreach>
  102. </select>
  103. <select id="selectVisitorListByDate" resultType="com.yc.ship.module.trade.service.order.bo.TradeVisitorBO">
  104. select tv.*,td.product_name,td.spec_type,td.use_date,prp.name planName
  105. from trade_detail td
  106. inner join trade_order tt on td.order_id = tt.id
  107. left join product_route_plan prp on tt.route_plan_id = prp.id
  108. inner join trade_visitor tv on td.id = tv.detail_id
  109. inner join trade_detail_base tdb on td.id = tdb.detail_id
  110. where td.use_date =#{useDate} and tv.credential_no is not null
  111. and tdb.project_code='boat'
  112. and tv.is_push is null
  113. and td.voucher_status in (1,2,4,8,9)
  114. <if test="orderId!=null">
  115. and td.order_id = #{orderId}
  116. </if>
  117. <if test="tenantId!=null">
  118. and td.tenant_id = #{tenantId}
  119. </if>
  120. GROUP BY td.id,tv.id
  121. order by tv.create_time asc
  122. </select>
  123. <select id="selectBoatVisitorListByRefund" resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO">
  124. select tv.*
  125. from trade_refund tr
  126. INNER JOIN trade_refund_detail_base trdb on trdb.refund_id = tr.id
  127. INNER JOIN trade_detail_base tdb on tdb.id = trdb.trade_detail_base_id
  128. INNER JOIN trade_visitor tv on tv.detail_id = trdb.trade_detail_id
  129. where tr.id = #{refundId} and tdb.project_code = 'boat'
  130. <if test="useDate!=null">
  131. and tdb.use_date = #{useDate}
  132. </if>
  133. GROUP BY tv.id
  134. </select>
  135. <select id="selectOrderVisitorCount" resultType="java.lang.Integer">
  136. select count(*) totalCount
  137. from trade_detail td
  138. INNER JOIN trade_visitor tv on tv.detail_id = td.id
  139. where td.order_id = #{orderId}
  140. and td.voucher_status !=5
  141. </select>
  142. </mapper>