|
@@ -374,4 +374,97 @@
|
|
|
</foreach>
|
|
</foreach>
|
|
|
GROUP BY type, gender
|
|
GROUP BY type, gender
|
|
|
</select>
|
|
</select>
|
|
|
|
|
+ <select id="selectOrderCountryStatsByOrderIds"
|
|
|
|
|
+ resultType="com.yc.ship.module.trade.controller.admin.order.vo.order.OrderTotalCountryVO">
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ d1.country_id,
|
|
|
|
|
+ d2.country_name,
|
|
|
|
|
+ d1.adultNum,
|
|
|
|
|
+ d1.childNum,
|
|
|
|
|
+ d1.babyNum,
|
|
|
|
|
+ d1.leaderNum,
|
|
|
|
|
+ d1.withNum,
|
|
|
|
|
+ d2.twoNum,
|
|
|
|
|
+ d2.threeNum,
|
|
|
|
|
+ d2.fourNum,
|
|
|
|
|
+ d2.fiveNum,
|
|
|
|
|
+ d2.sixNum
|
|
|
|
|
+ FROM
|
|
|
|
|
+ (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ a1.country_id,
|
|
|
|
|
+ a1.country_name,
|
|
|
|
|
+ sum( CASE WHEN a1.type = 'adultTake' OR a1.type = 'adultPlus' THEN a1.num ELSE 0 END ) AS adultNum,
|
|
|
|
|
+ sum( CASE WHEN a1.type = 'childTake' OR a1.type = 'childNonTake' AND a1.type = 'childPlus' THEN a1.num ELSE 0 END ) AS childNum,
|
|
|
|
|
+ sum( CASE WHEN a1.type = 'babyTake' OR a1.type = 'babyNonTake' AND a1.type = 'babyPlus' THEN a1.num ELSE 0 END ) AS babyNum,
|
|
|
|
|
+ sum( CASE WHEN a1.type = 'leader' THEN a1.num ELSE 0 END ) AS leaderNum,
|
|
|
|
|
+ sum( CASE WHEN a1.type = 'with' THEN a1.num ELSE 0 END ) AS withNum
|
|
|
|
|
+ FROM
|
|
|
|
|
+ (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ t1.nationality country_id,
|
|
|
|
|
+ t2.`name` country_name,
|
|
|
|
|
+ t1.type,
|
|
|
|
|
+ count( t1.id ) num
|
|
|
|
|
+ FROM
|
|
|
|
|
+ trade_visitor t1
|
|
|
|
|
+ LEFT JOIN area t2 ON t1.nationality = t2.id
|
|
|
|
|
+ WHERE
|
|
|
|
|
+ t1.deleted = 0
|
|
|
|
|
+ AND t1.nationality IS NOT NULL
|
|
|
|
|
+ AND t1.nationality != ''
|
|
|
|
|
+ and t1.order_id in
|
|
|
|
|
+ <foreach item="item" collection="orderIds" separator="," open="(" close=")">
|
|
|
|
|
+ #{item}
|
|
|
|
|
+ </foreach>
|
|
|
|
|
+ GROUP BY
|
|
|
|
|
+ t1.nationality,
|
|
|
|
|
+ t1.type
|
|
|
|
|
+ ) a1
|
|
|
|
|
+ GROUP BY
|
|
|
|
|
+ a1.country_id
|
|
|
|
|
+ ORDER BY
|
|
|
|
|
+ a1.country_id ASC
|
|
|
|
|
+ ) d1
|
|
|
|
|
+ LEFT JOIN (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ a1.country_id,
|
|
|
|
|
+ a1.country_name,
|
|
|
|
|
+ sum( CASE WHEN a1.floor = 2 THEN a1.num ELSE 0 END ) AS twoNum,
|
|
|
|
|
+ sum( CASE WHEN a1.floor = 3 THEN a1.num ELSE 0 END ) AS threeNum,
|
|
|
|
|
+ sum( CASE WHEN a1.floor = 4 THEN a1.num ELSE 0 END ) AS fourNum,
|
|
|
|
|
+ sum( CASE WHEN a1.floor = 5 THEN a1.num ELSE 0 END ) AS fiveNum,
|
|
|
|
|
+ sum( CASE WHEN a1.floor = 6 THEN a1.num ELSE 0 END ) AS sixNum
|
|
|
|
|
+ FROM
|
|
|
|
|
+ (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ t1.nationality country_id,
|
|
|
|
|
+ t2.`name` country_name,
|
|
|
|
|
+ t3.floor,
|
|
|
|
|
+ count( t1.id ) num
|
|
|
|
|
+ FROM
|
|
|
|
|
+ trade_visitor t1
|
|
|
|
|
+ LEFT JOIN area t2 ON t1.nationality = t2.id
|
|
|
|
|
+ LEFT JOIN trade_order_room_model t3 ON t1.room_index_id = t3.room_index_id
|
|
|
|
|
+ WHERE
|
|
|
|
|
+ t1.deleted = 0
|
|
|
|
|
+ AND t3.deleted = 0
|
|
|
|
|
+ AND t1.nationality IS NOT NULL
|
|
|
|
|
+ AND t1.nationality != ''
|
|
|
|
|
+ and t1.order_id in
|
|
|
|
|
+ <foreach item="item" collection="orderIds" separator="," open="(" close=")">
|
|
|
|
|
+ #{item}
|
|
|
|
|
+ </foreach>
|
|
|
|
|
+ GROUP BY
|
|
|
|
|
+ t1.nationality,
|
|
|
|
|
+ t3.floor
|
|
|
|
|
+ ) a1
|
|
|
|
|
+ GROUP BY
|
|
|
|
|
+ a1.country_id
|
|
|
|
|
+ ORDER BY
|
|
|
|
|
+ a1.country_id ASC
|
|
|
|
|
+ ) d2 ON d1.country_id = d2.country_id
|
|
|
|
|
+ ORDER BY
|
|
|
|
|
+ d1.country_id ASC
|
|
|
|
|
+ </select>
|
|
|
</mapper>
|
|
</mapper>
|