| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?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.OpsDailyMapper">
- <!-- 查询省际度假游轮经营情况日报(不分页) -->
- <select id="selectCruiseOpsDailyList"
- parameterType="com.yc.ship.module.trade.controller.admin.report.vo.CruiseOpsDailyReqVO"
- resultType="com.yc.ship.module.trade.controller.admin.report.vo.CruiseOpsDailyRespVO">
- SELECT
- DATE_FORMAT(v.start_time, '%Y-%m') AS `month`,
- DATE_FORMAT(v.start_time, '%Y-%m-%d') AS `date`,
- s.name AS ship,
- r.name AS route,
- v.name AS voyageNo,
- s.capacity AS passengerCapacity,
- COALESCE(tv.passengerCount, 0) AS passengerCount,
- COALESCE(rr.totalRooms, 0) AS totalRooms,
- CAST(COALESCE(SUM(rm.usedRooms), 0) AS SIGNED) AS usedRooms,
- COALESCE(inc.ticketIncome, 0) AS ticketIncome,
- 0 AS secondIncome
- FROM product_voyage v
- INNER JOIN resource_ship s
- ON v.ship_id = s.id AND s.deleted = 0
- INNER JOIN resource_route r
- ON v.route_id = r.id AND r.deleted = 0
- INNER JOIN (
- SELECT id, voyage_id, pay_status, real_pay_amount
- FROM trade_order
- WHERE deleted = 0 AND order_status in (15, 14, 13, 10, 12, 9, 8, 7, 6, 5, 4, 3, 1, 0)
- ) o ON v.id = o.voyage_id
- LEFT JOIN (
- SELECT order_id, SUM(use_room_num) AS usedRooms
- FROM trade_order_room_model
- WHERE deleted = 0
- GROUP BY order_id
- ) rm ON o.id = rm.order_id
- LEFT JOIN (
- SELECT order_id, COUNT(id) AS passengerCount
- FROM trade_visitor
- WHERE deleted = 0
- GROUP BY order_id
- ) tv ON o.id = tv.order_id
- LEFT JOIN (
- SELECT
- o.id AS order_id,
- SUM(CASE WHEN o.pay_status = 1 THEN p.pay_amount ELSE o.real_pay_amount END) AS ticketIncome
- FROM trade_order o
- LEFT JOIN trade_order_pay p
- ON o.pay_status = 1 AND p.order_id = o.id AND p.deleted = 0 AND p.pay_status = 1
- 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.id
- ) inc ON o.id = inc.order_id
- LEFT JOIN (
- SELECT ship_id, COUNT(*) AS totalRooms
- FROM resource_room
- WHERE deleted = 0
- GROUP BY ship_id
- ) rr ON v.ship_id = rr.ship_id
- WHERE v.deleted = 0
- <if test="startDate != null and startDate != ''">
- AND v.start_time >= #{startDate}
- </if>
- <if test="endDate != null and endDate != ''">
- AND v.start_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
- </if>
- GROUP BY v.id
- ORDER BY v.start_time ASC, s.name ASC, v.name ASC
- </select>
- </mapper>
|