You've already forked FrameTour-BE
feat(pricing): 增加商品参数校验和默认值设置
All checks were successful
ZhenTu-BE/pipeline/head This commit looks good
All checks were successful
ZhenTu-BE/pipeline/head This commit looks good
- 为每个产品增加产品类型和产品 ID 的非空校验 - 为购买数量和数量设置默认值为 1,如果未提供
This commit is contained in:
@@ -35,7 +35,21 @@ public class PriceCalculationServiceImpl implements IPriceCalculationService {
|
|||||||
if (request.getProducts() == null || request.getProducts().isEmpty()) {
|
if (request.getProducts() == null || request.getProducts().isEmpty()) {
|
||||||
throw new PriceCalculationException("商品列表不能为空");
|
throw new PriceCalculationException("商品列表不能为空");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
request.getProducts().forEach(product -> {
|
||||||
|
if (product.getProductType() == null) {
|
||||||
|
throw new PriceCalculationException("商品类型不能为空");
|
||||||
|
}
|
||||||
|
if (product.getProductId() == null) {
|
||||||
|
throw new PriceCalculationException("商品ID不能为空");
|
||||||
|
}
|
||||||
|
if (product.getPurchaseCount() == null) {
|
||||||
|
product.setPurchaseCount(1);
|
||||||
|
}
|
||||||
|
if (product.getQuantity() == null) {
|
||||||
|
product.setQuantity(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
// 计算商品价格和原价
|
// 计算商品价格和原价
|
||||||
PriceDetails priceDetails = calculateProductsPriceWithOriginal(request.getProducts());
|
PriceDetails priceDetails = calculateProductsPriceWithOriginal(request.getProducts());
|
||||||
BigDecimal totalAmount = priceDetails.getTotalAmount();
|
BigDecimal totalAmount = priceDetails.getTotalAmount();
|
||||||
|
Reference in New Issue
Block a user