|
|
@@ -0,0 +1,207 @@
|
|
|
+<?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,
|
|
|
+ o.order_no AS orderNo,
|
|
|
+ o.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
|
|
|
+ INNER 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.sell_method != 101
|
|
|
+ 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.payment_date, '%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
|
|
|
+ INNER 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
|
|
|
+ INNER 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_self_recharge dsr ON pay.order_id = dsr.id AND dsr.deleted = 0 AND dsr.recharge_state = 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,
|
|
|
+ '' 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
|
|
|
+ INNER JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
|
|
|
+ INNER 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>
|
|
|
+
|
|
|
+ <!-- 导出查询(与分页查询一致,不分页) -->
|
|
|
+ <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,
|
|
|
+ o.order_no AS orderNo,
|
|
|
+ o.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
|
|
|
+ INNER 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.sell_method != 101
|
|
|
+ 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.payment_date, '%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
|
|
|
+ INNER 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
|
|
|
+ INNER 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_self_recharge dsr ON pay.order_id = dsr.id AND dsr.deleted = 0 AND dsr.recharge_state = 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,
|
|
|
+ '' 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
|
|
|
+ INNER JOIN trade_order o ON pay.order_id = o.id AND o.deleted = 0
|
|
|
+ INNER 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>
|