From c26092c422c4b72fa5d51a38f6de1b48ab1ccd87 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 27 五月 2024 15:53:36 +0800
Subject: [PATCH] 提交普通拍品、资讯文章、商城商品收藏基础代码

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java |   58 +++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 49 insertions(+), 9 deletions(-)

diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
index 63ab9f8..37798e5 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
@@ -4,27 +4,33 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ruoyi.common.core.enums.ListingStatusEnum;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.Checker;
 import com.ruoyi.common.core.utils.page.CollUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleValueDTO;
-import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuDTO;
-import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuQuery;
-import com.ruoyi.goods.controller.mamagement.VO.GoodsSkuVO;
-import com.ruoyi.goods.domain.pojo.GoodsInfoTitleValue;
-import com.ruoyi.goods.domain.pojo.GoodsSku;
+import com.ruoyi.goods.controller.management.dto.GoodsInfoTitleValueDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsSkuDTO;
+import com.ruoyi.goods.controller.management.dto.GoodsSkuQuery;
+import com.ruoyi.goods.controller.management.vo.GoodsSkuVO;
+import com.ruoyi.goods.domain.GoodsGroupPurchase;
+import com.ruoyi.goods.domain.GoodsInfoTitleValue;
 import com.ruoyi.goods.mapper.GoodsSkuMapper;
+import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
 import com.ruoyi.goods.service.IGoodsInfoTitleValueService;
+import com.ruoyi.goods.service.IGoodsSeckillService;
 import com.ruoyi.goods.service.IGoodsSkuService;
+import com.ruoyi.system.api.domain.GoodsSeckill;
+import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
 import java.util.List;
 import java.util.Objects;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 /**
@@ -41,6 +47,8 @@
 public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> implements IGoodsSkuService {
 
     private final IGoodsInfoTitleValueService goodsInfoTitleValueService;
+    private final IGoodsSeckillService goodsSeckillService;
+    private final IGoodsGroupPurchaseService goodsGroupPurchaseService;
     private static final ObjectMapper objectMapper = new ObjectMapper();
 
     /**
@@ -140,8 +148,9 @@
                         query.getSkuName())
                 .eq(StringUtils.isNotNull(query.getListingStatus()
                 ), GoodsSku::getListingStatus, query.getListingStatus())
-                .page(new Page<GoodsSku>(query.getPageCurr(), query.getPageSize()));
-
+                .eq(query.getQueryType().equals(1), GoodsSku::getListingStatus,
+                        ListingStatusEnum.ON_SHELVES)
+                .page(new Page<>(query.getPageCurr(), query.getPageSize()));
         return PageDTO.of(page, GoodsSkuVO.class);
     }
 
@@ -149,13 +158,44 @@
      * 更新商品SKU的状态。
      *
      * @param dto 数据传输对象,包含需要更新的SKU的ID和新的上架状态。 其中,ID用于指定要更新的具体SKU,listingStatus用于指定新的上架状态。
-     * @return 无返回值。
      */
     @Override
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
     public void updStatus(ListStatusDTO dto) {
         this.lambdaUpdate()
                 .eq(GoodsSku::getId, dto.getId())
                 .set(GoodsSku::getListingStatus, dto.getListingStatus())
                 .update();
+        //关联的秒杀商品和团购商品同步下架
+        if (dto.getListingStatus().equals(ListingStatusEnum.REMOVED_FROM_THE_SHELF)) {
+            updateGoodsStatus(dto);
+        }
+    }
+
+    private void updateGoodsStatus(ListStatusDTO dto) {
+        goodsSeckillService.lambdaUpdate()
+                .set(GoodsSeckill::getListingStatus,
+                        ListingStatusEnum.REMOVED_FROM_THE_SHELF)
+                .eq(GoodsSeckill::getListingStatus, ListingStatusEnum.ON_SHELVES)
+                .eq(GoodsSeckill::getGoodsSkuId, dto.getId()).update();
+        goodsGroupPurchaseService.lambdaUpdate()
+                .set(GoodsGroupPurchase::getListingStatus,
+                        ListingStatusEnum.REMOVED_FROM_THE_SHELF)
+                .eq(GoodsGroupPurchase::getListingStatus,
+                        ListingStatusEnum.ON_SHELVES)
+                .eq(GoodsGroupPurchase::getGoodsSkuId, dto.getId()).update();
+    }
+
+    /**
+     * 根据商品名称查询商品SKU列表。
+     *
+     * @param goodsSkuName 商品名称
+     * @return List<GoodsSku>商品SKU列表
+     */
+    @Override
+    public List<GoodsSku> getGoodsByName(String goodsSkuName) {
+        return this.lambdaQuery()
+                .like(StringUtils.isNotEmpty(goodsSkuName), GoodsSku::getSkuName, goodsSkuName)
+                .list();
     }
 }

--
Gitblit v1.7.1