From 5289e9842a8889f4128d95501ae80e1e93f4d6ac Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sun, 26 Sep 2021 17:35:41 +0800
Subject: [PATCH] fix

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

diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml
index 85a4ea2..e8ec726 100644
--- a/src/main/resources/mapper/modules/MallGoodsMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -2,32 +2,149 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cc.mrbird.febs.mall.mapper.MallGoodsMapper">
 
-    <select id="selectMallGoodsListQueryInPage" resultType="cc.mrbird.febs.mall.vo.MallGoodsListVo">
+    <resultMap id="MallGoodsMap" type="cc.mrbird.febs.mall.entity.MallGoods">
+        <id property="id" column="id" />
+        <result property="goodsNo" column="goods_no" />
+        <result property="goodsName" column="goods_name" />
+        <result property="goodsIntrodution" column="goods_introdution" />
+        <result property="unit" column="unit" />
+        <result property="thumb" column="thumb" />
+        <result property="goodsDetails" column="goods_details" />
+        <result property="isSale" column="is_sale" />
+        <result property="originalPrice" column="original_price" />
+        <result property="presentPrice" column="present_price" />
+        <result property="categoryId" column="category_id" />
+        <collection property="styles" ofType="cc.mrbird.febs.mall.entity.MallGoodsStyle">
+            <id property="id" column="style_id" />
+            <result property="name" column="style_name" />
+            <result property="goodsId" column="style_goods_id" />
+            <collection property="skus" ofType="cc.mrbird.febs.mall.entity.MallGoodsSku">
+                <id property="id" column="sku_id" />
+                <result property="skuName" column="sku_name" />
+                <result property="skuImage" column="sku_image" />
+                <result property="stock" column="stock" />
+                <result property="skuVolume" column="sku_volume" />
+                <result property="originalPrice" column="sku_original_price" />
+                <result property="presentPrice" column="sku_present_price" />
+                <result property="styleId" column="sku_style_id"/>
+                <result property="goodsId" column="sku_goods_id" />
+            </collection>
+        </collection>
+    </resultMap>
+
+    <select id="selectGoodsDetailById" resultMap="MallGoodsMap">
         select
-            a.id,
-            a.goods_name,
-            a.goods_introdution,
-            a.thumb,
-            a.original_price,
-            a.present_price,
-            sum(b.sku_volume) saleVolume
+            a.*,
+            b.id style_id,
+            b.name style_name,
+            b.goods_id style_goods_id,
+            c.id sku_id,
+            c.sku_name,
+            c.sku_image,
+            c.stock,
+            c.sku_volume,
+            c.original_price sku_original_price,
+            c.present_price sku_present_price,
+            c.style_id sku_style_id,
+            c.goods_id sku_goods_id
         from mall_goods a
-             inner join mall_goods_sku b on a.id=b.goods_id
-             inner join mall_goods_category c on a.category_id=c.id
+          inner join mall_goods_style b on a.id = b.goods_id
+          inner join mall_goods_sku c on b.id=c.style_id
+        where a.id=#{id}
+    </select>
+
+    <select id="selectMallGoodsListQueryInPage" resultType="cc.mrbird.febs.mall.vo.MallGoodsListVo">
+        select * from (
+            select
+                a.id,
+                a.goods_name,
+                a.goods_introdution,
+                a.thumb,
+                a.original_price,
+                a.present_price,
+                a.is_hot,
+                min(b.present_price) price,
+                sum(b.sku_volume) saleVolume
+            from mall_goods a
+                 inner join mall_goods_sku b on a.id=b.goods_id
+                 inner join mall_goods_category c on a.category_id=c.id
+            <where>
+                a.is_sale=1
+                <if test="record != null">
+                    <if test="record.isHot != null and record.isHot != ''">
+                        and a.is_hot = 1
+                    </if>
+                    <if test="record.categoryId != null and record.categoryId != ''">
+                        and (c.id = #{record.categoryId} or c.parent_id=#{record.categoryId})
+                    </if>
+                    <if test="record.query != null and record.query != ''">
+                        and a.goods_name like CONCAT('%', CONCAT(#{record.query}, '%'))
+                    </if>
+                </if>
+            </where>
+            group by a.id
+            order by a.id desc
+        ) 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 == 2">
+                order by a.saleVolume desc
+            </if>
+            <if test="record.sortType == 3 and record.sort == 'asc'">
+                order by a.price
+            </if>
+            <if test="record.sortType == 3 and record.sort == 'desc'">
+                order by a.price desc
+            </if>
+            <if test="record.sortType == 4">
+                order by a.id desc
+            </if>
+        </if>
+    </select>
+
+    <select id="selectMallGoodsInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallGoodsVo">
+        select
+        a.id,
+        a.goods_name,
+        a.goods_no,
+        a.goods_introdution,
+        a.unit,
+        a.thumb,
+        a.goods_details,
+        a.is_sale,
+        a.original_price,
+        a.present_price,
+        a.is_hot
+        from mall_goods a
         <where>
-            a.is_sale=1
             <if test="record != null">
-                <if test="record.isHot != null and record.isHot != ''">
-                    and a.is_hot = 1
-                </if>
-                <if test="record.categoryId != null and record.categoryId != ''">
-                    and (c.category_id = #{record.categoryId} or c.parent_id=#{record.categoryId})
-                </if>
-                <if test="record.query != null and record.query != ''">
-                    and a.goods_name like CONCAT('%', CONCAT(#{record.query}, '%'))
+                <if test="record.goodsName != null and record.goodsName != ''">
+                    and a.goods_name like CONCAT('%', CONCAT(#{record.goodsName}, '%'))
                 </if>
             </if>
         </where>
         order by a.created_time desc
     </select>
+
+    <select id="selectMallGoodsCountByGoodsName" resultType="java.lang.Integer">
+        select count(id) from mall_goods a where a.goods_name = #{goodsName}
+    </select>
+
+    <select id="selectMallGoodsCountByGoodsNo" resultType="java.lang.Integer">
+        select count(id) from mall_goods a where a.goods_no = #{goodsNo}
+    </select>
+
+    <select id="selectMallGoodsInfoById" resultType="cc.mrbird.febs.mall.vo.AdminMailGoodsDetailVo">
+        select * from mall_goods a where a.id = #{id}
+    </select>
+
+    <select id="selectGoodsStockAndVolume" resultType="java.util.HashMap">
+        select
+            sum(stock) stock,
+            sum(sku_volume) volume
+        from mall_goods_sku
+        where goods_id=#{id}
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1