|
|
@@ -0,0 +1,81 @@
|
|
|
+<?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.IncomeAuditMapper">
|
|
|
+
|
|
|
+ <!-- 分页查询收入稽核表(按组团社分组,统计不同航向的收入) -->
|
|
|
+ <select id="selectIncomeAuditPage"
|
|
|
+ resultType="com.yc.ship.module.trade.controller.admin.report.vo.IncomeAuditRespVO">
|
|
|
+ SELECT
|
|
|
+ t.travel_agency AS travelAgency,
|
|
|
+ IFNULL(SUM(CASE WHEN t.direction = 1 THEN t.income_amount ELSE 0 END), 0) AS yichangToChongqing,
|
|
|
+ IFNULL(SUM(CASE WHEN t.direction != 1 THEN t.income_amount ELSE 0 END), 0) AS chongqingToYichang,
|
|
|
+ IFNULL(SUM(t.income_amount), 0) AS totalAmount
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ o.source_name AS travel_agency,
|
|
|
+ r.direction,
|
|
|
+ (o.pay_amount - COALESCE(refund_fee_sum.refundFee, 0)) AS income_amount
|
|
|
+ FROM trade_order o
|
|
|
+ INNER JOIN product_voyage v ON o.voyage_id = v.id AND v.deleted = 0
|
|
|
+ INNER JOIN resource_route r ON v.route_id = r.id AND r.deleted = 0
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT order_id, SUM(fee) AS refundFee
|
|
|
+ FROM trade_refund
|
|
|
+ WHERE deleted = 0 AND refund_status = 6
|
|
|
+ GROUP BY order_id
|
|
|
+ ) refund_fee_sum ON o.id = refund_fee_sum.order_id
|
|
|
+ WHERE o.deleted = 0
|
|
|
+ <if test="vo.voyageIds != null and vo.voyageIds.size() > 0">
|
|
|
+ AND o.voyage_id IN
|
|
|
+ <foreach collection="vo.voyageIds" item="voyageId" open="(" separator="," close=")">
|
|
|
+ #{voyageId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="vo.travelAgency != null and vo.travelAgency != ''">
|
|
|
+ AND o.source_name LIKE CONCAT('%', #{vo.travelAgency}, '%')
|
|
|
+ </if>
|
|
|
+ ) t
|
|
|
+ WHERE t.travel_agency IS NOT NULL AND t.travel_agency != ''
|
|
|
+ GROUP BY t.travel_agency
|
|
|
+ ORDER BY totalAmount DESC
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 导出查询(与分页查询条件一致,不分页) -->
|
|
|
+ <select id="selectIncomeAuditExportList"
|
|
|
+ resultType="com.yc.ship.module.trade.controller.admin.report.vo.IncomeAuditRespVO">
|
|
|
+ SELECT
|
|
|
+ t.travel_agency AS travelAgency,
|
|
|
+ IFNULL(SUM(CASE WHEN t.direction = 1 THEN t.income_amount ELSE 0 END), 0) AS yichangToChongqing,
|
|
|
+ IFNULL(SUM(CASE WHEN t.direction != 1 THEN t.income_amount ELSE 0 END), 0) AS chongqingToYichang,
|
|
|
+ IFNULL(SUM(t.income_amount), 0) AS totalAmount
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ o.source_name AS travel_agency,
|
|
|
+ r.direction,
|
|
|
+ (o.pay_amount - COALESCE(refund_fee_sum.refundFee, 0)) AS income_amount
|
|
|
+ FROM trade_order o
|
|
|
+ INNER JOIN product_voyage v ON o.voyage_id = v.id AND v.deleted = 0
|
|
|
+ INNER JOIN resource_route r ON v.route_id = r.id AND r.deleted = 0
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT order_id, SUM(fee) AS refundFee
|
|
|
+ FROM trade_refund
|
|
|
+ WHERE deleted = 0 AND refund_status = 6
|
|
|
+ GROUP BY order_id
|
|
|
+ ) refund_fee_sum ON o.id = refund_fee_sum.order_id
|
|
|
+ WHERE o.deleted = 0
|
|
|
+ <if test="vo.voyageIds != null and vo.voyageIds.size() > 0">
|
|
|
+ AND o.voyage_id IN
|
|
|
+ <foreach collection="vo.voyageIds" item="voyageId" open="(" separator="," close=")">
|
|
|
+ #{voyageId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="vo.travelAgency != null and vo.travelAgency != ''">
|
|
|
+ AND o.source_name LIKE CONCAT('%', #{vo.travelAgency}, '%')
|
|
|
+ </if>
|
|
|
+ ) t
|
|
|
+ WHERE t.travel_agency IS NOT NULL AND t.travel_agency != ''
|
|
|
+ GROUP BY t.travel_agency
|
|
|
+ ORDER BY totalAmount DESC
|
|
|
+ </select>
|
|
|
+
|
|
|
+</mapper>
|