|
|
@@ -15,21 +15,21 @@
|
|
|
SELECT
|
|
|
v.id AS voyageId,
|
|
|
s.name AS shipName,
|
|
|
- CONCAT(DATE_FORMAT(v.start_time, '%Y-%m-%d'), ' ', CASE WHEN r.direction = 1 THEN '上水' ELSE '下水' END) AS voyageInfo,
|
|
|
- GREATEST(DATEDIFF(DATE(v.start_time), CURDATE()), 0) AS countdown,
|
|
|
+ CONCAT(DATE_FORMAT(v.boarding_time, '%Y-%m-%d'), ' ', CASE WHEN r.direction = 1 THEN '上水' ELSE '下水' END) AS voyageInfo,
|
|
|
+ GREATEST(DATEDIFF(DATE(v.boarding_time), CURDATE()), 0) AS countdown,
|
|
|
528 AS capacity,
|
|
|
COALESCE(room_stats.totalRooms, 0) AS totalRooms,
|
|
|
COALESCE(room_stats.paidRooms, 0) AS paidRooms,
|
|
|
COALESCE(room_stats.reservedRooms, 0) AS reservedRooms,
|
|
|
COALESCE(visitor_stats.totalPassengers, 0) AS totalPassengers,
|
|
|
COALESCE(visitor_stats.ticketedPassengers, 0) AS ticketedPassengers,
|
|
|
- COALESCE(estimated_stats.freePassengers, 0) AS freePassengers,
|
|
|
+ COALESCE(free_stats.freePassengers, 0) AS freePassengers,
|
|
|
COALESCE(estimated_stats.estimatedPassengers, 0) AS estimatedPassengers,
|
|
|
COALESCE(finance_stats.receivableAmount, 0) AS receivableAmount,
|
|
|
COALESCE(finance_stats.receivedAmount, 0) AS receivedAmount,
|
|
|
COALESCE(finance_stats.receivableAmount, 0) - COALESCE(finance_stats.receivedAmount, 0) AS unreceivedAmount,
|
|
|
CASE WHEN COALESCE(visitor_stats.ticketedPassengers, 0) > 0
|
|
|
- THEN ROUND(COALESCE(finance_stats.receivedAmount, 0) / visitor_stats.ticketedPassengers, 2)
|
|
|
+ THEN ROUND(COALESCE(finance_stats.receivableAmount, 0) / visitor_stats.ticketedPassengers, 2)
|
|
|
ELSE 0 END AS avgPrice,
|
|
|
COALESCE(visitor_stats.adultCount, 0) AS adultCount,
|
|
|
COALESCE(visitor_stats.childCount, 0) AS childCount,
|
|
|
@@ -73,16 +73,26 @@
|
|
|
LEFT JOIN (
|
|
|
SELECT
|
|
|
o.voyage_id,
|
|
|
- CASE WHEN o.order_status = 1 or o.order_status = 14 THEN SUM(COALESCE(tot.adult_total_num, 0) + COALESCE(tot.child_total_num, 0)
|
|
|
+ CASE WHEN o.order_status = 1 or o.order_status = 14 THEN SUM(COALESCE(tot.adult_total_num, 0) + COALESCE(tot.child_total_num, 0)
|
|
|
+ COALESCE(tot.baby_total_num, 0) + COALESCE(tot.with_total_num, 0)
|
|
|
- + COALESCE(tot.leader_total_num, 0)) ELSE 0 END AS estimatedPassengers,
|
|
|
- sum(IFNULL(tot.free_num, 0)) AS freePassengers
|
|
|
+ + COALESCE(tot.leader_total_num, 0)) ELSE 0 END AS estimatedPassengers
|
|
|
FROM trade_order o
|
|
|
LEFT JOIN trade_order_total tot ON o.id = tot.old_order_id AND tot.deleted = 0
|
|
|
- WHERE o.deleted = 0 AND o.order_status IN (15, 14, 13, 10, 12, 9, 8, 7, 6, 5, 4, 3, 1, 0)
|
|
|
+ WHERE o.deleted = 0 AND o.order_status IN (15, 14, 13, 10, 12, 9, 8, 7, 6, 5, 4, 3, 1, 0)
|
|
|
GROUP BY o.voyage_id
|
|
|
) estimated_stats ON v.id = estimated_stats.voyage_id
|
|
|
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ o.voyage_id,
|
|
|
+ SUM(CASE WHEN od.name LIKE '免票%' THEN 1 ELSE 0 END) AS freePassengers
|
|
|
+ FROM trade_order o
|
|
|
+ INNER JOIN trade_visitor tv ON o.id = tv.order_id AND tv.deleted = 0
|
|
|
+ LEFT JOIN ota_distributor od ON o.source_id = od.id AND od.deleted = 0
|
|
|
+ WHERE o.deleted = 0 AND o.order_status IN (15, 14, 13, 10, 12, 9, 8, 7, 6, 5, 4, 3, 1, 0)
|
|
|
+ GROUP BY o.voyage_id
|
|
|
+ ) free_stats ON v.id = free_stats.voyage_id
|
|
|
+
|
|
|
LEFT JOIN (
|
|
|
SELECT
|
|
|
o.voyage_id,
|