Commit e61e58e2 by 周晓航

修改套餐扣除逻辑

parent ea25c9d4
...@@ -1976,12 +1976,15 @@ public class OrderSdkAdapter { ...@@ -1976,12 +1976,15 @@ public class OrderSdkAdapter {
} }
// 需要处理 过滤出 可选搭配 // 需要处理 过滤出 可选搭配
if (CollectionUtils.isNotEmpty(product.getComboProduct())) { if (CollectionUtils.isNotEmpty(product.getComboProduct())) {
product.getComboProduct().stream().filter(c -> !c.getIsFixedProduct()).forEach(groupProduct -> { if (product.getStockMode().compareTo(2) == 0) {
if (groupProduct.getHasStockProudct() != null && groupProduct.getHasStockProudct()) { product.getComboProduct().stream().filter(c -> !c.getIsFixedProduct()).forEach(groupProduct -> {
UpdateProductStockRequestDto.ProductStock productStocksVO = this.getProductStockVo(groupProduct); if (groupProduct.getHasStockProudct() != null && groupProduct.getHasStockProudct()) {
productStocks.add(productStocksVO); UpdateProductStockRequestDto.ProductStock productStocksVO = this.getProductStockVo(groupProduct);
} productStocks.add(productStocksVO);
}); }
});
}
} }
} else { } else {
if (product.getHasStockProudct() != null && product.getHasStockProudct()) { if (product.getHasStockProudct() != null && product.getHasStockProudct()) {
......
...@@ -21,6 +21,13 @@ import java.util.List; ...@@ -21,6 +21,13 @@ import java.util.List;
@Data @Data
public class CreateOrderProductRequest extends BaseConfig { public class CreateOrderProductRequest extends BaseConfig {
/** /**
* 库存模式,目前该模式只针对套餐商品会起作用
* 1-使用套餐库存(非关联模式):即套餐库存和套餐中子商品品库存分别存在、互不影响
* 2-使用联动库存(关联模式):即套餐商品的库存为套餐库存和套餐中子商品的库存,当用户购买套餐商品时,同时扣减套餐库存和套餐中子商品的库存,当套餐中任一子商品库存为0或套餐商品的库存为0时,该套餐将不能购买
*/
protected Integer stockMode = 1;
/**
* 商品 * 商品
*/ */
private String productId; private String productId;
......
...@@ -2529,6 +2529,7 @@ public class OrderAdapter { ...@@ -2529,6 +2529,7 @@ public class OrderAdapter {
createOrderProductDemoDto.setCustomerCode(cartGoodsDetailDto.getCustomerCode()); createOrderProductDemoDto.setCustomerCode(cartGoodsDetailDto.getCustomerCode());
createOrderProductDemoDto.setProductCode(cartGoodsDetailDto.getProductCode()); createOrderProductDemoDto.setProductCode(cartGoodsDetailDto.getProductCode());
createOrderProductDemoDto.setHasStockProudct(cartGoodsDetailDto.isStockLimit()); createOrderProductDemoDto.setHasStockProudct(cartGoodsDetailDto.isStockLimit());
createOrderProductDemoDto.setStockMode(cartGoodsDetailDto.getStockMode());
createOrderProductDemoDto.setWeight(cartGoodsDetailDto.getWeight()); createOrderProductDemoDto.setWeight(cartGoodsDetailDto.getWeight());
createOrderProductDemoDto.setUnit(cartGoodsDetailDto.getUnit()); createOrderProductDemoDto.setUnit(cartGoodsDetailDto.getUnit());
createOrderProductDemoDto.setStapleFood(0); createOrderProductDemoDto.setStapleFood(0);
......
...@@ -133,6 +133,13 @@ public class ShoppingCartGoodsDto { ...@@ -133,6 +133,13 @@ public class ShoppingCartGoodsDto {
private String spuId; private String spuId;
/** /**
* 库存模式,目前该模式只针对套餐商品会起作用
* 1-使用套餐库存:即套餐库存和套餐中子商品品库存分别存在、互不影响
* 2-使用联动库存:即套餐商品的库存为套餐库存和套餐中子商品的库存,当用户购买套餐商品时,同时扣减套餐库存和套餐中子商品的库存,当套餐中任一子商品库存为0或套餐商品的库存为0时,该套餐将不能购买
*/
protected Integer stockMode = 1;
/**
* 原有商品类型 * 原有商品类型
* *
* 溯源: 订单有自己的商品逻辑 无法使用原有字段类型记录处理 * 溯源: 订单有自己的商品逻辑 无法使用原有字段类型记录处理
......
...@@ -758,27 +758,6 @@ public class CheckOrder { ...@@ -758,27 +758,6 @@ public class CheckOrder {
.build(); .build();
shoppingCartInfoRequestVo.setTrackingNo(LogThreadLocal.getTrackingNo()); shoppingCartInfoRequestVo.setTrackingNo(LogThreadLocal.getTrackingNo());
shoppingCartInfoRequestVo.setEnableSharing(createOrderVo.getEnableSharing()); shoppingCartInfoRequestVo.setEnableSharing(createOrderVo.getEnableSharing());
// 如果使用优惠券或者商品券,校验 couponCode
// if (StringUtils.isNotBlank(createOrderVo.getCouponCode())) {
// // 校验couponCode
// GetCouponDetailResponseDto getCouponDetailResponseDto = couponService.getMemberCoupon(GetMemberCouponRequestVo.builder()
// .partnerId(createOrderVo.getPartnerId())
// .couponCode(createOrderVo.getCouponCode()).build());
// if (Objects.equals(getCouponDetailResponseDto, null) || CollectionUtils.isEmpty(getCouponDetailResponseDto.getDetails())
// || getCouponDetailResponseDto.getDetails().get(0).getActive() == null
// || getCouponDetailResponseDto.getDetails().get(0).getActive().getActiveCode() == null) {
// // 返回信息为空
// throw new ServiceException(ResponseResult.COUPON_GETINFO_INVAILD);
// }
// List<GetCouponDetailResponseDto.ActiveRedeemTimeInterval> activeRedeemTimeIntervalList = getCouponDetailResponseDto.getDetails().get(0).getActiveRedeemTimeIntervalList();
// checkCouonRedeemTime(activeRedeemTimeIntervalList);
// String activeCode = getCouponDetailResponseDto.getDetails().get(0).getActive().getActiveCode();
// // 校验点餐方式,查询购物车接口内部已校验
// shoppingCartInfoRequestVo.setCouponCode(createOrderVo.getCouponCode());
// // 活动code
// shoppingCartInfoRequestVo.setActivityCode(activeCode);
// shoppingCartInfoRequestVo.setCardCode(createOrderVo.getCardCode());
// }
Set<String> codes = new HashSet<>(); Set<String> codes = new HashSet<>();
if (StringUtils.isNotBlank(createOrderVo.getCouponCode())) { if (StringUtils.isNotBlank(createOrderVo.getCouponCode())) {
......
...@@ -682,6 +682,7 @@ public class ShoppingCartConvertAdapter { ...@@ -682,6 +682,7 @@ public class ShoppingCartConvertAdapter {
cartGoods.setPic(spuProduct.getPicture()); cartGoods.setPic(spuProduct.getPicture());
cartGoods.setPackPrice(isSkuProduct ? skuProduct.getPackPrice() : spuProduct.getPackPrice()); cartGoods.setPackPrice(isSkuProduct ? skuProduct.getPackPrice() : spuProduct.getPackPrice());
cartGoods.setStockLimit(isSkuProduct ? ObjectUtils.equals(1, skuProduct.getStockLimit()) : ObjectUtils.equals(1, spuProduct.getStockLimit())); cartGoods.setStockLimit(isSkuProduct ? ObjectUtils.equals(1, skuProduct.getStockLimit()) : ObjectUtils.equals(1, spuProduct.getStockLimit()));
cartGoods.setStockMode(spuProduct.getStockMode());
cartGoods.setCustomerCode(isSkuProduct ? skuProduct.getCustomerCode() : spuProduct.getCustomerCode()); cartGoods.setCustomerCode(isSkuProduct ? skuProduct.getCustomerCode() : spuProduct.getCustomerCode());
cartGoods.setRiseSell(isSkuProduct ? skuProduct.getRiseSell() : spuProduct.getRiseSell()); cartGoods.setRiseSell(isSkuProduct ? skuProduct.getRiseSell() : spuProduct.getRiseSell());
cartGoods.setMemberDiscount(spuProduct.getMemberDiscountResult()); cartGoods.setMemberDiscount(spuProduct.getMemberDiscountResult());
......
...@@ -73,6 +73,15 @@ public class ProductTypeBeanDTO { ...@@ -73,6 +73,15 @@ public class ProductTypeBeanDTO {
*/ */
private Integer singleOrder; private Integer singleOrder;
/**
* 库存模式,目前该模式只针对套餐商品会起作用
* 1-使用套餐库存:即套餐库存和套餐中子商品品库存分别存在、互不影响
* 2-使用联动库存:即套餐商品的库存为套餐库存和套餐中子商品的库存,当用户购买套餐商品时,同时扣减套餐库存和套餐中子商品的库存,当套餐中任一子商品库存为0或套餐商品的库存为0时,该套餐将不能购买
*/
protected Integer stockMode = 1;
public Integer getMemberDiscountResult() { public Integer getMemberDiscountResult() {
return this.openMemberDiscount != null && this.openMemberDiscount == 1 ? this.memberDiscount : 100; return this.openMemberDiscount != null && this.openMemberDiscount == 1 ? this.memberDiscount : 100;
} }
......
...@@ -284,6 +284,13 @@ public class ShoppingCartGoodsDto { ...@@ -284,6 +284,13 @@ public class ShoppingCartGoodsDto {
* 用于创建订单时,是否扣减库存 * 用于创建订单时,是否扣减库存
*/ */
private boolean isStockLimit; private boolean isStockLimit;
/**
* 库存模式,目前该模式只针对套餐商品会起作用
* 1-使用套餐库存:即套餐库存和套餐中子商品品库存分别存在、互不影响
* 2-使用联动库存:即套餐商品的库存为套餐库存和套餐中子商品的库存,当用户购买套餐商品时,同时扣减套餐库存和套餐中子商品的库存,当套餐中任一子商品库存为0或套餐商品的库存为0时,该套餐将不能购买
*/
protected Integer stockMode = 1;
/** /**
* 是否餐具商品 * 是否餐具商品
*/ */
......
...@@ -28,6 +28,14 @@ import java.util.UUID; ...@@ -28,6 +28,14 @@ import java.util.UUID;
@Data @Data
public class CartGoods { public class CartGoods {
/**
* 库存模式,目前该模式只针对套餐商品会起作用
* 1-使用套餐库存:即套餐库存和套餐中子商品品库存分别存在、互不影响
* 2-使用联动库存:即套餐商品的库存为套餐库存和套餐中子商品的库存,当用户购买套餐商品时,同时扣减套餐库存和套餐中子商品的库存,当套餐中任一子商品库存为0或套餐商品的库存为0时,该套餐将不能购买
*/
protected Integer stockMode = 1;
/** /**
* 如果加价购是虚拟券商品 这个集合会有券商品赠送的券信息 * 如果加价购是虚拟券商品 这个集合会有券商品赠送的券信息
*/ */
......
...@@ -443,6 +443,7 @@ public class CalculationCommonService { ...@@ -443,6 +443,7 @@ public class CalculationCommonService {
cartGoodsDetailDto.setCategoryName(cartGoods.getCategoryName()); cartGoodsDetailDto.setCategoryName(cartGoods.getCategoryName());
cartGoodsDetailDto.setCouponCode(cartGoods.getCouponCode()); cartGoodsDetailDto.setCouponCode(cartGoods.getCouponCode());
cartGoodsDetailDto.setStockLimit(cartGoods.isStockLimit()); cartGoodsDetailDto.setStockLimit(cartGoods.isStockLimit());
cartGoodsDetailDto.setStockMode(cartGoods.getStockMode());
cartGoodsDetailDto.setProductCode(cartGoods.getCustomerCode()); cartGoodsDetailDto.setProductCode(cartGoods.getCustomerCode());
cartGoodsDetailDto.setCustomerCode(cartGoods.getCustomerCode()); cartGoodsDetailDto.setCustomerCode(cartGoods.getCustomerCode());
cartGoodsDetailDto.setWeight(cartGoods.getWeight()); cartGoodsDetailDto.setWeight(cartGoods.getWeight());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment