TradeVisitorMapper.xml 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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="queryVisitorByOrderId" resultType="com.yc.ship.module.trade.controller.admin.order.vo.order.TradeVisitorRespVO">
  104. SELECT v1.*,t3.name nationalityName FROM trade_visitor v1 INNER JOIN trade_detail v2 ON v1.id = v2.visitor_id
  105. left join area t3 on v1.nationality = t3.id
  106. WHERE v2.order_id = #{orderId} and v1.deleted = 0 and v2.deleted = 0 and v2.product_type = 0
  107. </select>
  108. <select id="selectVisitorListByDate" resultType="com.yc.ship.module.trade.service.order.bo.TradeVisitorBO">
  109. select tv.*,td.product_name,td.spec_type,td.use_date,prp.name planName
  110. from trade_detail td
  111. inner join trade_order tt on td.order_id = tt.id
  112. left join product_route_plan prp on tt.route_plan_id = prp.id
  113. inner join trade_visitor tv on td.id = tv.detail_id
  114. inner join trade_detail_base tdb on td.id = tdb.detail_id
  115. where td.use_date =#{useDate} and tv.credential_no is not null
  116. and tdb.project_code='boat'
  117. and tv.is_push is null
  118. and td.voucher_status in (1,2,4,8,9)
  119. <if test="orderId!=null">
  120. and td.order_id = #{orderId}
  121. </if>
  122. <if test="tenantId!=null">
  123. and td.tenant_id = #{tenantId}
  124. </if>
  125. GROUP BY td.id,tv.id
  126. order by tv.create_time asc
  127. </select>
  128. <select id="selectBoatVisitorListByRefund" resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO">
  129. select tv.*
  130. from trade_refund tr
  131. INNER JOIN trade_refund_detail_base trdb on trdb.refund_id = tr.id
  132. INNER JOIN trade_detail_base tdb on tdb.id = trdb.trade_detail_base_id
  133. INNER JOIN trade_visitor tv on tv.detail_id = trdb.trade_detail_id
  134. where tr.id = #{refundId} and tdb.project_code = 'boat'
  135. <if test="useDate!=null">
  136. and tdb.use_date = #{useDate}
  137. </if>
  138. GROUP BY tv.id
  139. </select>
  140. <select id="selectOrderVisitorCount" resultType="java.lang.Integer">
  141. select count(*) totalCount
  142. from trade_detail td
  143. INNER JOIN trade_visitor tv on tv.detail_id = td.id
  144. where td.order_id = #{orderId}
  145. and td.voucher_status !=5
  146. </select>
  147. <select id="selectShipByOrderIds"
  148. resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO">
  149. select * from trade_visitor where detail_id in (
  150. select id from trade_detail where order_id in
  151. <foreach collection="orderIds" item="item" separator="," open="(" close=")">
  152. #{item}
  153. </foreach>
  154. )
  155. </select>
  156. <select id="selectListByVoyageId" resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO">
  157. select tv.*
  158. from trade_visitor tv
  159. join trade_order to1 on tv.order_id=to1.id
  160. where to1.voyage_id=#{voyageId}
  161. </select>
  162. </mapper>