|
@@ -462,38 +462,54 @@
|
|
|
|
|
|
|
|
<select id="getDailyBusinessStatisticsPage"
|
|
<select id="getDailyBusinessStatisticsPage"
|
|
|
resultType="com.yc.ship.module.trade.controller.admin.business.vo.DailyBusinessStatisticsRespVO">
|
|
resultType="com.yc.ship.module.trade.controller.admin.business.vo.DailyBusinessStatisticsRespVO">
|
|
|
- SELECT
|
|
|
|
|
- td.source_id AS sourceId,
|
|
|
|
|
- td.source_name as sourceName,
|
|
|
|
|
- IFNULL(tot.free_num, 0) AS freeNum,
|
|
|
|
|
- 0 AS freeCount,
|
|
|
|
|
- IFNULL(topay.actual_amount, 0) AS actualAmount,
|
|
|
|
|
- COUNT(1) AS totalCount,
|
|
|
|
|
- SUM(CASE WHEN tv.type IN ('adultPlus', 'adultTake') THEN 1 ELSE 0 END) AS adultCount,
|
|
|
|
|
- SUM(CASE WHEN tv.type IN ('childTake','childPlus','childNonTake') THEN 1 ELSE 0 END) AS childCount,
|
|
|
|
|
- SUM(CASE WHEN tv.type = 'with' THEN 1 ELSE 0 END) AS withCount,
|
|
|
|
|
- SUM(CASE WHEN tv.type = 'leader' THEN 1 ELSE 0 END) AS leaderCount,
|
|
|
|
|
- SUM(CASE WHEN tv.type IN ('babyTake','babyPlus','babyNonTake') THEN 1 ELSE 0 END) AS infantCount,
|
|
|
|
|
- COUNT(1) - IFNULL(tot.free_num, 0) AS validCount
|
|
|
|
|
|
|
+ select t.sourceId,
|
|
|
|
|
+ t.sourceName,
|
|
|
|
|
+ sum(t.freeNum) as freeNum,
|
|
|
|
|
+ sum(t.freeCount) as freeCount,
|
|
|
|
|
+ sum(t.actualAmount) as actualAmount,
|
|
|
|
|
+ sum(t.totalCount) as totalCount,
|
|
|
|
|
+ SUM(t.adultCount) AS adultCount,
|
|
|
|
|
+ SUM(t.childCount) AS childCount,
|
|
|
|
|
+ SUM(t.withCount) AS withCount,
|
|
|
|
|
+ SUM(t.leaderCount) AS leaderCount,
|
|
|
|
|
+ SUM(t.infantCount) AS infantCount,
|
|
|
|
|
+ sum(t.validCount) as validCount from (SELECT
|
|
|
|
|
+ DISTINCT td.id,
|
|
|
|
|
+ td.source_id AS sourceId,
|
|
|
|
|
+ td.source_name as sourceName,
|
|
|
|
|
+ IFNULL(tot.free_num, 0) AS freeNum,
|
|
|
|
|
+ CASE WHEN td.source_id IN ('2039225917977522177', '2041321150626263042','2042951563081805826') THEN COUNT(1) ELSE 0 END AS freeCount,
|
|
|
|
|
+ IFNULL(topay.actual_amount, 0) AS actualAmount,
|
|
|
|
|
+ COUNT(1) AS totalCount,
|
|
|
|
|
+ SUM(CASE WHEN tv.type IN ('adultPlus', 'adultTake') THEN 1 ELSE 0 END) AS adultCount,
|
|
|
|
|
+ SUM(CASE WHEN tv.type IN ('childTake','childPlus','childNonTake') THEN 1 ELSE 0 END) AS childCount,
|
|
|
|
|
+ SUM(CASE WHEN tv.type = 'with' THEN 1 ELSE 0 END) AS withCount,
|
|
|
|
|
+ SUM(CASE WHEN tv.type = 'leader' THEN 1 ELSE 0 END) AS leaderCount,
|
|
|
|
|
+ SUM(CASE WHEN tv.type IN ('babyTake','babyPlus','babyNonTake') THEN 1 ELSE 0 END) AS infantCount,
|
|
|
|
|
+ COUNT(1) - IFNULL(tot.free_num, 0) - CASE
|
|
|
|
|
+ WHEN td.source_id IN ('2039225917977522177', '2041321150626263042', '2042951563081805826')
|
|
|
|
|
+ THEN COUNT(1)
|
|
|
|
|
+ ELSE 0
|
|
|
|
|
+ END AS validCount
|
|
|
FROM trade_order td
|
|
FROM trade_order td
|
|
|
- INNER JOIN trade_order_user tou ON td.id = tou.order_id AND tou.deleted = 0
|
|
|
|
|
- LEFT JOIN trade_detail tdl ON td.id = tdl.order_id AND tdl.deleted = 0
|
|
|
|
|
- LEFT JOIN trade_visitor tv ON tdl.id = tv.detail_id AND tv.deleted = 0
|
|
|
|
|
- left join trade_order_total tot on td.id = tot.old_order_id and tot.deleted = 0
|
|
|
|
|
- LEFT JOIN (SELECT order_id, SUM(pay_amount) AS actual_amount
|
|
|
|
|
- FROM trade_order_pay
|
|
|
|
|
- WHERE pay_status = 1 GROUP BY order_id) topay ON td.id = topay.order_id
|
|
|
|
|
|
|
+ INNER JOIN trade_order_user tou ON td.id = tou.order_id AND tou.deleted = 0
|
|
|
|
|
+ LEFT JOIN trade_detail tdl ON td.id = tdl.order_id AND tdl.deleted = 0
|
|
|
|
|
+ LEFT JOIN trade_visitor tv ON tdl.id = tv.detail_id AND tv.deleted = 0
|
|
|
|
|
+ left join trade_order_total tot on td.id = tot.old_order_id and tot.deleted = 0
|
|
|
|
|
+ LEFT JOIN (SELECT order_id, SUM(pay_amount) AS actual_amount
|
|
|
|
|
+ FROM trade_order_pay
|
|
|
|
|
+ WHERE pay_status = 1 and deleted=0 GROUP BY order_id) topay ON td.id = topay.order_id
|
|
|
WHERE
|
|
WHERE
|
|
|
- td.deleted = 0
|
|
|
|
|
- AND tv.type IS NOT NULL
|
|
|
|
|
- AND td.order_status > 0
|
|
|
|
|
|
|
+ td.deleted = 0
|
|
|
|
|
+ AND tv.type IS NOT NULL
|
|
|
|
|
+ AND td.order_status in (1, 6, 9, 10, 13, 14, 15)
|
|
|
<if test="vo.voyageId != null and vo.voyageId != ''">
|
|
<if test="vo.voyageId != null and vo.voyageId != ''">
|
|
|
AND td.voyage_id = #{vo.voyageId}
|
|
AND td.voyage_id = #{vo.voyageId}
|
|
|
</if>
|
|
</if>
|
|
|
<if test="vo.routeId != null and vo.routeId != ''">
|
|
<if test="vo.routeId != null and vo.routeId != ''">
|
|
|
AND exists (select 1 from product_voyage top where top.id = td.voyage_id and top.route_id = #{vo.routeId})
|
|
AND exists (select 1 from product_voyage top where top.id = td.voyage_id and top.route_id = #{vo.routeId})
|
|
|
</if>
|
|
</if>
|
|
|
- GROUP BY td.source_id;
|
|
|
|
|
|
|
+ GROUP BY td.id) t GROUP BY t.sourceId;
|
|
|
|
|
|
|
|
</select>
|
|
</select>
|
|
|
|
|
|