mall:价格计算的 API 简单实现

This commit is contained in:
YunaiV
2022-09-12 21:37:24 +08:00
parent 67d365475c
commit 15798cea10
39 changed files with 1017 additions and 375 deletions

View File

@ -1,25 +1,34 @@
package cn.iocoder.yudao.module.product.api.sku;
import cn.iocoder.yudao.module.product.api.sku.dto.SkuDecrementStockBatchReqDTO;
import cn.iocoder.yudao.module.product.api.sku.dto.SkuInfoRespDTO;
import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO;
import java.util.Collection;
import java.util.List;
/**
* 商品 SKU API 接口
*
* @author LeeYan9
* @since 2022-08-26
*/
public interface ProductSkuApi {
/**
* 查询 SKU 信息
*
* @param id SKU 编号
* @return SKU 信息
*/
ProductSkuRespDTO getSku(Long id);
/**
* 根据skuId列表 查询sku信息
* 批量查询 SKU 数组
*
* @param skuIds sku ID列表
* @return sku信息列表
* @param ids SKU 编号列表
* @return SKU 数组
*/
List<SkuInfoRespDTO> getSkusByIds(Collection<Long> skuIds);
List<ProductSkuRespDTO> getSkuList(Collection<Long> ids);
/**
* 批量扣减sku库存
@ -27,4 +36,5 @@ public interface ProductSkuApi {
* @param batchReqDTO sku库存信息列表
*/
void decrementStockBatch(SkuDecrementStockBatchReqDTO batchReqDTO);
}

View File

@ -6,11 +6,13 @@ import lombok.Data;
import java.util.List;
/**
* 商品 SKU 信息 Response DTO
*
* @author LeeYan9
* @since 2022-08-26
*/
@Data
public class SkuInfoRespDTO {
public class ProductSkuRespDTO {
/**
* 商品 SKU 编号自增

View File

@ -1,23 +1,24 @@
package cn.iocoder.yudao.module.product.api.spu;
import cn.iocoder.yudao.module.product.api.sku.dto.SkuInfoRespDTO;
import cn.iocoder.yudao.module.product.api.spu.dto.SpuInfoRespDTO;
import java.util.Collection;
import java.util.List;
/**
* 商品 SPU API 接口
*
* @author LeeYan9
* @since 2022-08-26
*/
public interface ProductSpuApi {
/**
* 根据spuId列表 查询spu信息
* 批量查询 SPU 数组
*
* @param spuIds spu ID列表
* @return spu信息列表
* @param ids SPU 编号列表
* @return SPU 数组
*/
List<SpuInfoRespDTO> getSpusByIds(Collection<Long> spuIds);
List<SpuInfoRespDTO> getSpuList(Collection<Long> ids);
}

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.product.api.spu.dto;
import cn.iocoder.yudao.module.product.api.sku.dto.SkuInfoRespDTO;
import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO;
import cn.iocoder.yudao.module.product.enums.spu.ProductSpuSpecTypeEnum;
import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
import lombok.Data;
@ -80,25 +80,25 @@ public class SpuInfoRespDTO {
/**
* 最小价格,单位使用:分
* <p>
* 基于其对应的 {@link SkuInfoRespDTO#getPrice()} 最小值
* 基于其对应的 {@link ProductSkuRespDTO#getPrice()} 最小值
*/
private Integer minPrice;
/**
* 最大价格,单位使用:分
* <p>
* 基于其对应的 {@link SkuInfoRespDTO#getPrice()} 最大值
* 基于其对应的 {@link ProductSkuRespDTO#getPrice()} 最大值
*/
private Integer maxPrice;
/**
* 市场价,单位使用:分
* <p>
* 基于其对应的 {@link SkuInfoRespDTO#getMarketPrice()} 最大值
* 基于其对应的 {@link ProductSkuRespDTO#getMarketPrice()} 最大值
*/
private Integer marketPrice;
/**
* 总库存
* <p>
* 基于其对应的 {@link SkuInfoRespDTO#getStock()} 求和
* 基于其对应的 {@link ProductSkuRespDTO#getStock()} 求和
*/
private Integer totalStock;
/**

View File

@ -36,5 +36,6 @@ public interface ErrorCodeConstants {
ErrorCode SKU_PROPERTIES_DUPLICATED = new ErrorCode(1008006001, "商品 SKU 的属性组合存在重复");
ErrorCode SPU_ATTR_NUMBERS_MUST_BE_EQUALS = new ErrorCode(1008006002, "一个 SPU 下的每个 SKU其规格数必须一致");
ErrorCode SPU_SKU_NOT_DUPLICATE = new ErrorCode(1008006003, "一个 SPU 下的每个 SKU必须不重复");
ErrorCode SKU_STOCK_NOT_ENOUGH = new ErrorCode(1008006004, "商品 SKU 库存不足");
}