package cn.iocoder.yudao.module.product.service.sku; import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuUpdateStockReqDTO; import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSkuSaveReqVO; import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; import java.util.Collection; import java.util.List; /** * 商品 SKU Service 接口 * * @author 芋道源码 */ public interface ProductSkuService { /** * 删除商品 SKU * * @param id 编号 */ void deleteSku(Long id); /** * 获得商品 SKU 信息 * * @param id 编号 * @return 商品 SKU 信息 */ ProductSkuDO getSku(Long id); /** * 获得商品 SKU 信息 * * @param id 编号 * @param includeDeleted 是否包含已删除的 * @return 商品 SKU 信息 */ ProductSkuDO getSku(Long id, boolean includeDeleted); /** * 获得商品 SKU 列表 * * @param ids 编号 * @return 商品sku列表 */ List getSkuList(Collection ids); /** * 对 sku 的组合的属性等进行合法性校验 * * @param list sku组合的集合 */ void validateSkuList(List list, Boolean specType); /** * 批量创建 SKU * * @param spuId 商品 SPU 编号 * @param list SKU 对象集合 */ void createSkuList(Long spuId, List list); /** * 根据 SPU 编号,批量更新它的 SKU 信息 * * @param spuId SPU 编码 * @param skus SKU 的集合 */ void updateSkuList(Long spuId, List skus); /** * 更新 SKU 库存(增量) *

* 如果更新的库存不足,会抛出异常 * * @param updateStockReqDTO 更行请求 */ void updateSkuStock(ProductSkuUpdateStockReqDTO updateStockReqDTO); /** * 获得商品 SKU 集合 * * @param spuId spu 编号 * @return 商品sku 集合 */ List getSkuListBySpuId(Long spuId); /** * 获得 spu 对应的 SKU 集合 * * @param spuIds spu 编码集合 * @return 商品 sku 集合 */ List getSkuListBySpuId(Collection spuIds); /** * 通过 spuId 删除 sku 信息 * * @param spuId spu 编码 */ void deleteSkuBySpuId(Long spuId); /** * 更新 sku 属性 * * @param propertyId 属性 id * @param propertyName 属性名 * @return int 影响的行数 */ int updateSkuProperty(Long propertyId, String propertyName); /** * 更新 sku 属性值 * * @param propertyValueId 属性值 id * @param propertyValueName 属性值名字 * @return int 影响的行数 */ int updateSkuPropertyValue(Long propertyValueId, String propertyValueName); }