From 6844012e52912b53d2739759d7b9f5591ac21f24 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 16 May 2022 19:29:55 +0800
Subject: [PATCH] fix goods edit

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java |   50 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 33 insertions(+), 17 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
index d742db5..0ebb028 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
@@ -8,6 +8,7 @@
 import cc.mrbird.febs.mall.mapper.*;
 import cc.mrbird.febs.mall.service.IAdminMallGoodsService;
 import cc.mrbird.febs.mall.vo.*;
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
@@ -146,7 +147,6 @@
             }
         }
 
-
         if (CollUtil.isNotEmpty(addMallGoodsSkuDtos)) {
             for (AddMallGoodsSkuDto addMallGoodsSkuDto : addMallGoodsSkuDtos) {
                 MallGoodsStyle mallGoodsStyleSku = mallGoodsStyleMapper.selectByStyleName(addMallGoodsSkuDto.getStyleName(), mallGoods.getId());
@@ -233,6 +233,17 @@
     }
 
     @Override
+    public MallGoods selectGoodsById(long id) {
+        MallGoods mallGoods = mallGoodsMapper.selectById(id);
+
+        List<MallGoodsSku> skus = mallGoodsSkuMapper.selectSkuByGoodsId(mallGoods.getId());
+        List<String> thumbs = mallGoodsImagesMapper.selectByGoodId(mallGoods.getId());
+        mallGoods.setImages(thumbs);
+        mallGoods.setSkus(skus);
+        return mallGoods;
+    }
+
+    @Override
     @Transactional
     public FebsResponse updateMallGoods(MallGoodsUpdateDto mallGoodsUpdateDto) {
         String goodsName = mallGoodsUpdateDto.getGoodsName();
@@ -288,21 +299,10 @@
         }
         //新增商品
         MallGoods mallGoods = mallGoodsMapper.selectById(mallGoodsUpdateDto.getId());
-        mallGoods.setGoodsNo(mallGoodsUpdateDto.getGoodsNo());
-        mallGoods.setGoodsName(mallGoodsUpdateDto.getGoodsName());
-        mallGoods.setGoodsIntrodution(mallGoodsUpdateDto.getGoodsIntrodution());
-        mallGoods.setUnit(mallGoodsUpdateDto.getUnit());
-        mallGoods.setThumb(mallGoodsUpdateDto.getThumb());
-        mallGoods.setGoodsDetails(mallGoodsUpdateDto.getGoodsDetails());
-        mallGoods.setOriginalPrice(mallGoodsUpdateDto.getOriginalPrice());
-        mallGoods.setCategoryId(mallGoodsUpdateDto.getCategoryId());
-        mallGoods.setPresentPrice(mallGoodsUpdateDto.getPresentPrice());
-        mallGoods.setIsHot(mallGoodsUpdateDto.getIsHot());
-//        mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED);
+        BeanUtil.copyProperties(mallGoodsUpdateDto, mallGoods);
         mallGoodsMapper.updateById(mallGoods);
 
         mallGoodsImagesMapper.deleteByGoodsId(mallGoodsUpdateDto.getId());
-
         String thumbs = mallGoodsUpdateDto.getThumbs();
         if (StrUtil.isNotEmpty(thumbs)) {
             List<String> imgs = StrUtil.splitTrim(thumbs, ",");
@@ -319,15 +319,29 @@
             }
         }
 
+        // 删除已存在sku
+        List<Long> delSkuIds = mallGoodsUpdateDto.getDelSkuId();
+        if (CollUtil.isNotEmpty(delSkuIds)) {
+            mallGoodsSkuMapper.delSkuByIds(delSkuIds);
+
+            // 如果该样式下sku全删除,则删除该样式
+            List<MallGoodsStyle> styles = mallGoodsStyleMapper.selectByGoodsId(mallGoods.getId());
+            for (MallGoodsStyle style : styles) {
+                if (CollUtil.isEmpty(style.getSkus())) {
+                    mallGoodsStyleMapper.deleteById(style.getId());
+                }
+            }
+        }
+
         List<MailGoodsSkuDto> mailGoodsSkuDto = mallGoodsUpdateDto.getMailGoodsSkuDto();
         Set<String> styles = new HashSet<>();
         if (CollUtil.isNotEmpty(mailGoodsSkuDto)) {
             for (MailGoodsSkuDto addStyleDto : mailGoodsSkuDto) {
-                if (ObjectUtil.isNotEmpty(addStyleDto.getDelLog())) {
-                    mallGoodsSkuMapper.deleteById(addStyleDto.getId());
+//                if (ObjectUtil.isNotEmpty(addStyleDto.getDelLog())) {
+//                    mallGoodsSkuMapper.deleteById(addStyleDto.getId());
+//                    mallShoppingCartMapper.deleteByGoodsIdAndSkuId(addStyleDto.getId(), addStyleDto.getGoodsId());
+//                }
 
-                    mallShoppingCartMapper.deleteByGoodsIdAndSkuId(addStyleDto.getId(), addStyleDto.getGoodsId());
-                }
                 if (ObjectUtil.isEmpty(addStyleDto.getStyleId())) {
                     MallGoodsStyle mallGoodsStyleSku = mallGoodsStyleMapper.selectByStyleName(addStyleDto.getStyleName(), mallGoods.getId());
                     if (ObjectUtil.isEmpty(mallGoodsStyleSku)) {
@@ -359,6 +373,7 @@
                         mallGoodsSku.setPresentPrice(addMallGoodsSkuDto.getPresentPrice());
                         mallGoodsSku.setStyleId(addMallGoodsSkuDto.getStyleId());
                         mallGoodsSku.setGoodsId(mallGoods.getId());
+                        mallGoodsSku.setCostPrice(addMallGoodsSkuDto.getCostPrice());
                         mallGoodsSkuMapper.updateById(mallGoodsSku);
                     } else {
                         //新增商品规格
@@ -371,6 +386,7 @@
                         mallGoodsSku.setOriginalPrice(addMallGoodsSkuDto.getOriginalPrice());
                         mallGoodsSku.setPresentPrice(addMallGoodsSkuDto.getPresentPrice());
                         mallGoodsSku.setStyleId(mallGoodsStyleSku.getId());
+                        mallGoodsSku.setCostPrice(addMallGoodsSkuDto.getCostPrice());
                         mallGoodsSku.setGoodsId(mallGoods.getId());
                         mallGoodsSkuMapper.insert(mallGoodsSku);
                     }

--
Gitblit v1.9.1