diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java index 5e79582..da920a5 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java @@ -6,6 +6,8 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.Collection; import java.util.List; @@ -13,6 +15,9 @@ import java.util.List; @Mapper public interface ProductSkuMapper extends BaseMapperX { + @Select("SELECT * FROM product_sku WHERE id = #{id}") + ProductSkuDO selectByIdIncludeDeleted(@Param("id") Long id); + default List selectListBySpuId(Long spuId) { return selectList(ProductSkuDO::getSpuId, spuId); } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java index a5926d1..fc00ae7 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/spu/ProductSpuMapper.java @@ -11,6 +11,8 @@ import cn.iocoder.yudao.module.product.enums.ProductConstants; import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.Objects; import java.util.Set; @@ -18,6 +20,9 @@ import java.util.Set; @Mapper public interface ProductSpuMapper extends BaseMapperX { + @Select("SELECT * FROM product_spu WHERE id = #{id}") + ProductSpuDO selectByIdIncludeDeleted(@Param("id") Long id); + /** * 获取商品 SPU 分页列表数据 * diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImpl.java index f123454..34b0766 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImpl.java @@ -91,7 +91,7 @@ public class ProductCommentServiceImpl implements ProductCommentService { } private ProductSkuDO validateSku(Long skuId) { - ProductSkuDO sku = productSkuService.getSku(skuId); + ProductSkuDO sku = productSkuService.getSku(skuId, true); if (sku == null) { throw exception(SKU_NOT_EXISTS); } @@ -99,7 +99,7 @@ public class ProductCommentServiceImpl implements ProductCommentService { } private ProductSpuDO validateSpu(Long spuId) { - ProductSpuDO spu = productSpuService.getSpu(spuId); + ProductSpuDO spu = productSpuService.getSpu(spuId, true); if (null == spu) { throw exception(SPU_NOT_EXISTS); } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java index a6d3f02..749ef45 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java @@ -30,6 +30,15 @@ public interface ProductSkuService { ProductSkuDO getSku(Long id); /** + * 获得商品 SKU 信息 + * + * @param id 编号 + * @param includeDeleted 是否包含已删除的 + * @return 商品 SKU 信息 + */ + ProductSkuDO getSku(Long id, boolean includeDeleted); + + /** * 获得商品 SKU 列表 * * @param ids 编号 diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java index 753ff06..d79e067 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java @@ -69,6 +69,14 @@ public class ProductSkuServiceImpl implements ProductSkuService { } @Override + public ProductSkuDO getSku(Long id, boolean includeDeleted) { + if (includeDeleted) { + return productSkuMapper.selectByIdIncludeDeleted(id); + } + return getSku(id); + } + + @Override public List getSkuList(Collection ids) { if (CollUtil.isEmpty(ids)) { return ListUtil.empty(); diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuService.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuService.java index d7403c1..6ed9460 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuService.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuService.java @@ -52,6 +52,15 @@ public interface ProductSpuService { ProductSpuDO getSpu(Long id); /** + * 获得商品 SPU + * + * @param id 编号 + * @param includeDeleted 是否包含已删除的 + * @return 商品 SPU + */ + ProductSpuDO getSpu(Long id, boolean includeDeleted); + + /** * 获得商品 SPU 列表 * * @param ids 编号数组 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 5b38c8f..fd7f96f 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 @@ -190,6 +190,14 @@ public class ProductSpuServiceImpl implements ProductSpuService { } @Override + public ProductSpuDO getSpu(Long id, boolean includeDeleted) { + if (includeDeleted) { + return productSpuMapper.selectByIdIncludeDeleted(id); + } + return getSpu(id); + } + + @Override public List getSpuList(Collection ids) { if (CollUtil.isEmpty(ids)) { return Collections.emptyList();