Commit c4f18bc2 by 查志伟

修复新算价多赠品多送问题

parent 4ed82c8a
......@@ -88,45 +88,44 @@ public class PlatformActiveServiceImpl implements ActiveService {
Integer flag) {
Map<String, Goods> discountForGift = this.getDiscountForGift(discountResult);
discountForGift.forEach((pid, goods) -> {
List<CartGoods> list = new ArrayList<>();
for (ProductBean product : products) {
Goods goods = discountForGift.get(product.getPid());
GoodsDiscount discount = goods.getDiscounts()
.stream()
.filter(g -> ActivityTypeEnum.TYPE_63.getCode().equals(g.getType()) ||ActivityTypeEnum.TYPE_62.getCode().equals(g.getType()) || ActivityTypeEnum.TYPE_61.getCode().equals(g.getType()) || ActivityTypeEnum.TYPE_230.getCode().equals(g.getType()))
.findFirst()
.get();
List<CartGoods> list = new ArrayList<>();
for (ProductBean product : products) {
CartGoods cartGood = new CartGoods();
cartGood.setGoodsId(goods.getGoodsId());
cartGood.setGoodsType(1);
cartGood.setSpuId(Objects.equals(product.getIsSkuProduct(), 1) ? product.getSpecProductId() : goods.getGoodsId());
cartGood.setSkuId(goods.getGoodsId());
cartGood.setOriginalPrice(product.getFinalPrice());
cartGood.setPackPrice(product.getPackPrice());
cartGood.setOriginalAmount(goods.getOriginalPrice() * goods.getGoodsQuantity());
cartGood.setAmount(goods.getRealAmount());
cartGood.setName(product.getName());
cartGood.setSpuName(product.getName());
cartGood.setCategoryName(product.getName());
cartGood.setPic(product.getPicture());
cartGood.setSkuName(product.getName());
cartGood.setActivityType(discount.getType());
cartGood.setActivityCode(discount.getActivityCode());
cartGood.setStockLimit(ObjectUtils.equals(1, product.getStockLimit()));
cartGood.setCustomerCode(product.getCustomerCode());
cartGood.setUnit(product.getUnit());
cartGood.setWeight(product.getWeight());
cartGood.setQty(goods.getGoodsQuantity());
cartGood.setClassificationId(product.getCategory());
cartGood.setClassificationName(product.getCategoryName());
// nodeId标识activeCode,用于计算均摊时每个商品在每个活动上均摊金额
cartGood.setNodeId(discount.getActivityCode());
list.addAll(buyAndGiftsPromotionService.setGiftExtra(cartGood, product, addcartGoodsList));
}
// 因为有涉及到用户选择的属性,存入redis
addcartGoodsList.addAll(giftCacheManager.resetGiftCache(list, discount.getActivityCode(), partnerId, storeId, userId));
});
CartGoods cartGood = new CartGoods();
cartGood.setGoodsId(goods.getGoodsId());
cartGood.setGoodsType(1);
cartGood.setSpuId(Objects.equals(product.getIsSkuProduct(), 1) ? product.getSpecProductId() : goods.getGoodsId());
cartGood.setSkuId(goods.getGoodsId());
cartGood.setOriginalPrice(product.getFinalPrice());
cartGood.setPackPrice(product.getPackPrice());
cartGood.setOriginalAmount(goods.getOriginalPrice() * goods.getGoodsQuantity());
cartGood.setAmount(goods.getRealAmount());
cartGood.setName(product.getName());
cartGood.setSpuName(product.getName());
cartGood.setCategoryName(product.getName());
cartGood.setPic(product.getPicture());
cartGood.setSkuName(product.getName());
cartGood.setActivityType(discount.getType());
cartGood.setActivityCode(discount.getActivityCode());
cartGood.setStockLimit(ObjectUtils.equals(1, product.getStockLimit()));
cartGood.setCustomerCode(product.getCustomerCode());
cartGood.setUnit(product.getUnit());
cartGood.setWeight(product.getWeight());
cartGood.setQty(goods.getGoodsQuantity());
cartGood.setClassificationId(product.getCategory());
cartGood.setClassificationName(product.getCategoryName());
// nodeId标识activeCode,用于计算均摊时每个商品在每个活动上均摊金额
cartGood.setNodeId(discount.getActivityCode());
list.addAll(buyAndGiftsPromotionService.setGiftExtra(cartGood, product, addcartGoodsList));
}
// 因为有涉及到用户选择的属性,存入redis
addcartGoodsList.addAll(giftCacheManager.resetGiftCache(list, null, partnerId, storeId, userId));
}
public Map<String, Goods> getDiscountForGift(CalculationDiscountResult discountResult) {
......
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