From af085dd2fdea97c66ed9520f31754e1025d9dc02 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期二, 10 十二月 2024 16:06:58 +0800
Subject: [PATCH] 582-在售商品可以直接进行删除,需要进行优化,在售商品删除提示无法删除,需要先进行下架再进行删除

---
 src/main/resources/mapper/payment/OrderMapper.xml |  347 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 262 insertions(+), 85 deletions(-)

diff --git a/src/main/resources/mapper/payment/OrderMapper.xml b/src/main/resources/mapper/payment/OrderMapper.xml
index f46921d..66cd365 100644
--- a/src/main/resources/mapper/payment/OrderMapper.xml
+++ b/src/main/resources/mapper/payment/OrderMapper.xml
@@ -7,80 +7,13 @@
         where status_backend = 'SEND' and partner_id is not null
     </update>
 
+
     <select id="getPartnerOrderReceive" resultType="com.mzl.flower.entity.payment.Order">
         select * from t_order t where status_backend = 'SEND' and partner_id is not null
     </select>
 
     <select id="getOrderStatusCount" resultType="com.mzl.flower.dto.response.payment.OrderStatusCountDTO">
         SELECT q.status_backend value, count(1) orderCount
-        FROM t_order q
-        WHERE q.deleted = 0
-        <if test="condition.orderNo != null and condition.orderNo != ''">
-            AND q.order_no LIKE concat('%', #{condition.orderNo},'%')
-        </if>
-        <if test="condition.customerAddress != null and condition.customerAddress != ''">
-            AND q.customer_address LIKE concat('%', #{condition.customerAddress},'%')
-        </if>
-        <if test="condition.customer != null and condition.customer != ''">
-            AND (q.customer LIKE concat('%', #{condition.customer},'%')
-                or q.customer_tel LIKE concat('%', #{condition.customer},'%')
-            )
-        </if>
-        <if test="condition.createBy != null and condition.createBy != ''">
-            AND q.create_by = #{condition.createBy}
-        </if>
-        <if test="condition.status != null and condition.status != ''">
-            AND q.status = #{condition.status}
-        </if>
-        <if test="condition.statusBackend != null and condition.statusBackend != ''">
-            AND q.status_backend = #{condition.statusBackend}
-        </if>
-        <if test="condition.startDate != null">
-            AND q.payment_time &gt;= #{condition.startDate}
-        </if>
-        <if test="condition.endDate != null">
-            AND q.payment_time &lt;= #{condition.endDate}
-        </if>
-        <if test="condition.createStartDate != null">
-            AND q.create_time &gt;= #{condition.createStartDate}
-        </if>
-        <if test="condition.createEndDate != null">
-            AND q.create_time &lt;= #{condition.createEndDate}
-        </if>
-        <if test="condition.partnerId != null">
-            AND q.partner_id = #{condition.partnerId}
-        </if>
-        <if test="condition.partnerName != null and condition.partnerName != ''">
-            AND q.partner_name LIKE concat('%', #{condition.partnerName},'%')
-        </if>
-        <if test="condition.levelDown != null and condition.levelDown != ''">
-            AND exists(
-                select 1 from t_order_item oi
-                where oi.order_id = q.id
-                and oi.status = 'reduce'
-            )
-            and q.transfer_id is null
-        </if>
-        <if test="condition.billId != null and condition.billId != ''">
-            AND q.bill_id = #{condition.billId}
-        </if>
-        <if test="condition.flowerName != null and condition.flowerName != ''">
-            AND exists(
-                select 1 from t_order_item oi
-                where oi.order_id = q.id
-                and oi.flower_name LIKE concat('%', #{condition.flowerName},'%')
-            )
-        </if>
-        GROUP BY q.status_backend
-    </select>
-
-    <select id="selectOrderList" resultType="com.mzl.flower.dto.response.payment.OrderListDTO">
-        SELECT q.*, u.nick_name createName
-            , (
-                select count(1) from t_order_item oi
-                where oi.order_id = q.id
-                and (oi.status = 'reduce' or oi.status = 'abnormal')
-            ) levelDownCount
         FROM t_order q
         left join t_user u on q.create_by = u.id
         WHERE q.deleted = 0
@@ -104,17 +37,23 @@
         <if test="condition.statusBackend != null and condition.statusBackend != ''">
             AND q.status_backend = #{condition.statusBackend}
         </if>
-        <if test="condition.startDate != null">
-            AND q.payment_time &gt;= #{condition.startDate}
-        </if>
-        <if test="condition.endDate != null">
-            AND q.payment_time &lt;= #{condition.endDate}
-        </if>
+<!--        <if test="condition.startDate != null">-->
+<!--            AND q.payment_time &gt;= #{condition.startDate}-->
+<!--        </if>-->
+<!--        <if test="condition.endDate != null">-->
+<!--            AND q.payment_time &lt;= #{condition.endDate}-->
+<!--        </if>-->
+<!--        <if test="condition.createStartDate != null">-->
+<!--            AND q.create_time &gt;= #{condition.createStartDate}-->
+<!--        </if>-->
+<!--        <if test="condition.createEndDate != null">-->
+<!--            AND q.create_time &lt;= #{condition.createEndDate}-->
+<!--        </if>-->
         <if test="condition.createStartDate != null">
-            AND q.create_time &gt;= #{condition.createStartDate}
+            AND q.payment_time &gt;= #{condition.createStartDate}
         </if>
         <if test="condition.createEndDate != null">
-            AND q.create_time &lt;= #{condition.createEndDate}
+            AND q.payment_time &lt; #{condition.createEndDate}
         </if>
         <if test="condition.partnerId != null">
             AND q.partner_id = #{condition.partnerId}
@@ -129,6 +68,7 @@
                 and (oi.status = 'reduce' or oi.status = 'abnormal')
             )
             and q.transfer_id is null
+            and q.status in ('COLLECTION', 'SEND')
         </if>
         <if test="condition.billId != null and condition.billId != ''">
             AND q.bill_id = #{condition.billId}
@@ -139,6 +79,118 @@
                 where oi.order_id = q.id
                 and oi.flower_name LIKE concat('%', #{condition.flowerName},'%')
             )
+        </if>
+
+        <if test="condition.warehouseLocationCode != null and condition.warehouseLocationCode != ''">
+            AND q.warehouse_location_code LIKE concat('%', #{condition.warehouseLocationCode},'%')
+        </if>
+        <if test="condition.createName != null and condition.createName != ''">
+            AND u.nick_name LIKE concat('%', #{condition.createName},'%')
+        </if>
+        <if test="condition.province != null and condition.province != ''">
+            AND q.customer_province LIKE concat('%', #{condition.province},'%')
+        </if>
+        <if test="condition.city != null and condition.city != ''">
+            AND q.customer_city LIKE concat('%', #{condition.city},'%')
+        </if>
+        <if test="condition.region != null and condition.region != ''">
+            AND q.customer_region LIKE concat('%', #{condition.region},'%')
+        </if>
+        GROUP BY q.status_backend
+    </select>
+
+    <select id="selectOrderList" resultType="com.mzl.flower.dto.response.payment.OrderListDTO">
+        SELECT q.*, u.nick_name createName
+            , (
+                select count(1) from t_order_item oi
+                where oi.order_id = q.id
+                and (oi.status = 'reduce' or oi.status = 'abnormal')
+            ) levelDownCount
+        FROM t_order q
+        left join t_user u on q.create_by = u.id
+        WHERE q.deleted = 0
+        <if test="condition.orderNo != null and condition.orderNo != ''">
+            AND q.order_no LIKE concat('%', #{condition.orderNo},'%')
+        </if>
+        <if test="condition.province != null and condition.province != ''">
+            AND q.customer_province LIKE concat('%', #{condition.province},'%')
+        </if>
+        <if test="condition.city != null and condition.city != ''">
+            AND q.customer_city LIKE concat('%', #{condition.city},'%')
+        </if>
+        <if test="condition.region != null and condition.region != ''">
+            AND q.customer_region LIKE concat('%', #{condition.region},'%')
+        </if>
+        <if test="condition.customerAddress != null and condition.customerAddress != ''">
+            AND q.customer_address LIKE concat('%', #{condition.customerAddress},'%')
+        </if>
+        <if test="condition.address != null and condition.address != ''">
+            AND CONCAT(q.customer_province, q.customer_city, q.customer_region, q.customer_address) LIKE concat('%',
+            #{condition.address},'%')
+        </if>
+        <if test="condition.customer != null and condition.customer != ''">
+            AND (q.customer LIKE concat('%', #{condition.customer},'%')
+                or q.customer_tel LIKE concat('%', #{condition.customer},'%')
+            )
+        </if>
+        <if test="condition.createBy != null and condition.createBy != ''">
+            AND q.create_by = #{condition.createBy}
+        </if>
+        <if test="condition.status != null and condition.status != ''">
+            AND q.status = #{condition.status}
+        </if>
+        <if test="condition.statusBackend != null and condition.statusBackend != ''">
+            AND q.status_backend = #{condition.statusBackend}
+        </if>
+<!--        <if test="condition.startDate != null">-->
+<!--            AND q.payment_time &gt;= #{condition.startDate}-->
+<!--        </if>-->
+<!--        <if test="condition.endDate != null">-->
+<!--            AND q.payment_time &lt;= #{condition.endDate}-->
+<!--        </if>-->
+<!--        <if test="condition.createStartDate != null">-->
+<!--            AND q.create_time &gt;= #{condition.createStartDate}-->
+<!--        </if>-->
+<!--        <if test="condition.createEndDate != null">-->
+<!--            AND q.create_time &lt;= #{condition.createEndDate}-->
+<!--        </if>-->
+        <!-- 修改查询日期对应的的创建时间为支付时间 2024-10-12-->
+        <if test="condition.createStartDate != null">
+            AND q.payment_time  &gt;= #{condition.createStartDate}
+        </if>
+        <if test="condition.createEndDate != null">
+            AND q.payment_time &lt; #{condition.createEndDate}
+        </if>
+        <if test="condition.partnerId != null">
+            AND q.partner_id = #{condition.partnerId}
+        </if>
+        <if test="condition.partnerName != null and condition.partnerName != ''">
+            AND q.partner_name LIKE concat('%', #{condition.partnerName},'%')
+        </if>
+        <if test="condition.levelDown != null and condition.levelDown != ''">
+            AND exists(
+                select 1 from t_order_item oi
+                where oi.order_id = q.id
+                and (oi.status = 'reduce' or oi.status = 'abnormal')
+            )
+            and q.transfer_id is null
+            and q.status in ('COLLECTION', 'SEND')
+        </if>
+        <if test="condition.billId != null and condition.billId != ''">
+            AND q.bill_id = #{condition.billId}
+        </if>
+        <if test="condition.flowerName != null and condition.flowerName != ''">
+            AND exists(
+                select 1 from t_order_item oi
+                where oi.order_id = q.id
+                and oi.flower_name LIKE concat('%', #{condition.flowerName},'%')
+            )
+        </if>
+        <if test="condition.warehouseLocationCode != null and condition.warehouseLocationCode != ''">
+            AND q.warehouse_location_code LIKE concat('%', #{condition.warehouseLocationCode},'%')
+        </if>
+        <if test="condition.createName != null and condition.createName != ''">
+            AND u.nick_name LIKE concat('%', #{condition.createName},'%')
         </if>
 
         ORDER BY q.create_time desc, q.payment_time desc
@@ -168,18 +220,18 @@
         <if test="condition.statusBackend != null and condition.statusBackend != ''">
             AND q.status_backend = #{condition.statusBackend}
         </if>
-        <if test="condition.startDate != null">
-            AND q.payment_time &gt;= #{condition.startDate}
-        </if>
-        <if test="condition.endDate != null">
-            AND q.payment_time &lt;= #{condition.endDate}
-        </if>
         <if test="condition.createStartDate != null">
-            AND q.create_time &gt;= #{condition.createStartDate}
+            AND q.payment_time &gt;= #{condition.createStartDate}
         </if>
         <if test="condition.createEndDate != null">
-            AND q.create_time &lt;= #{condition.createEndDate}
+            AND q.payment_time &lt; #{condition.createEndDate}
         </if>
+<!--        <if test="condition.createStartDate != null">-->
+<!--            AND q.create_time &gt;= #{condition.createStartDate}-->
+<!--        </if>-->
+<!--        <if test="condition.createEndDate != null">-->
+<!--            AND q.create_time &lt;= #{condition.createEndDate}-->
+<!--        </if>-->
         <if test="condition.partnerId != null">
             AND q.partner_id = #{condition.partnerId}
         </if>
@@ -201,7 +253,7 @@
             </foreach>
         </if>
 
-        ORDER BY q.partner_id, q.warehouse_name, q.warehouse_location_code, q.create_time desc, q.payment_time desc
+        ORDER BY q.partner_id DESC, q.warehouse_id, q.warehouse_location_id, q.create_time desc, q.payment_time desc
     </select>
 
     <select id="getSupplierSaleNum" resultType="com.mzl.flower.dto.response.payment.SupplierNumDTO">
@@ -256,4 +308,129 @@
         join t_order_point_goods opg on opg.goods_record_id = gr.id
         where opg.order_id = #{orderId}
     </select>
+    <select id="getFlowerCompleteNumWithinTimeRange" resultType="java.lang.Integer">
+        select IFNULL(sum(oi.num),0) as complete_num
+        from t_order o
+        left join t_order_item oi
+        on o.id=oi.order_id
+        where o.DELETEd=0 and oi.DELETEd=0
+          and o.status_backend not in ('PENDING','CANCEL','REFUND')
+          and o.create_by=#{userId}
+          AND oi.flower_id=#{flowerId}
+          AND o.payment_time BETWEEN  #{startTime}  AND #{endTime}
+    </select>
+
+    <select id="selectOrderExportList" resultType="com.mzl.flower.dto.response.payment.OrderListExportDTO">
+        SELECT q.order_no,q.create_time,q.customer,q.customer_tel,q.total_amount,q.status_backend,q.partner_name,q.warehouse_location_code,q.remarks,
+               u.nick_name createName ,
+               code.label as statusBackendStr,
+               code2.label as specialNeedsStr,
+               CONCAT(q.customer_province, q.customer_city,q.customer_region,q.customer_address) AS customerAddress,
+               (select Sum(COALESCE(oi.num, 0) * COALESCE(oi.supplier_price, 0))
+        from t_order_item oi where order_id = q.id) supplierAmount,
+        (select Sum(oi.num) from t_order_item oi where order_id = q.id) saleNum
+        FROM t_order q
+        left join t_user u on q.create_by = u.id
+        LEFT JOIN (SELECT ct.label, ct.value from t_code_value ct where type_code = 'ORDER_STATUS_BACKEND') code ON q.status_backend = code.value
+        LEFT JOIN (SELECT ct.label, ct.value from t_code_value ct where type_code = 'SPEC_REQ') code2 ON q.special_needs = code2.value
+        WHERE q.deleted = 0
+        <if test="condition.orderNo != null and condition.orderNo != ''">
+            AND q.order_no LIKE concat('%', #{condition.orderNo},'%')
+        </if>
+        <if test="condition.customerAddress != null and condition.customerAddress != ''">
+            AND q.customer_address LIKE concat('%', #{condition.customerAddress},'%')
+        </if>
+        <if test="condition.address != null and condition.address != ''">
+            AND CONCAT(q.customer_province, q.customer_city, q.customer_region, q.customer_address) LIKE concat('%',
+            #{condition.address},'%')
+        </if>
+        <if test="condition.customer != null and condition.customer != ''">
+            AND (q.customer LIKE concat('%', #{condition.customer},'%')
+            or q.customer_tel LIKE concat('%', #{condition.customer},'%')
+            )
+        </if>
+        <if test="condition.createBy != null and condition.createBy != ''">
+            AND q.create_by = #{condition.createBy}
+        </if>
+        <if test="condition.status != null and condition.status != ''">
+            AND q.status = #{condition.status}
+        </if>
+        <if test="condition.statusBackend != null and condition.statusBackend != ''">
+            AND q.status_backend = #{condition.statusBackend}
+        </if>
+        <if test="condition.startDate != null">
+            AND q.payment_time &gt;= #{condition.startDate}
+        </if>
+        <if test="condition.endDate != null">
+            AND q.payment_time &lt; #{condition.endDate}
+        </if>
+        <if test="condition.createStartDate != null">
+            AND q.create_time &gt;= #{condition.createStartDate}
+        </if>
+        <if test="condition.createEndDate != null">
+            AND q.create_time &lt;= #{condition.createEndDate}
+        </if>
+        <if test="condition.partnerId != null">
+            AND q.partner_id = #{condition.partnerId}
+        </if>
+        <if test="condition.partnerName != null and condition.partnerName != ''">
+            AND q.partner_name LIKE concat('%', #{condition.partnerName},'%')
+        </if>
+        <if test="condition.levelDown != null and condition.levelDown != ''">
+            AND exists(
+            select 1 from t_order_item oi
+            where oi.order_id = q.id
+            and (oi.status = 'reduce' or oi.status = 'abnormal')
+            )
+            and q.transfer_id is null
+            and q.status in ('COLLECTION', 'SEND')
+        </if>
+        <if test="condition.billId != null and condition.billId != ''">
+            AND q.bill_id = #{condition.billId}
+        </if>
+        <if test="condition.flowerName != null and condition.flowerName != ''">
+            AND exists(
+            select 1 from t_order_item oi
+            where oi.order_id = q.id
+            and oi.flower_name LIKE concat('%', #{condition.flowerName},'%')
+            )
+        </if>
+        <if test="condition.warehouseLocationCode != null and condition.warehouseLocationCode != ''">
+            AND q.warehouse_location_code LIKE concat('%', #{condition.warehouseLocationCode},'%')
+        </if>
+        ORDER BY q.create_time desc, q.payment_time desc
+    </select>
+
+    <select id="getOrderSaleAmount" resultType="java.math.BigDecimal">
+        SELECT sum(o.payment_amount)
+        FROM t_order o
+        WHERE o.deleted=0
+        and o.status_backend not in ('PENDING','CANCEL','REFUND')
+        <if test="startTime != null">
+            and o.create_time &gt; #{startTime}
+        </if>
+        <if test="endTime != null">
+            and o.create_time &lt;= #{endTime}
+        </if>
+    </select>
+
+<!--    获取所有的订单数据,以及时间数据-->
+    <select id="selectAllDateList" resultType="com.mzl.flower.entity.payment.Order">
+        SELECT t.id,t.payment_time,
+               CASE
+                   WHEN t.payment_time > DATE(t.payment_time) + INTERVAL 17 HOUR THEN DATE(t.payment_time) + INTERVAL 1 DAY
+                   ELSE DATE(t.payment_time)
+                   END AS payment_date,
+               t.create_time,
+               CASE
+                   WHEN t.create_time > DATE(t.create_time) + INTERVAL 17 HOUR THEN DATE(t.create_time) + INTERVAL 1 DAY
+                   ELSE DATE(t.create_time)
+                   END AS create_date
+        FROM t_order t
+        order by t.create_time desc
+    </select>
+
+    <update id="updatePaymentCreateDate">
+        update t_order  set payment_date_sta=#{order.paymentDate}, create_date_sta=#{order.createDate} where id=#{order.id}
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3