From 4ee42556139749bf6f29d47b912da0be6c37da2a Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 15 May 2025 11:29:39 +0800
Subject: [PATCH] feat(mall): 添加商品 SKU静态属性价格字段
---
src/main/resources/mapper/modules/MallGoodsMapper.xml | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 52 insertions(+), 8 deletions(-)
diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml
index 5162606..ce0e50f 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" />
@@ -26,6 +27,10 @@
<result property="carriageAmount" column="carriage_amount" />
<result property="carriageRuleId" column="carriage_rule_id" />
<result property="goodsWeight" column="goods_weight" />
+ <result property="levelOnePrice" column="level_one_price" />
+ <result property="levelTwoPrice" column="level_two_price" />
+ <result property="levelThreePrice" column="level_three_price" />
+ <result property="hasCollect" column="hasCollect" />
<collection property="styles" ofType="cc.mrbird.febs.mall.entity.MallGoodsStyle">
<id property="id" column="style_id" />
<result property="name" column="style_name" />
@@ -37,9 +42,15 @@
<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" />
+ <result property="skuGoodsWeight" column="sku_goods_weight" />
+ <result property="sample" column="sample" />
+ <result property="levelOnePrice" column="sku_level_one_price" />
+ <result property="levelTwoPrice" column="sku_level_two_price" />
+ <result property="levelThreePrice" column="sku_level_three_price" />
</collection>
</collection>
</resultMap>
@@ -47,6 +58,7 @@
<select id="selectGoodsDetailById" resultMap="MallGoodsMap">
select
a.*,
+ case when collection.id is null then 2 else 1 end hasCollect,
b.id style_id,
b.name style_name,
b.goods_id style_goods_id,
@@ -56,12 +68,20 @@
c.stock sku_stock,
c.sku_volume,
c.original_price sku_original_price,
+ FLOOR(a.original_price * a.static_prop) 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) 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,
c.goods_id sku_goods_id
from mall_goods a
left join mall_goods_style b on a.id = b.goods_id
left join mall_goods_sku c on b.id=c.style_id
+ left join mall_member_collection collection on a.id=collection.goods_id
where a.id=#{id}
</select>
@@ -72,21 +92,33 @@
a.goods_name,
a.goods_introdution goodsIntroduction,
a.thumb,
+ a.unit,
a.original_price,
+ FLOOR(a.original_price * a.static_prop) staticPropPrice,
a.present_price,
+ a.level_one_price,
+ a.level_two_price,
+ a.level_three_price,
a.score,
a.is_hot,
a.carriage_type,
a.carriage_amount,
a.carriage_rule_id,
a.goods_weight,
+ a.order_number,
+ <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
+ <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">
@@ -96,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
@@ -111,11 +146,14 @@
</if>
</where>
group by a.id
- order by a.id desc
+ order by a.order_number ASC
) a
<if test="record.sortType != null">
+<!-- <if test="record.sortType == 1">-->
+<!-- order by a.is_hot, a.saleVolume desc, a.id-->
+<!-- </if>-->
<if test="record.sortType == 1">
- order by a.is_hot, a.saleVolume desc, a.id
+ order by a.order_number ASC
</if>
<if test="record.sortType == 2">
order by a.saleVolume desc
@@ -305,7 +343,9 @@
a.goods_name,
a.goods_introdution goodsIntroduction,
a.thumb,
+ a.unit,
a.original_price,
+ FLOOR(a.original_price * a.static_prop) staticPropPrice,
a.present_price,
a.score,
a.is_hot,
@@ -313,6 +353,7 @@
a.carriage_amount,
a.carriage_rule_id,
a.goods_weight,
+ a.order_number,
min(b.id) skuId,
min(b.present_price) price,
sum(b.stock) stock,
@@ -330,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
@@ -344,11 +385,14 @@
</if>
</where>
group by a.id
- order by a.id desc
+ order by a.order_number ASC
) a
<if test="record.sortType != null">
+<!-- <if test="record.sortType == 1">-->
+<!-- order by a.is_hot, a.saleVolume desc, a.id-->
+<!-- </if>-->
<if test="record.sortType == 1">
- order by a.is_hot, a.saleVolume desc, a.id
+ order by a.order_number ASC
</if>
<if test="record.sortType == 2">
order by a.saleVolume desc
--
Gitblit v1.9.1