| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- <?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.report.BankTransactionDetailsMapper">
- <!-- 公共查询条件片段 -->
- <sql id="queryConditions">
- <if test="vo.transactionTimeStart != null">
- AND t.transactionTime >= #{vo.transactionTimeStart}
- </if>
- <if test="vo.transactionTimeEnd != null">
- AND t.transactionTime <= #{vo.transactionTimeEnd}
- </if>
- <if test="vo.boardDate != null">
- AND t.boardingTime = #{vo.boardDate}
- </if>
- <if test="vo.orderNo != null and vo.orderNo != ''">
- AND t.orderNo LIKE CONCAT('%', #{vo.orderNo}, '%')
- </if>
- <if test="vo.customerName != null and vo.customerName != ''">
- AND t.travelAgencyName LIKE CONCAT('%', #{vo.customerName}, '%')
- </if>
- <if test="vo.paymentMethod != null">
- AND t.paymentMethod = #{vo.paymentMethod}
- </if>
- <if test="vo.transactionType != null">
- AND t.transactionType = #{vo.transactionType}
- </if>
- </sql>
- <!-- 分页查询银行流水交易明细 -->
- <select id="selectBankTransactionDetailsPage"
- resultType="com.yc.ship.module.trade.controller.admin.report.vo.BankTransactionDetailsRespVO">
- SELECT * FROM (
- <!-- 1. 订单支付记录 -->
- SELECT
- DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
- DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
- IFNULL(o1.order_no,o2.order_no) AS orderNo,
- IFNULL(o1.source_name,o2.source_name) AS travelAgencyName,
- pay.payment_type AS paymentMethod,
- 1 AS transactionType,
- pay.pay_amount AS amount,
- IFNULL(pay.payment_no, '') AS bankSerialNo
- FROM trade_order_pay pay
- LEFT JOIN trade_order o1 ON pay.order_id = o1.id AND o1.deleted = 0
- LEFT JOIN trade_order o2 ON o1.id IS NULL AND pay.pos_no = o2.order_no AND o2.deleted = 0
- LEFT JOIN product_voyage voy ON IFNULL(o1.voyage_id, o2.voyage_id) = voy.id AND voy.deleted = 0
- WHERE pay.deleted = 0
- AND pay.pay_status = 1
- AND pay.payment_type in (1,2,3,4,5,6,9,10)
- /* --- and o.order_status in (3,6,7,8,9,10,12,13,15)
- -- AND pay.refund_amount = 0*/
- UNION ALL
- <!-- 2. 订单退款记录 -->
- SELECT
- DATE_FORMAT(pay.update_time, '%Y-%m-%d %H:%i:%s') AS transactionTime,
- DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
- o.order_no AS orderNo,
- o.source_name AS travelAgencyName,
- pay.payment_type AS paymentMethod,
- 2 AS transactionType,
- -IFNULL(pay.refund_amount, 0) AS amount,
- IFNULL(pay.payment_no, '') AS bankSerialNo
- FROM trade_order_pay pay
- LEFT JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
- LEFT JOIN product_voyage voy ON o.voyage_id = voy.id AND voy.deleted = 0
- WHERE pay.deleted = 0
- AND pay.pay_status = 1
- AND pay.refund_amount IS NOT NULL
- AND pay.refund_amount > 0
- UNION ALL
- <!-- 3. 充值记录(分销商在线充值) -->
- /* SELECT
- DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
- DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
- pay.bill_no AS orderNo,
- IFNULL(dsrs.name, '') AS travelAgencyName,
- pay.payment_type AS paymentMethod,
- 3 AS transactionType,
- pay.pay_amount AS amount,
- IFNULL(pay.payment_no, '') AS bankSerialNo
- FROM trade_order_pay pay
- LEFT JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
- LEFT JOIN product_voyage voy ON o.voyage_id = voy.id AND voy.deleted = 0
- LEFT JOIN ota_distributor_recharge dsr ON pay.order_id = dsr.id AND dsr.deleted = 0 AND dsr.status = 1
- LEFT JOIN ota_distributor dsrs ON dsr.distributor_id = dsrs.id AND dsrs.deleted = 0
- WHERE pay.deleted = 0
- AND pay.pay_status = 1
- AND pay.sell_method = 101
- UNION ALL*/
- <!-- 4. 后台充值记录 -->
- SELECT
- DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
- DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
- pay.bill_no AS orderNo,
- IFNULL(d.name, '') AS travelAgencyName,
- pay.payment_type AS paymentMethod,
- 3 AS transactionType,
- pay.pay_amount AS amount,
- '' AS bankSerialNo
- FROM ota_distributor_recharge r
- INNER JOIN ota_distributor d ON r.distributor_id = d.id AND d.deleted = 0
- INNER JOIN ota_trade_log tl ON r.recharge_log_id = tl.id AND tl.deleted = 0 AND tl.trade_type = 1
- left join trade_order_pay pay on pay.order_id = tl.order_id
- LEFT JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
- LEFT JOIN product_voyage voy ON o.voyage_id = voy.id AND voy.deleted = 0
- WHERE r.deleted = 0
- AND r.status = 1
- UNION ALL
- <!-- 5. 账单还款记录 -->
- SELECT
- DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
- '' AS boardingTime,
- pay.bill_no AS orderNo,
- IFNULL(o1.source_name, o2.source_name) AS travelAgencyName,
- pay.payment_type AS paymentMethod,
- 4 AS transactionType,
- pay.pay_amount AS amount,
- IFNULL(pay.payment_no, '') AS bankSerialNo
- FROM trade_order_pay pay
- LEFT JOIN trade_order o1 ON pay.order_id = o1.id AND o1.deleted = 0
- LEFT JOIN trade_order o2 ON o1.id IS NULL AND pay.pos_no = o2.order_no AND o2.deleted = 0
- LEFT JOIN ota_bill_order obo ON obo.order_id = IFNULL(o1.id, o2.id)
- INNER JOIN ota_bill bill ON bill.id = obo.bill_id AND bill.deleted = 0
- WHERE pay.deleted = 0
- AND pay.pay_status = 1
- AND bill.bill_status in (1,2)
- ) t
- WHERE 1 = 1
- <include refid="queryConditions"/>
- ORDER BY t.transactionTime DESC
- </select>
- <!-- 导出查询(与分页查询一致,不分页) -->
- <select id="selectBankTransactionDetailsExportList"
- resultType="com.yc.ship.module.trade.controller.admin.report.vo.BankTransactionDetailsRespVO">
- SELECT * FROM (
- <!-- 1. 订单支付记录 -->
- SELECT
- DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
- DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
- IFNULL(o1.order_no,o2.order_no) AS orderNo,
- IFNULL(o1.source_name,o2.source_name) AS travelAgencyName,
- pay.payment_type AS paymentMethod,
- 1 AS transactionType,
- pay.pay_amount AS amount,
- IFNULL(pay.payment_no, '') AS bankSerialNo
- FROM trade_order_pay pay
- LEFT JOIN trade_order o1 ON pay.order_id = o1.id AND o1.deleted = 0
- LEFT JOIN trade_order o2 ON o1.id IS NULL AND pay.pos_no = o2.order_no AND o2.deleted = 0
- LEFT JOIN product_voyage voy ON IFNULL(o1.voyage_id, o2.voyage_id) = voy.id AND voy.deleted = 0
- WHERE pay.deleted = 0
- AND pay.pay_status = 1
- AND pay.payment_type in (1,2,3,4,5,6,9,10)
- /* -- and o.order_status in (3,6,7,8,9,10,12,13,15)
- -- AND pay.refund_amount = 0*/
- UNION ALL
- <!-- 2. 订单退款记录 -->
- SELECT
- DATE_FORMAT(pay.update_time, '%Y-%m-%d %H:%i:%s') AS transactionTime,
- DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
- o.order_no AS orderNo,
- o.source_name AS travelAgencyName,
- pay.payment_type AS paymentMethod,
- 2 AS transactionType,
- -IFNULL(pay.refund_amount, 0) AS amount,
- IFNULL(pay.payment_no, '') AS bankSerialNo
- FROM trade_order_pay pay
- LEFT JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
- LEFT JOIN product_voyage voy ON o.voyage_id = voy.id AND voy.deleted = 0
- WHERE pay.deleted = 0
- AND pay.pay_status = 1
- AND pay.refund_amount IS NOT NULL
- AND pay.refund_amount > 0
- UNION ALL
- <!-- 3. 充值记录(分销商在线充值) -->
- SELECT
- DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
- DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
- pay.bill_no AS orderNo,
- IFNULL(d.name, '') AS travelAgencyName,
- pay.payment_type AS paymentMethod,
- 3 AS transactionType,
- pay.pay_amount AS amount,
- '' AS bankSerialNo
- FROM ota_distributor_recharge r
- INNER JOIN ota_distributor d ON r.distributor_id = d.id AND d.deleted = 0
- INNER JOIN ota_trade_log tl ON r.recharge_log_id = tl.id AND tl.deleted = 0 AND tl.trade_type = 1
- left join trade_order_pay pay on pay.order_id = tl.order_id
- LEFT JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
- LEFT JOIN product_voyage voy ON o.voyage_id = voy.id AND voy.deleted = 0
- WHERE r.deleted = 0
- AND r.status = 1
- UNION ALL
- <!-- 5. 账单还款记录 -->
- SELECT
- DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
- '' AS boardingTime,
- pay.bill_no AS orderNo,
- o.source_name AS travelAgencyName,
- pay.payment_type AS paymentMethod,
- 4 AS transactionType,
- pay.pay_amount AS amount,
- IFNULL(pay.payment_no, '') AS bankSerialNo
- FROM trade_order_pay pay
- LEFT JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
- LEFT JOIN ota_bill_order obo ON obo.order_id = o.id
- INNER JOIN ota_bill bill ON bill.id = obo.bill_id AND bill.deleted = 0
- WHERE pay.deleted = 0
- AND pay.pay_status = 1
- AND bill.bill_status in (1,2)
- ) t
- WHERE 1 = 1
- <include refid="queryConditions"/>
- ORDER BY t.transactionTime DESC
- </select>
- </mapper>
|