diff --git a/framework/src/main/java/cn/lili/modules/order/cart/entity/vo/CartVO.java b/framework/src/main/java/cn/lili/modules/order/cart/entity/vo/CartVO.java index c5598f92..4f60aa4a 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/entity/vo/CartVO.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/entity/vo/CartVO.java @@ -11,6 +11,7 @@ import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** @@ -99,4 +100,17 @@ public class CartVO extends CartBase implements Serializable { } } + + /** + * 过滤购物车中已选择的sku + * + * @return + */ + public List getCheckedSkuList() { + if (skuList != null && !skuList.isEmpty()) { + return skuList.stream().filter(CartSkuVO::getChecked).collect(Collectors.toList()); + } + return skuList; + } + } diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CartPriceRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CartPriceRender.java index a6508cf2..4f443f6b 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CartPriceRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CartPriceRender.java @@ -59,10 +59,8 @@ public class CartPriceRender implements CartRenderStep { cartVOS.forEach(cartVO -> { - List skuPrices = cartVO.getSkuList().stream().filter(CartSkuVO::getChecked) - .map(CartSkuVO::getPriceDetailDTO).collect(Collectors.toList()); cartVO.getPriceDetailDTO().accumulationPriceDTO( - cartVO.getSkuList().stream().filter(CartSkuVO::getChecked) + cartVO.getCheckedSkuList().stream().filter(CartSkuVO::getChecked) .map(CartSkuVO::getPriceDetailDTO).collect(Collectors.toList()) ); List skuNum = cartVO.getSkuList().stream().filter(CartSkuVO::getChecked) diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckedFilterRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckedFilterRender.java index 06b4150e..8c9bcda7 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckedFilterRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckedFilterRender.java @@ -36,7 +36,7 @@ public class CheckedFilterRender implements CartRenderStep { //循环购物车信息 for (CartVO cartVO : tradeDTO.getCartList()) { //如果商品选中,则加入到对应购物车 - cartVO.setSkuList(cartVO.getSkuList().stream().filter(j -> Boolean.TRUE.equals(j.getChecked())).collect(Collectors.toList())); + cartVO.setSkuList(cartVO.getCheckedSkuList()); cartVOList.add(cartVO); } tradeDTO.setCartList(cartVOList); diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CommissionRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CommissionRender.java index 3479492f..21520c5b 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CommissionRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CommissionRender.java @@ -66,7 +66,7 @@ public class CommissionRender implements CartRenderStep { //计算购物车价格 for (CartVO cart : cartVOS) { //累加价格 - for (CartSkuVO cartSkuVO : cart.getSkuList()) { + for (CartSkuVO cartSkuVO : cart.getCheckedSkuList()) { PriceDetailDTO priceDetailDTO = cartSkuVO.getPriceDetailDTO(); //平台佣金根据分类计算 diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/DistributionPriceRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/DistributionPriceRender.java index d97d3adf..ce8ca66f 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/DistributionPriceRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/DistributionPriceRender.java @@ -58,14 +58,14 @@ public class DistributionPriceRender implements CartRenderStep { //循环订单商品列表,如果是分销商品则计算商品佣金 tradeDTO.setDistributionId(distributionId); - List skuIds = tradeDTO.getSkuList().stream().map(cartSkuVO -> { + List skuIds = tradeDTO.getCheckedSkuList().stream().map(cartSkuVO -> { return cartSkuVO.getGoodsSku().getId(); }).collect(Collectors.toList()); //是否包含分销商品 List distributionGoods = distributionGoodsService.distributionGoods(skuIds); if (distributionGoods != null && distributionGoods.size() > 0) { distributionGoods.forEach(dg -> { - tradeDTO.getSkuList().forEach(cartSkuVO -> { + tradeDTO.getCheckedSkuList().forEach(cartSkuVO -> { if (cartSkuVO.getGoodsSku().getId().equals(dg.getSkuId())) { cartSkuVO.setDistributionGoods(dg); } @@ -73,7 +73,7 @@ public class DistributionPriceRender implements CartRenderStep { }); } - for (CartSkuVO cartSkuVO : tradeDTO.getSkuList()) { + for (CartSkuVO cartSkuVO : tradeDTO.getCheckedSkuList()) { if (cartSkuVO.getDistributionGoods() != null) { cartSkuVO.getPriceDetailDTO().setDistributionCommission(CurrencyUtil.mul(cartSkuVO.getNum(), cartSkuVO.getDistributionGoods().getCommission())); } diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/FullDiscountRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/FullDiscountRender.java index 2d9e7c43..5feb58e9 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/FullDiscountRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/FullDiscountRender.java @@ -46,8 +46,6 @@ public class FullDiscountRender implements CartRenderStep { @Override public void render(TradeDTO tradeDTO) { - //获取购物车中所有的商品 - List cartSkuList = tradeDTO.getSkuList(); //店铺集合 List cartList = tradeDTO.getCartList(); @@ -80,7 +78,7 @@ public class FullDiscountRender implements CartRenderStep { cart.setFullDiscount(fullDiscount); Map skuPriceDetail; //参与活动的sku判定 - skuPriceDetail = initFullDiscountGoods(fullDiscount, cartSkuList); + skuPriceDetail = initFullDiscountGoods(fullDiscount, cart.getCheckedSkuList()); //记录参与满减活动的sku cart.setFullDiscountSkuIds(new ArrayList<>(skuPriceDetail.keySet())); @@ -115,7 +113,7 @@ public class FullDiscountRender implements CartRenderStep { */ private void renderFullRate(CartVO cart, Map skuPriceDetail, Double rate) { - List cartSkuVOS = cart.getSkuList().stream().filter(cartSkuVO -> { + List cartSkuVOS = cart.getCheckedSkuList().stream().filter(cartSkuVO -> { return skuPriceDetail.containsKey(cartSkuVO.getGoodsSku().getId()); }).collect(Collectors.toList()); @@ -186,7 +184,7 @@ public class FullDiscountRender implements CartRenderStep { } //如果满足,判定是否免邮,免邮的话需要渲染一边sku if (fullDiscount.getIsFreeFreight()) { - for (CartSkuVO skuVO : cartVO.getSkuList()) { + for (CartSkuVO skuVO : cartVO.getCheckedSkuList()) { skuVO.setIsFreeFreight(true); } } diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuFreightRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuFreightRender.java index f66cf38f..d0b0e672 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuFreightRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuFreightRender.java @@ -36,7 +36,7 @@ public class SkuFreightRender implements CartRenderStep { @Override public void render(TradeDTO tradeDTO) { - List cartSkuVOS = tradeDTO.getSkuList(); + List cartSkuVOS = tradeDTO.getCheckedSkuList(); //会员收货地址问题处理 MemberAddress memberAddress = tradeDTO.getMemberAddress(); //如果收货地址为空,则抛出异常 diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuPromotionRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuPromotionRender.java index 6877d0fb..8ca43505 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuPromotionRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuPromotionRender.java @@ -59,7 +59,7 @@ public class SkuPromotionRender implements CartRenderStep { */ private void renderBasePrice(TradeDTO tradeDTO) { tradeDTO.getCartList().forEach( - cartVO -> cartVO.getSkuList().forEach(cartSkuVO -> { + cartVO -> cartVO.getCheckedSkuList().forEach(cartSkuVO -> { PriceDetailDTO priceDetailDTO = cartSkuVO.getPriceDetailDTO(); priceDetailDTO.setGoodsPrice(cartSkuVO.getSubTotal()); priceDetailDTO.setDiscountPrice(CurrencyUtil.sub(priceDetailDTO.getOriginalPrice(), cartSkuVO.getSubTotal())); @@ -82,7 +82,7 @@ public class SkuPromotionRender implements CartRenderStep { case POINTS: //处理积分商品购买 for (CartVO cartVO : tradeDTO.getCartList()) { - for (CartSkuVO cartSkuVO : cartVO.getSkuList()) { + for (CartSkuVO cartSkuVO : cartVO.getCheckedSkuList()) { cartSkuVO.getPriceDetailDTO().setPayPoint(cartSkuVO.getPoint()); PromotionSkuVO promotionSkuVO = new PromotionSkuVO(PromotionTypeEnum.POINTS_GOODS.name(), cartSkuVO.getPointsId()); cartSkuVO.getPriceDetailDTO().getJoinPromotion().add(promotionSkuVO); @@ -91,7 +91,7 @@ public class SkuPromotionRender implements CartRenderStep { return; case KANJIA: for (CartVO cartVO : tradeDTO.getCartList()) { - for (CartSkuVO cartSkuVO : cartVO.getSkuList()) { + for (CartSkuVO cartSkuVO : cartVO.getCheckedSkuList()) { KanjiaActivitySearchParams kanjiaActivitySearchParams = new KanjiaActivitySearchParams(); kanjiaActivitySearchParams.setGoodsSkuId(cartSkuVO.getGoodsSku().getId()); kanjiaActivitySearchParams.setMemberId(UserContext.getCurrentUser().getId()); @@ -112,7 +112,7 @@ public class SkuPromotionRender implements CartRenderStep { return; case PINTUAN: for (CartVO cartVO : tradeDTO.getCartList()) { - for (CartSkuVO cartSkuVO : cartVO.getSkuList()) { + for (CartSkuVO cartSkuVO : cartVO.getCheckedSkuList()) { PromotionSkuVO promotionSkuVO = new PromotionSkuVO(PromotionTypeEnum.PINTUAN.name(), cartSkuVO.getPintuanId()); cartSkuVO.getPriceDetailDTO().getJoinPromotion().add(promotionSkuVO); } @@ -125,7 +125,7 @@ public class SkuPromotionRender implements CartRenderStep { //循环购物车 for (CartVO cartVO : tradeDTO.getCartList()) { //循环sku - for (CartSkuVO cartSkuVO : cartVO.getSkuList()) { + for (CartSkuVO cartSkuVO : cartVO.getCheckedSkuList()) { //更新商品促销 promotionGoodsService.updatePromotion(cartSkuVO); //赋予商品促销信息 diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java b/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java index 3cc467d8..4ea1946c 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java +++ b/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java @@ -264,7 +264,7 @@ public class Order extends BaseEntity { this.setOrderType(OrderTypeEnum.VIRTUAL.name()); } else { //促销订单(拼团、积分)-判断购买的是虚拟商品还是实物商品 - String goodsType = cartVO.getSkuList().get(0).getGoodsSku().getGoodsType(); + String goodsType = cartVO.getCheckedSkuList().get(0).getGoodsSku().getGoodsType(); if (StrUtil.isEmpty(goodsType) || goodsType.equals(GoodsTypeEnum.PHYSICAL_GOODS.name())) { this.setOrderType(OrderTypeEnum.NORMAL.name()); } else { @@ -275,7 +275,7 @@ public class Order extends BaseEntity { //判断是否为拼团订单,如果为拼团订单获取拼团ID,判断是否为主订单 if (tradeDTO.getCartTypeEnum().name().equals(PromotionTypeEnum.PINTUAN.name())) { - Optional pintuanId = cartVO.getSkuList().get(0).getPromotions().stream() + Optional pintuanId = cartVO.getCheckedSkuList().get(0).getPromotions().stream() .filter(i -> i.getPromotionType().equals(PromotionTypeEnum.PINTUAN.name())).map(PromotionGoods::getPromotionId).findFirst(); promotionId = pintuanId.get(); } diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java index 52bf51d1..d5c4e42f 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java @@ -168,7 +168,7 @@ public class OrderServiceImpl extends ServiceImpl implements String message = "订单[" + item.getSn() + "]创建"; //记录日志 orderLogs.add(new OrderLog(item.getSn(), UserContext.getCurrentUser().getId(), UserContext.getCurrentUser().getRole().getRole(), UserContext.getCurrentUser().getUsername(), message)); - item.getSkuList().forEach( + item.getCheckedSkuList().forEach( sku -> orderItems.add(new OrderItem(sku, item, tradeDTO)) ); //写入子订单信息