diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/TradeBuilder.java b/framework/src/main/java/cn/lili/modules/order/cart/render/TradeBuilder.java index 4373206c..ba32de5a 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/TradeBuilder.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/TradeBuilder.java @@ -92,7 +92,11 @@ public class TradeBuilder { tradeDTO.setSkuList(collect); //按照计划进行渲染 for (int index : defaultRender) { - cartRenderSteps.get(index).render(tradeDTO); + try { + cartRenderSteps.get(index).render(tradeDTO); + } catch (Exception e) { + log.error("购物车渲染异常:", e); + } } List cartVOList = new ArrayList<>(); for (CartVO i : tradeDTO.getCartList()) { diff --git a/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java index 5ff5d4f3..4be0fc26 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java @@ -294,7 +294,7 @@ public class CartServiceImpl implements CartService { @Override public TradeDTO getCheckedTradeDTO(CartTypeEnum way) { - return tradeBuilder.buildTrade(way); + return this.readDTO(way); } /** @@ -443,7 +443,9 @@ public class CartServiceImpl implements CartService { */ @Override public Long getCartNum(Boolean checked) { + //构建购物车 TradeDTO tradeDTO = this.getCheckedTradeDTO(CartTypeEnum.CART); + //过滤sku列表 List collect = tradeDTO.getSkuList().stream().filter(i -> Boolean.FALSE.equals(i.getInvalid())).collect(Collectors.toList()); long count = 0L; if (!tradeDTO.getSkuList().isEmpty()) { @@ -458,12 +460,17 @@ public class CartServiceImpl implements CartService { @Override public void selectCoupon(String couponId, String way, boolean use) { + //获取购物车,然后重新写入优惠券 CartTypeEnum cartTypeEnum = getCartType(way); - TradeDTO tradeDTO = tradeBuilder.buildTrade(cartTypeEnum); + TradeDTO tradeDTO = this.readDTO(cartTypeEnum); - MemberCoupon memberCoupon = memberCouponService.getOne(new LambdaQueryWrapper().eq(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.NEW.name()).eq(MemberCoupon::getId, couponId)); + MemberCoupon memberCoupon = + memberCouponService.getOne( + new LambdaQueryWrapper() + .eq(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.NEW.name()) + .eq(MemberCoupon::getId, couponId)); if (memberCoupon == null) { - throw new ServiceException("当前优惠券可用数量不足"); + throw new ServiceException(ResultCode.COUPON_EXPIRED); } //使用优惠券 与否 if (use && checkCoupon(memberCoupon, tradeDTO)) { @@ -537,6 +544,12 @@ public class CartServiceImpl implements CartService { } } + /** + * 获取购物车类型 + * + * @param way + * @return + */ private CartTypeEnum getCartType(String way) { //默认购物车 CartTypeEnum cartTypeEnum = CartTypeEnum.CART;