Просмотр исходного кода

!1149 【缺陷修复】商城: spu 更新会重置实际销量和浏览量的问题
Merge pull request !1149 from puhui999/develop2

芋道源码 8 месяцев назад
Родитель
Сommit
79c9b114d9

+ 6 - 4
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java

@@ -78,7 +78,7 @@ public class ProductSpuServiceImpl implements ProductSpuService {
     @Transactional(rollbackFor = Exception.class)
     public void updateSpu(ProductSpuSaveReqVO updateReqVO) {
         // 校验 SPU 是否存在
-        validateSpuExists(updateReqVO.getId());
+        ProductSpuDO spu = validateSpuExists(updateReqVO.getId());
         // 校验分类、品牌
         validateCategory(updateReqVO.getCategoryId());
         brandService.validateProductBrand(updateReqVO.getBrandId());
@@ -87,7 +87,7 @@ public class ProductSpuServiceImpl implements ProductSpuService {
         productSkuService.validateSkuList(skuSaveReqList, updateReqVO.getSpecType());
 
         // 更新 SPU
-        ProductSpuDO updateObj = BeanUtils.toBean(updateReqVO, ProductSpuDO.class);
+        ProductSpuDO updateObj = BeanUtils.toBean(updateReqVO, ProductSpuDO.class).setStatus(spu.getStatus());
         initSpuFromSkus(updateObj, skuSaveReqList);
         productSpuMapper.updateById(updateObj);
         // 批量更新 SKU
@@ -176,10 +176,12 @@ public class ProductSpuServiceImpl implements ProductSpuService {
         productSkuService.deleteSkuBySpuId(id);
     }
 
-    private void validateSpuExists(Long id) {
-        if (productSpuMapper.selectById(id) == null) {
+    private ProductSpuDO validateSpuExists(Long id) {
+        ProductSpuDO spuDO = productSpuMapper.selectById(id);
+        if (spuDO == null) {
             throw exception(SPU_NOT_EXISTS);
         }
+        return spuDO;
     }
 
     @Override