diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java index c98d7f3acd..5b38c8f6b7 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java +++ b/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