From 72cf5cdaef3be1e81da7f59d6ed61fe368f44816 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期三, 08 一月 2025 14:48:46 +0800
Subject: [PATCH] add:物流发货针对散户更改微信发货方式,保存物流单号,未发送之前可更改

---
 src/main/resources/mapper/wallet/WalletReduceMapper.xml |  144 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 123 insertions(+), 21 deletions(-)

diff --git a/src/main/resources/mapper/wallet/WalletReduceMapper.xml b/src/main/resources/mapper/wallet/WalletReduceMapper.xml
index 3501285..de9febc 100644
--- a/src/main/resources/mapper/wallet/WalletReduceMapper.xml
+++ b/src/main/resources/mapper/wallet/WalletReduceMapper.xml
@@ -6,57 +6,115 @@
     <select id="getPage" resultType="com.mzl.flower.dto.response.wallet.WalletReduceVO">
         select *
         from (
-                 SELECT si.id as id,si.fee_supplier as fee ,si.audit_time as audit_time,'sale' as type,'售后扣款' as type_name,o.order_no as order_no,oi.supplier_id as supplier_id
+                 SELECT si.id as id
+                      ,si.fee_supplier as fee
+                      ,si.audit_time as audit_time
+                      ,o.payment_time as payment_time
+                      ,'sale' as type,'售后扣款' as type_name
+                      ,o.order_no as order_no
+                      ,oi.supplier_id as supplier_id
                  FROM t_order_item_sales si
                  join t_order_item oi on oi.id = si.order_item_id
                  left join t_order o on oi.order_id=o.id
-                 where si.deleted=0 and si.status='AGREED' and oi.deleted=0 and o.deleted=0
+                 where o.deleted=0
+                 and o.status_backend not in ('PENDING','CANCEL','REFUND')
+                 and si.deleted=0 and si.status='AGREED' and oi.deleted=0 and o.deleted=0
                 and o.payment_time &gt;= #{dto.walletOnlineTime}
                 <if test="dto.supplierId != null">
                     and oi.supplier_id = #{dto.supplierId}
                 </if>
+<!--                <if test="dto.startDate != null">-->
+<!--                    and DATE_FORMAT(si.audit_time, '%Y-%m-%d') &gt;= #{dto.startDate}-->
+<!--                </if>-->
+<!--                <if test="dto.endDate != null">-->
+<!--                    and DATE_FORMAT(si.audit_time, '%Y-%m-%d') &lt;= #{dto.endDate}-->
+<!--                </if>-->
                 <if test="dto.startDate != null">
-                    and DATE_FORMAT(si.audit_time, '%Y-%m-%d') &gt;= #{dto.startDate}
+                    and DATE_FORMAT(o.payment_time, '%Y-%m-%d') &gt;= #{dto.startDate}
                 </if>
                 <if test="dto.endDate != null">
-                    and DATE_FORMAT(si.audit_time, '%Y-%m-%d') &lt;= #{dto.endDate}
+                    and DATE_FORMAT(o.payment_time, '%Y-%m-%d') &lt;= #{dto.endDate}
                 </if>
                  union
 
-                 select  oic.id as id ,oic.deduct_amount as fee,oic.audit_time as audit_time,oic.type as type,check_type.label as type_name,o.order_no as order_no,oi.supplier_id as supplier_id
+                 select  oic.id as id ,
+                         oic.num*oi.supplier_price AS fee,
+                         oic.audit_time AS audit_time,
+                         o.payment_time as payment_time,
+                         oic.type as type,
+                         check_type.label as type_name,
+                         o.order_no as order_no,
+                         oi.supplier_id as supplier_id
                  from t_order_item_check oic
                  left join t_order_item oi
                  on oic.order_item_id=oi.id
                  left join t_order o
                  on oi.order_id=o.id
                  left join t_code_value check_type
-                on check_type.value=oic.type and check_type.type_code='CHECK_TYPE'
-                 where oic.deleted=0  and oic.audit_status='AGREED' and oi.deleted=0 and o.deleted=0
+                 on check_type.value=oic.type and check_type.type_code='CHECK_TYPE'
+                 where o.deleted=0
+                    and oic.type in ('lack','replace')
+                    and o.status_backend not in ('PENDING','CANCEL','REFUND')
+                    and  oic.deleted=0  and oic.audit_status='AGREED' and oi.deleted=0 and o.deleted=0
                     and o.payment_time &gt;= #{dto.walletOnlineTime}
                 <if test="dto.supplierId != null">
                     and oi.supplier_id = #{dto.supplierId}
                 </if>
+<!--                <if test="dto.startDate != null">-->
+<!--                    and DATE_FORMAT(oic.audit_time, '%Y-%m-%d') &gt;= #{dto.startDate}-->
+<!--                </if>-->
+<!--                <if test="dto.endDate != null">-->
+<!--                    and DATE_FORMAT(oic.audit_time, '%Y-%m-%d') &lt;= #{dto.endDate}-->
+<!--                </if>-->
                 <if test="dto.startDate != null">
-                    and DATE_FORMAT(oic.audit_time, '%Y-%m-%d') &gt;= #{dto.startDate}
+                    and DATE_FORMAT(o.payment_time, '%Y-%m-%d') &gt;= #{dto.startDate}
                 </if>
                 <if test="dto.endDate != null">
-                    and DATE_FORMAT(oic.audit_time, '%Y-%m-%d') &lt;= #{dto.endDate}
+                    and DATE_FORMAT(o.payment_time, '%Y-%m-%d') &lt;= #{dto.endDate}
                 </if>
+                union
+                    select  oic.id as id ,
+                    oic.deduct_amount AS fee,
+                    oic.audit_time AS audit_time,
+                    o.payment_time as payment_time,
+                    oic.type as type,
+                    check_type.label as type_name,
+                    o.order_no as order_no,
+                    oi.supplier_id as supplier_id
+                    from t_order_item_check oic
+                    left join t_order_item oi
+                    on oic.order_item_id=oi.id
+                    left join t_order o
+                    on oi.order_id=o.id
+                    left join t_code_value check_type
+                    on check_type.value=oic.type and check_type.type_code='CHECK_TYPE'
+                    where o.deleted=0
+                    and oic.type in ('reduce')
+                    and o.status_backend not in ('PENDING','CANCEL','REFUND')
+                    and  oic.deleted=0  and oic.audit_status='AGREED' and oi.deleted=0 and o.deleted=0
+                    and o.payment_time &gt;= #{dto.walletOnlineTime}
+                    <if test="dto.supplierId != null">
+                        and oi.supplier_id = #{dto.supplierId}
+                    </if>
+                    <!--                <if test="dto.startDate != null">-->
+                    <!--                    and DATE_FORMAT(oic.audit_time, '%Y-%m-%d') &gt;= #{dto.startDate}-->
+                    <!--                </if>-->
+                    <!--                <if test="dto.endDate != null">-->
+                    <!--                    and DATE_FORMAT(oic.audit_time, '%Y-%m-%d') &lt;= #{dto.endDate}-->
+                    <!--                </if>-->
+                    <if test="dto.startDate != null">
+                        and DATE_FORMAT(o.payment_time, '%Y-%m-%d') &gt;= #{dto.startDate}
+                    </if>
+                    <if test="dto.endDate != null">
+                        and DATE_FORMAT(o.payment_time, '%Y-%m-%d') &lt;= #{dto.endDate}
+                    </if>
+
              ) t
 
         order by audit_time desc
     </select>
-    <select id="getCheckReduceAmount" resultType="java.math.BigDecimal">
-        SELECT sum(si.fee_supplier)
-        FROM t_order_item_sales si
-        join t_order_item oi on oi.id = si.order_item_id
-        left join t_order o on oi.order_id=o.id
-        where si.deleted=0 and si.status='AGREED' and oi.deleted=0 and o.deleted=0
-          and oi.supplier_id = #{dto.supplierId}
-          and o.payment_time &gt;= #{dto.startTime}
-    </select>
-    <select id="getSaleReduceAmount" resultType="java.math.BigDecimal">
-        select  sum(oic.deduct_amount)
+    <select id="getCheckLackReplaceAmount" resultType="java.math.BigDecimal">
+        select  sum(oic.num*oi.supplier_price)
         from t_order_item_check oic
         left join t_order_item oi
         on oic.order_item_id=oi.id
@@ -64,8 +122,52 @@
         on oi.order_id=o.id
         left join t_code_value check_type
         on check_type.value=oic.type and check_type.type_code='CHECK_TYPE'
-        where oic.deleted=0  and oic.audit_status='AGREED' and oi.deleted=0 and o.deleted=0
+        where o.deleted=0
+          and oic.type in ('lack','replace')
+          and o.status_backend not in ('PENDING','CANCEL','REFUND')
+          and oic.deleted=0  and oic.audit_status='AGREED' and oi.deleted=0 and o.deleted=0
           and oi.supplier_id = #{dto.supplierId}
           and o.payment_time &gt;= #{dto.startTime}
     </select>
+    <select id="getSaleReduceAmount" resultType="java.math.BigDecimal">
+
+        SELECT sum(si.fee_supplier)
+        FROM t_order_item_sales si
+        join t_order_item oi on oi.id = si.order_item_id
+        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  si.deleted=0 and si.status='AGREED' and oi.deleted=0 and o.deleted=0
+          and oi.supplier_id = #{dto.supplierId}
+          and o.payment_time &gt;= #{dto.startTime}
+    </select>
+
+    <select id="getStationFeeAmount" resultType="java.math.BigDecimal">
+        SELECT sum(ois.station_fee)
+        FROM t_order_item_settlement ois
+                 join t_order_item oi on oi.id = ois.order_item_id
+                 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  ois.deleted=0 and oi.deleted=0
+          and oi.supplier_id = #{dto.supplierId}
+          and o.payment_time &gt;= #{dto.startTime}
+    </select>
+    <select id="getCheckReduceAmount" resultType="java.math.BigDecimal">
+        select  sum(oic.deduct_amount)
+        from t_order_item_check oic
+         left join t_order_item oi
+         on oic.order_item_id=oi.id
+         left join t_order o
+         on oi.order_id=o.id
+         left join t_code_value check_type
+        on check_type.value=oic.type and check_type.type_code='CHECK_TYPE'
+        where o.deleted=0
+          and oic.type in ('reduce')
+          and o.status_backend not in ('PENDING','CANCEL','REFUND')
+          and oic.deleted=0  and oic.audit_status='AGREED' and oi.deleted=0 and o.deleted=0
+          and oi.supplier_id = #{dto.supplierId}
+          and o.payment_time &gt;= #{dto.startTime}
+
+    </select>
 </mapper>

--
Gitblit v1.9.3