陶杰
2024-11-08 78082b601d0eda9b820fbeba9a01fbfeb5309692
src/main/resources/mapper/wallet/WalletMapper.xml
@@ -23,7 +23,9 @@
    </resultMap>
    <select id="getWaittingSettlementAmount" resultType="java.math.BigDecimal">
         <include refid="supplier_settlement_amount"></include>
      <!-- <include refid="supplier_settlement_amount"></include>-->
        <include refid="supplier_settlement_amount_timing"></include>
    </select>
    <!--    总交易额-->
@@ -32,7 +34,9 @@
        from t_order_item oi
        left join t_order o
        on oi.order_id = o.id
        where oi.supplier_id = #{dto.supplierId}
        where o.deleted=0
          and o.status_backend not in ('PENDING','CANCEL','REFUND')
          and  oi.supplier_id = #{dto.supplierId}
          and o.payment_time &gt; #{dto.startTime}
    </select>
@@ -47,4 +51,40 @@
          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>