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 793c983..44d171b 100644 --- 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 @@ -211,11 +211,13 @@ public class ProductSpuServiceImpl implements ProductSpuService { ProductSpuSaveReqVO spuSaveReqVO = convertDeviceSpuToSpu(updateReqVO, deviceImei); // 7. 更新 SPU(复用现有逻辑) - ProductSpuDO updateObj = BeanUtils.toBean(spuSaveReqVO, ProductSpuDO.class).setStatus(spu.getStatus()); + ProductSpuDO updateObj = BeanUtils.toBean(spuSaveReqVO, ProductSpuDO.class) + .setId(spu.getId()) // 关键:更新场景必须带上原 SPU 主键,避免误新增/误更新 + .setStatus(spu.getStatus()); initSpuFromSkus(updateObj, skuSaveReqList); productSpuMapper.updateById(updateObj); // 批量更新 SKU - productSkuService.updateSkuList(updateObj.getId(), skuSaveReqList); + productSkuService.updateSkuList(spu.getId(), skuSaveReqList); } @Override