From 6f9bb53d98d484255123d767caf4e17c7c14ee02 Mon Sep 17 00:00:00 2001 From: gongzuming <gongzuming> Date: 星期二, 12 十一月 2024 18:41:19 +0800 Subject: [PATCH] 优化统计 --- src/main/resources/mapper/wallet/WalletMapper.xml | 66 +++++++++++++++++++++++++++++++++ 1 files changed, 66 insertions(+), 0 deletions(-) diff --git a/src/main/resources/mapper/wallet/WalletMapper.xml b/src/main/resources/mapper/wallet/WalletMapper.xml index d33cf32..9131387 100644 --- a/src/main/resources/mapper/wallet/WalletMapper.xml +++ b/src/main/resources/mapper/wallet/WalletMapper.xml @@ -19,6 +19,72 @@ <result column="settling_amount" property="settlingAmount" /> <result column="total_deduction" property="totalDeduction" /> <result column="total_transaction_amount" property="totalTransactionAmount" /> + <result column="settled_amount" property="settledAmount" /> + </resultMap> + <select id="getWaittingSettlementAmount" resultType="java.math.BigDecimal"> + <!-- <include refid="supplier_settlement_amount"></include>--> + <include refid="supplier_settlement_amount_timing"></include> + + </select> + + <!-- 总交易额--> + <select id="getSupplierTotalTransactionAmount" resultType="java.math.BigDecimal"> + select IFNULL(sum(oi.supplier_price*oi.num),0) as cur_mon_supplier_amount + from t_order_item oi + left join t_order o + on oi.order_id = o.id + where o.deleted=0 + and o.status_backend not in ('PENDING','CANCEL','REFUND') + and oi.supplier_id = #{dto.supplierId} + and o.payment_time > #{dto.startTime} + </select> + + + <!-- 待结算--> + <sql id="supplier_settlement_amount"> + SELECT IFNULL(sum(settlement_amount),0) AS settlement_amount + FROM t_order_settlement OS + WHERE OS.DELETED=0 + AND OS.TYPE='supplier' + AND OS.status='PENDING' + AND USER_ID=#{dto.userId} + </sql> + + + <sql id="supplier_settlement_amount_timing"> + select + sum(t2.final_price) as settlement_amount + from( + select + t.order_item_id, + t.supplier_id, + t.supplier_price, + t.num-t.reduce_num-t.replace_num-t.lack_num as final_num, + t.supplier_price*(t.num-t.reduce_num-t.replace_num-t.lack_num )-t.fee_supplier-t.station_fee as final_price, + t.fee_supplier, + t.station_fee + from ( + SELECT + o.order_no, + oi.id as order_item_id, + oi.supplier_id, + o.payment_time, + oi.supplier_price, + oi.num as num, + IFNULL( (select oic.num from t_order_item_check oic where oic.deleted=0 and oic.order_item_id = oi.id and oic.type = 'reduce' and oic.audit_status='AGREED'),0) as reduce_num, + IFNULL( (select oic.num from t_order_item_check oic where oic.deleted=0 and oic.order_item_id = oi.id and oic.type = 'replace' and oic.audit_status='AGREED'),0) as replace_num, + IFNULL( (select oic.num from t_order_item_check oic where oic.deleted=0 and oic.order_item_id = oi.id and oic.type = 'lack' and oic.audit_status='AGREED'),0) as lack_num, + IFNULL( (select ois.fee_supplier from t_order_item_sales ois where ois.deleted=0 and ois.order_item_id = oi.id and ois.status='AGREED'),0) as fee_supplier, + IFNULL( (select ois.station_fee from t_order_item_settlement ois where ois.deleted=0 and ois.order_item_id = oi.id ),0) as station_fee + FROM t_order_item oi + LEFT JOIN t_order o ON oi.order_id = o.id + WHERE o.deleted=0 + and o.status_backend not in ('PENDING','CANCEL','REFUND','COMPLETED') + and oi.supplier_id = #{dto.supplierId} + ) t + ) t2 + + </sql> </mapper> -- Gitblit v1.9.3