From c23f6436ef6f9fb6a17fcef51c2b81958e01e0a9 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 02 Dec 2022 14:40:44 +0800
Subject: [PATCH] 20221126

---
 src/main/resources/mapper/modules/MallGoodsMapper.xml                       |   63 +++++++++++++++++++++++++++++++
 src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java         |    4 ++
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java    |    9 ++++
 src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java               |    3 +
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java |    5 ++
 5 files changed, 84 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java
index 55b08e3..ed39eb8 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java
@@ -39,6 +39,15 @@
         return new FebsResponse().success().data(mallGoodsService.findMallGoodsListInPage(queryDto));
     }
 
+    @ApiOperation(value = "获取商城商品", notes = "获取商城商品")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = MallGoodsListVo.class)
+    })
+    @PostMapping(value = "/goodsListNoPage")
+    public FebsResponse goodsListNoPage(@RequestBody MallGoodsQueryDto queryDto) {
+        return new FebsResponse().success().data(mallGoodsService.findMallGoodsListNoPage(queryDto));
+    }
+
     @ApiOperation(value = "获取商品详情", notes = "获取商品详情")
     @ApiResponses({
             @ApiResponse(code = 200, message = "success", response = MallGoodsDetailsVo.class)
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
index fe37826..e0e1c42 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
@@ -52,4 +52,7 @@
     Integer upDateStockAndVolumeByGoodsId(@Param("id")Long id,@Param("cnt")Integer cnt);
 
     Integer updateStockAndVolumeByGoodsId(@Param("id")Long id,@Param("cnt")Integer cnt);
+
+    List<MallGoodsListVo> selectMallGoodsListQueryNoPage(@Param("record")MallGoodsQueryDto queryDto);
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java
index 8a2fbfb..a806b59 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java
@@ -11,6 +11,8 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 public interface IApiMallGoodsService extends IService<MallGoods> {
 
     IPage<MallGoodsListVo> findMallGoodsListInPage(MallGoodsQueryDto queryDto);
@@ -22,4 +24,6 @@
     ApiMallGoodsDeliveryVo findDeliverySetting();
 
     MallGoodsCommentVo findMallGoodsCommentLevelByGoodsId(Long id);
+
+    List<MallGoodsListVo> findMallGoodsListNoPage(MallGoodsQueryDto queryDto);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
index d449747..e80afe0 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
@@ -54,6 +54,11 @@
     }
 
     @Override
+    public List<MallGoodsListVo> findMallGoodsListNoPage(MallGoodsQueryDto queryDto) {
+        return this.baseMapper.selectMallGoodsListQueryNoPage(queryDto);
+    }
+
+    @Override
     public MallGoodsDetailsVo findMallGoodsDetailsById(Long id) {
         MallGoods mallGoods = this.baseMapper.selectGoodsDetailById(id);
         if (mallGoods == null) {
diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml
index 6f5ee74..faa756b 100644
--- a/src/main/resources/mapper/modules/MallGoodsMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -278,4 +278,67 @@
         where id=#{id} and  volume - #{cnt} <![CDATA[ >= ]]> 0
     </update>
 
+    <select id="selectMallGoodsListQueryNoPage" resultType="cc.mrbird.febs.mall.vo.MallGoodsListVo">
+        select * from (
+        select
+        a.id,
+        a.goods_name,
+        a.goods_introdution goodsIntroduction,
+        a.thumb,
+        a.original_price,
+        a.present_price,
+        a.score,
+        a.is_hot,
+        min(b.id) skuId,
+        min(b.present_price) price,
+        sum(b.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
+        <where>
+            a.is_sale=1
+            <if test="record != null">
+                <if test="record.isHot != null and record.isHot != ''">
+                    and a.is_hot = #{record.isHot}
+                </if>
+                <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>
+                <if test="record.goodsType == 3">
+                    and a.present_price = 0
+                </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>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1