From d2985d31ba7b387749b2350882172f675b923347 Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Mon, 14 Jul 2025 16:22:38 +0800
Subject: [PATCH] 订单流程补充

---
 oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml |  176 ++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 127 insertions(+), 49 deletions(-)

diff --git a/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml b/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml
index 4b091cd..de091c0 100644
--- a/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml
+++ b/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml
@@ -7,15 +7,19 @@
         <result column="return_status" property="returnStatus"/>
         <result column="return_status_describe" property="returnStatusDescribe"/>
         <result column="order_num" property="orderNum"/>
+        <result column="order_store_num" property="orderStoreNum"/>
+        <result column="order_time" property="orderTime"/>
+        <result column="send_price" property="sendPrice"/>
+        <result column="send_type" property="sendType"/>
         <result column="pay_type" property="payType"/>
         <result column="user_id" property="userId"/>
         <result column="username" property="username"/>
         <result column="store_id" property="storeId"/>
         <result column="store_name" property="storeName"/>
         <result column="store_logo" property="storeLogo"/>
-        <result column="original_price" property="originalPrice"/>
-        <result column="paid_price" property="paidPrice"/>
-        <result column="actually_pay_price" property="actuallyPayPrice"/>
+        <result column="order_original_price" property="originalPrice"/>
+        <result column="order_paid_price" property="paidPrice"/>
+        <result column="order_actually_pay_price" property="actuallyPayPrice"/>
         <result column="refund_price" property="refundPrice"/>
         <result column="refund_status" property="refundStatus"/>
         <result column="success_time" property="successTime"/>
@@ -31,63 +35,137 @@
         <result column="create_time" property="createTime"/>
         <result column="update_by" property="updateBy"/>
         <result column="update_time" property="updateTime"/>
+        <result column="rider_id" property="riderId"/>
+        <result column="rider_phone" property="riderPhone"/>
+        <result column="rider_name" property="riderName"/>
+        <collection property="productSnapshots" ofType="com.oying.modules.sh.domain.OrderReturnProductSnapshot">
+            <id column="snapshot_id" property="snapshotId"/>
+            <result column="product_id" property="productId"/>
+            <result column="product_code" property="productCode"/>
+            <result column="product_barcode" property="productBarcode"/>
+            <result column="product_name" property="productName"/>
+            <result column="product_title" property="productTitle"/>
+            <result column="product_main_image" property="productMainImage"/>
+            <result column="product_description" property="productDescription"/>
+            <result column="param_data" property="paramData"/>
+            <result column="unit_price" property="unitPrice"/>
+            <result column="detail_count" property="detailCount"/>
+            <result column="original_price" property="originalPrice"/>
+            <result column="paid_price" property="paidPrice"/>
+            <result column="actually_pay_price" property="actuallyPayPrice"/>
+        </collection>
     </resultMap>
 
     <sql id="Base_Column_List">
-        return_id, return_num, return_status, return_status_describe, order_num, pay_type, user_id, username, store_id, store_name, store_logo, original_price, paid_price, actually_pay_price, refund_price, refund_status, success_time, channel, reason, remark, photos, audit_status, audit_user, audit_time, audit_message, create_by, create_time, update_by, update_time
+        o.return_id, o.return_num, o.return_status, o.return_status_describe, o.order_num, o.order_store_num,
+        o.order_time, o.send_time, o.send_type, o.pay_type, o.user_id, o.username, o.store_id, o.store_name, o.store_logo,
+        o.original_price order_original_price, o.paid_price order_paid_price, o.actually_pay_price order_actually_pay_price,
+        o.refund_price, o.refund_status, o.success_time, o.channel, o.reason, o.remark, o.photos, o.audit_status,
+        o.audit_user, o.audit_time, o.audit_message, o.rider_id, o.rider_phone, o.rider_name,
+        o.create_by, o.create_time, o.update_by, o.update_time
     </sql>
+
+    <sql id="Product_Column_List">
+        p.snapshot_id, p.product_id, p.product_code, p.product_barcode, p.product_name, p.product_title, p.product_main_image,
+        p.product_description, p.param_data, p.unit_price, p.detail_count, p.original_price, p.paid_price, p.actually_pay_price
+    </sql>
+    <sql id="Where_sql">
+        <where>
+            <if test="criteria.returnNum != null">
+                and o.return_num like concat('%',#{criteria.returnNum},'%')
+            </if>
+            <if test="criteria.returnStatus != null and criteria.returnStatus.size() > 0">
+                and o.return_status IN
+                <foreach collection="criteria.returnStatus" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="criteria.orderNum != null">
+                and o.order_num like concat('%',#{criteria.orderNum},'%')
+            </if>
+            <if test="criteria.payType != null">
+                and o.pay_type = #{criteria.payType}
+            </if>
+            <if test="criteria.userId != null">
+                and o.user_id = #{criteria.userId}
+            </if>
+            <if test="criteria.username != null">
+                and o.username like concat('%',#{criteria.username},'%')
+            </if>
+            <if test="criteria.storeId != null">
+                and o.store_id = #{criteria.storeId}
+            </if>
+            <if test="criteria.refundStatus != null">
+                and o.refund_status = #{criteria.refundStatus}
+            </if>
+            <if test="criteria.auditUser != null">
+                and o.audit_user like concat('%',#{criteria.auditUser},'%')
+            </if>
+            <if test="criteria.successTime != null and criteria.successTime.size() > 0">
+                AND o.success_time BETWEEN #{criteria.successTime[0]} AND #{criteria.successTime[1]}
+            </if>
+            <if test="criteria.auditTime != null and criteria.auditTime.size() > 0">
+                AND o.audit_time BETWEEN #{criteria.auditTime[0]} AND #{criteria.auditTime[1]}
+            </if>
+            <if test="criteria.createTime != null and criteria.createTime.size() > 0">
+                AND o.create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
+            </if>
+        </where>
+    </sql>
+
+    <sql id="Where_Sql_Product">
+        <where>
+            <if test="blurry != null and blurry != ''">
+                and (p.product_code like concat('%',#{blurry},'%')
+                or p.product_barcode like concat('%',#{blurry},'%')
+                or p.product_name like concat('%',#{blurry},'%')
+                or p.product_title like concat('%',#{blurry},'%')
+                or p.product_description like concat('%',#{blurry},'%')
+                or o.orderNum like concat('%',#{blurry},'%')
+                or o.order_describe like concat('%',#{blurry},'%')
+                or o.username like concat('%',#{blurry},'%')
+                or o.order_num like concat('%',#{blurry},'%'))
+            </if>
+        </where>
+    </sql>
+
     <update id="updatePayStatus">
-        update sh_order_return set return_status = #{payState}, success_time = #{payTime}
-                               where order_num = #{orderNum}
+        update sh_order_return
+        set return_status = #{payState},
+            success_time  = #{payTime}
+        where order_num = #{orderNum}
     </update>
 
     <select id="findAll" resultMap="BaseResultMap">
-        select
+        select o.* ,
+        <include refid="Product_Column_List"/>
+        from ( select
         <include refid="Base_Column_List"/>
-        from sh_order_return
-        <where>
-            <if test="criteria.returnNum != null">
-                and return_num like concat('%',#{criteria.returnNum},'%')
-            </if>
-            <if test="criteria.returnStatus != null">
-                and return_status = #{criteria.returnStatus}
-            </if>
-            <if test="criteria.orderNum != null">
-                and order_num like concat('%',#{criteria.orderNum},'%')
-            </if>
-            <if test="criteria.payType != null">
-                and pay_type = #{criteria.payType}
-            </if>
-            <if test="criteria.userId != null">
-                and user_id = #{criteria.userId}
-            </if>
-            <if test="criteria.username != null">
-                and username like concat('%',#{criteria.username},'%')
-            </if>
-            <if test="criteria.storeId != null">
-                and store_id = #{criteria.storeId}
-            </if>
-            <if test="criteria.refundStatus != null">
-                and refund_status = #{criteria.refundStatus}
-            </if>
-            <if test="criteria.auditUser != null">
-                and audit_user like concat('%',#{criteria.auditUser},'%')
-            </if>
-            <if test="criteria.successTime != null and criteria.successTime.size() > 0">
-                AND success_time BETWEEN #{criteria.successTime[0]} AND #{criteria.successTime[1]}
-            </if>
-            <if test="criteria.auditTime != null and criteria.auditTime.size() > 0">
-                AND audit_time BETWEEN #{criteria.auditTime[0]} AND #{criteria.auditTime[1]}
-            </if>
-            <if test="criteria.createTime != null and criteria.createTime.size() > 0">
-                AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
-            </if>
-        </where>
-        order by return_id desc
+        from sh_order_return as o
+        <include refid="Where_sql"/>
+        order by o.return_id desc ) o
+        left join sh_order_return_product_snapshot as p on p.return_num = o.return_num
+        <include refid="Where_Sql_Product"/>
+        order by o.order_id desc
     </select>
     <select id="getByReturnNum" resultMap="BaseResultMap">
-        select
+        select o.* from ( select
         <include refid="Base_Column_List"/>
-        from sh_order_return where return_num = #{returnNum}
+        from sh_order_return as o ) o
+        left join sh_order_return_product_snapshot as p on p.return_num = o.return_num
+        from sh_order_return as o where o.return_num = #{returnNum}
+    </select>
+    <select id="countAll" resultType="java.lang.Long">
+        select count(1) from (
+        select distinct o.*
+        p.product_code, p.product_barcode, p.product_name, p.product_title, p.product_description
+        from ( select
+        <include refid="Base_Column_List"/>
+        from sh_order_return as o
+        <include refid="Where_sql"/>
+        ) o
+        left join sh_order_return_product_snapshot as p on p.return_num = o.return_num
+        <include refid="Where_Sql_Product"/>
+        ) t
     </select>
 </mapper>

--
Gitblit v1.9.3