From ef4f769a35eda2e8631b0376f35899e69a13d87f Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期六, 12 十月 2024 16:20:18 +0800 Subject: [PATCH] fix:时间查询优化 --- src/main/resources/mapper/report/OrderReportMapper.xml | 55 ++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 42 insertions(+), 13 deletions(-) diff --git a/src/main/resources/mapper/report/OrderReportMapper.xml b/src/main/resources/mapper/report/OrderReportMapper.xml index e72d449..03e9ca8 100644 --- a/src/main/resources/mapper/report/OrderReportMapper.xml +++ b/src/main/resources/mapper/report/OrderReportMapper.xml @@ -490,7 +490,7 @@ and o.payment_time <= #{dto.endDate} </if> <if test="dto.supplierId != null"> - and oi.supplierId <= #{dto.supplierId} + and oi.supplierId = #{dto.supplierId} </if> ) t1 GROUP BY @@ -508,13 +508,42 @@ sum(order_replace_fee) + sum(order_lack_fee_supplier) order_lack_fee_supplier, sum(order_num)-sum(order_lack_num) as real_sale_num, sum(sales_fee_supplier) sales_fee_supplier, - sum(order_supplier_price_amount) - sum(order_check_fee) - sum(order_replace_fee) - sum(order_lack_fee_supplier) - sum(sales_fee_supplier) profitFeeAmount + sum(order_supplier_price_amount) - sum(order_check_fee) - sum(order_replace_fee) - sum(order_lack_fee_supplier) - sum(sales_fee_supplier) profitFeeAmount, + case when COUNT(CASE WHEN status_backend IS NULL THEN 1 ELSE NULL END) = 0 Then '已完成' Else '进行中' end as settleStatus from( SELECT - oi.id,vor.*,p.name as supplierName - FROM t_order_item oi - left join (<include refid="baseSupplierSql"></include>) vor - on oi.id =vor.order_item_id + oi.id,vor.*,p.name as supplierName,o.status_backend + FROM + (<include refid="baseSupplierSql"></include>) vor + left join t_order_item oi + on vor.order_item_id = oi.id + left join t_supplier_info p + on vor.supplier_id=p.id + left join t_order o + on vor.order_id= o.id + and o.status_backend not in ('PENDING','CANCEL','REFUND') + ) s group by dateinfo,supplier_id + </select> + + <select id="getOrderSupplierReport" resultType="com.mzl.flower.dto.response.report.OrderSupplierReportResultVO"> + select + dateinfo, + supplier_id, + supplierName, + sum(order_supplier_price_amount) order_supplier_price_amount, + sum(order_check_fee) order_check_fee, + sum(order_replace_fee) + sum(order_lack_fee_supplier) order_lack_fee_supplier, + sum(order_num)-sum(order_lack_num) as real_sale_num, + sum(sales_fee_supplier) sales_fee_supplier, + sum(order_supplier_price_amount) - sum(order_check_fee) - sum(order_replace_fee) - sum(order_lack_fee_supplier) - sum(sales_fee_supplier) profitFeeAmount, + case when COUNT(CASE WHEN status_backend IS NULL THEN 1 ELSE NULL END) = 0 Then '已完成' Else '进行中' end as settleStatus + from( + SELECT + oi.id,vor.*,p.name as supplierName,o.status_backend + FROM + (<include refid="baseSupplierSql"></include>) vor + left join t_order_item oi + on vor.order_item_id = oi.id left join t_supplier_info p on vor.supplier_id=p.id left join t_order o @@ -541,20 +570,20 @@ sum(order_replace_fee) + sum(order_lack_fee_supplier) order_lack_fee_supplier, sum(order_num)-sum(order_lack_num) as real_sale_num, sum(sales_fee_supplier) sales_fee_supplier, - sum(order_supplier_price_amount) - sum(order_check_fee) - sum(order_replace_fee) - sum(order_lack_fee_supplier) - - sum(sales_fee_supplier) profitFeeAmount + sum(order_supplier_price_amount) - sum(order_check_fee) - sum(order_replace_fee) - sum(order_lack_fee_supplier) - sum(sales_fee_supplier) profitFeeAmount from( SELECT oi.id,vor.*,p.name as supplierName - FROM t_order_item oi - left join (<include refid="baseSupplierSql"></include>) vor - on oi.id =vor.order_item_id + FROM + (<include refid="baseSupplierSql"></include>) vor + left join t_order_item oi + on vor.order_item_id = oi.id left join t_supplier_info p on vor.supplier_id=p.id left join t_order o on vor.order_id= o.id and o.status_backend not in ('PENDING','CANCEL','REFUND') - ) - ) s + ) s group by dateinfo,supplier_id + ) s2 </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3