jinch 2 주 전
부모
커밋
994e3bab07
1개의 변경된 파일86개의 추가작업 그리고 45개의 파일을 삭제
  1. 86 45
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/report/BankTransactionDetailsMapper.xml

+ 86 - 45
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/report/BankTransactionDetailsMapper.xml

@@ -35,19 +35,19 @@
             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,
+               o1.order_no AS orderNo,
+                o1.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
+            LEFT JOIN product_voyage voy ON o1.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 pay.sell_method != 102
        /* --- and o.order_status in (3,6,7,8,9,10,12,13,15)
         -- AND pay.refund_amount = 0*/
         UNION ALL
@@ -70,6 +70,28 @@
               AND pay.pay_status = 1
               AND tr.refund_status = 6
 
+        UNION ALL
+
+        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(bill.agency_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 ota_bill bill ON bill.id = pay.order_id AND bill.deleted = 0
+        LEFT JOIN (select r.bill_id ,r.order_id FROM ota_bill_order r where r.deleted = 0 GROUP BY r.bill_id) obo ON obo.bill_id = bill.id
+        LEFT JOIN  trade_order o ON obo.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 bill.bill_status in (1,2)
+        AND pay.payment_type = 5
+        and pay.refund_amount > 0
+
             UNION ALL
 
             <!-- 3. 充值记录(分销商在线充值) -->
@@ -94,44 +116,42 @@
             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
+        SELECT
+        DATE_FORMAT(tl.trade_time, '%Y-%m-%d %H:%i:%s') AS transactionTime,
+        '' AS boardingTime,
+        '' AS orderNo,
+        IFNULL(d.name, '') AS travelAgencyName,
+        5 AS paymentMethod,
+        3 AS transactionType,
+        r.money AS amount,
+        '' AS bankSerialNo
+        FROM ota_distributor_recharge r
+        right JOIN ota_distributor d ON r.distributor_id = d.id AND d.deleted = 0
+        right JOIN ota_trade_log tl ON r.recharge_log_id = tl.id AND tl.deleted = 0 AND tl.trade_type in (1,2)
+        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,
+        DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
         pay.bill_no AS orderNo,
-        IFNULL(o1.source_name, o2.source_name)  AS travelAgencyName,
+        IFNULL(bill.agency_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
+        LEFT JOIN ota_bill bill ON bill.id = pay.order_id AND bill.deleted = 0
+        LEFT JOIN (select r.bill_id ,r.order_id FROM ota_bill_order r where r.deleted = 0 GROUP BY r.bill_id) obo ON obo.bill_id = bill.id
+        LEFT JOIN  trade_order o ON obo.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 bill.bill_status in (1,2)
+        AND pay.sell_method = 102
         ) t
         WHERE 1 = 1
         <include refid="queryConditions"/>
@@ -146,20 +166,21 @@
         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,
+        o1.order_no AS orderNo,
+        o1.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
+        LEFT JOIN product_voyage voy ON o1.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.sell_method != 102
+
+        /*  -- and o.order_status in (3,6,7,8,9,10,12,13,15)
         -- AND pay.refund_amount = 0*/
 
         UNION ALL
@@ -183,22 +204,40 @@
               AND tr.refund_status = 6
             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,
+        IFNULL(bill.agency_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 ota_bill bill ON bill.id = pay.order_id AND bill.deleted = 0
+        LEFT JOIN (select r.bill_id ,r.order_id FROM ota_bill_order r where r.deleted = 0 GROUP BY r.bill_id) obo ON obo.bill_id = bill.id
+        LEFT JOIN  trade_order o ON obo.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 bill.bill_status in (1,2)
+        AND pay.payment_type = 5
+        and pay.refund_amount > 0
+        UNION ALL
+            <!-- 3. 充值记录(分销商在线充值) -->
+        SELECT
+        DATE_FORMAT(tl.trade_time, '%Y-%m-%d %H:%i:%s') AS transactionTime,
+        '' AS boardingTime,
+        '' AS orderNo,
+        IFNULL(d.name, '') AS travelAgencyName,
+        5 AS paymentMethod,
         3 AS transactionType,
-        pay.pay_amount AS amount,
+        r.money 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
+        right JOIN ota_distributor d ON r.distributor_id = d.id AND d.deleted = 0
+        right JOIN ota_trade_log tl ON r.recharge_log_id = tl.id AND tl.deleted = 0 AND tl.trade_type in (1,2)
         WHERE r.deleted = 0
         AND r.status = 1
 
@@ -207,20 +246,22 @@
             <!-- 5. 账单还款记录 -->
         SELECT
         DATE_FORMAT(pay.payment_date, '%Y-%m-%d %H:%i:%s') AS transactionTime,
-        '' AS boardingTime,
+        DATE_FORMAT(voy.start_time, '%Y-%m-%d') AS boardingTime,
         pay.bill_no AS orderNo,
-        o.source_name  AS travelAgencyName,
+        IFNULL(bill.agency_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
+        LEFT JOIN ota_bill bill ON bill.id = pay.order_id AND bill.deleted = 0
+        LEFT JOIN (select r.bill_id ,r.order_id FROM ota_bill_order r where r.deleted = 0 GROUP BY r.bill_id) obo ON obo.bill_id = bill.id
+        LEFT JOIN  trade_order o ON obo.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 bill.bill_status in (1,2)
+        AND pay.sell_method = 102
         ) t
         WHERE 1 = 1
         <include refid="queryConditions"/>