From 1fc8fde81cbf79ebe95e927f9099cf94c2ccc6e5 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 15 May 2025 17:39:04 +0800
Subject: [PATCH] refactor(mall): 优化退款流程和逻辑

---
 src/main/resources/mapper/modules/MallGoodsMapper.xml |   25 +++++++++++++++++++------
 1 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml
index 2f0e915..5d66621 100644
--- a/src/main/resources/mapper/modules/MallGoodsMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -13,6 +13,7 @@
         <result property="goodsDetails" column="goods_details" />
         <result property="isSale" column="is_sale" />
         <result property="originalPrice" column="original_price" />
+        <result property="staticPropPrice" column="staticPropPrice" />
         <result property="presentPrice" column="present_price" />
         <result property="categoryId" column="category_id" />
         <result property="volume" column="volume" />
@@ -41,6 +42,7 @@
                 <result property="stock" column="sku_stock" />
                 <result property="skuVolume" column="sku_volume" />
                 <result property="originalPrice" column="sku_original_price" />
+                <result property="staticPropPrice" column="sku_static_prop_price" />
                 <result property="presentPrice" column="sku_present_price" />
                 <result property="styleId" column="sku_style_id"/>
                 <result property="goodsId" column="sku_goods_id" />
@@ -66,10 +68,12 @@
             c.stock sku_stock,
             c.sku_volume,
             c.original_price sku_original_price,
+            FLOOR((a.original_price * a.static_prop)/100) staticPropPrice,
             c.present_price sku_present_price,
             c.style_id sku_style_id,
             c.goods_weight sku_goods_weight,
             c.sample sample,
+            FLOOR((c.original_price*a.static_prop)/100) sku_static_prop_price,
             c.level_one_price sku_level_one_price,
             c.level_two_price sku_level_two_price,
             c.level_three_price sku_level_three_price,
@@ -90,6 +94,7 @@
                 a.thumb,
                 a.unit,
                 a.original_price,
+                FLOOR((a.original_price * a.static_prop)/100) staticPropPrice,
                 a.present_price,
                 a.level_one_price,
                 a.level_two_price,
@@ -101,15 +106,19 @@
                 a.carriage_rule_id,
                 a.goods_weight,
                 a.order_number,
-                case when collection.id is null then 2 else 1 end hasCollect,
+                <if test="record.memberId != null">
+                    case when collection.id is null then 2 else 1 end hasCollect,
+                </if>
                 min(b.id) skuId,
                 min(b.present_price) price,
-                sum(b.stock) stock,
+                ifnull(sum(b.stock), a.stock) stock,
                 sum(b.sku_volume) saleVolume
             from mall_goods a
                  left join mall_goods_sku b on a.id=b.goods_id
                  left join mall_goods_category c on a.category_id=c.id
-                 left join mall_member_collection collection on a.id=collection.goods_id
+                 <if test="record.memberId != null">
+                    left join mall_member_collection collection on a.id=collection.goods_id and collection.member_id=#{record.memberId}
+                 </if>
             <where>
                 a.is_sale=1
                 <if test="record != null">
@@ -119,8 +128,11 @@
                     <if test="record.isNormal != null and record.isNormal != ''">
                         and a.is_normal = #{record.isNormal}
                     </if>
-                    <if test="record.goodsType != null and record.goodsType != '' and record.goodsType != 3">
-                        and a.goods_type = #{record.goodsType} and a.present_price != 0
+                    <if test="record.goodsType != null and record.goodsType != '' and record.goodsType == 1">
+                        and a.goods_type = #{record.goodsType}
+                    </if>
+                    <if test="record.goodsType != null and record.goodsType != '' and record.goodsType == 2">
+                        and a.goods_type = #{record.goodsType}
                     </if>
                     <if test="record.goodsType == 3">
                         and a.present_price = 0
@@ -333,6 +345,7 @@
         a.thumb,
         a.unit,
         a.original_price,
+        FLOOR((a.original_price * a.static_prop)/100) staticPropPrice,
         a.present_price,
         a.score,
         a.is_hot,
@@ -358,7 +371,7 @@
                     and a.is_normal = #{record.isNormal}
                 </if>
                 <if test="record.goodsType != null and record.goodsType != '' and record.goodsType != 3">
-                    and a.goods_type = #{record.goodsType} and a.present_price != 0
+                    and a.goods_type = #{record.goodsType}
                 </if>
                 <if test="record.goodsType == 3">
                     and a.present_price = 0

--
Gitblit v1.9.1