| | |
| | | |
| | | import com.matrix.biz.bean.BizUser; |
| | | import com.matrix.component.redis.RedisUserLoginUtils; |
| | | import com.matrix.core.exception.GlobleException; |
| | | import com.matrix.core.tools.LogUtil; |
| | | import com.matrix.system.common.dao.BusParameterSettingsDao; |
| | | import com.matrix.system.shopXcx.api.vo.ShopCartBillVo; |
| | |
| | | public ShopCartBillVo buildShopCartBillVo(List<ShopCartVo> cartList) { |
| | | |
| | | ShopCartBillVo shopCartBillVo = new ShopCartBillVo(); |
| | | //计算购车选中项总价以及优惠金额 |
| | | BigDecimal billTotal = BigDecimal.ZERO; |
| | | BigDecimal billCouponTotal = BigDecimal.ZERO; |
| | | //未优惠之前的金额 |
| | | BigDecimal srcTotal = BigDecimal.ZERO; |
| | | |
| | | |
| | | //计算是否存在选中的产品 |
| | | Integer selectCount = 0; |
| | |
| | | } |
| | | shopCartBillVo.setCartCount(cartCount); |
| | | shopCartBillVo.setSelectCount(selectCount); |
| | | |
| | | return shopCartBillVo; |
| | | } |
| | | |
| | |
| | | //查询购物车中的产品匹配上的所有优惠活动 |
| | | for (ShopShoppingCart shoppingCart : list) { |
| | | |
| | | if(shoppingCart.getCartType()==ShopShoppingCart.CAR_TYPE_SCORE){ |
| | | // 积分兑换产品不参加优惠 |
| | | def.getCartList().add(shoppingCart); |
| | | }else{ |
| | | List<ShopCoupon> shopCoupons = shopCouponService.getHdListByProductId(shoppingCart.getCartProductId()); |
| | | |
| | | if (CollectionUtils.isNotEmpty(shopCoupons)) { |
| | | // 把所有的优惠券和购物车条目先关联一下,后续可以计算优惠升级的情况 |
| | | shoppingCart.setShopCoupons(shopCoupons); |
| | |
| | | } else { |
| | | // 该产品没有参加优惠券 |
| | | def.getCartList().add(shoppingCart); |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | //计算没有优惠组的价格 |
| | |
| | | List<ShopShoppingCart> cartList = shopCartVo.getCartList(); |
| | | // 计算总价 |
| | | BigDecimal sum = BigDecimal.ZERO; |
| | | //抵扣总积分 |
| | | BigDecimal scoreSum = BigDecimal.ZERO; |
| | | // 选中项总价 |
| | | BigDecimal selectSum = BigDecimal.ZERO; |
| | | for (ShopShoppingCart shopShoppingCart : cartList) { |
| | | if(ShopShoppingCart.CAR_TYPE_MICRO==shopShoppingCart.getCartType()){ |
| | | //直接购买 |
| | | sum = sum.add(shopShoppingCart.getPrice().multiply(BigDecimal.valueOf(shopShoppingCart.getCartNumber()))); |
| | | if (shopShoppingCart.getIsSelected() == 1) { |
| | | selectSum = selectSum |
| | | .add(shopShoppingCart.getPrice().multiply(BigDecimal.valueOf(shopShoppingCart.getCartNumber()))); |
| | | } |
| | | }else if(ShopShoppingCart.CAR_TYPE_SCORE==shopShoppingCart.getCartType()){ |
| | | //积分兑换 |
| | | sum = sum.add(shopShoppingCart.getScorePrice().multiply(BigDecimal.valueOf(shopShoppingCart.getCartNumber()))); |
| | | if (shopShoppingCart.getIsSelected() == 1) { |
| | | selectSum = selectSum |
| | | .add(shopShoppingCart.getScorePrice().multiply(BigDecimal.valueOf(shopShoppingCart.getCartNumber()))); |
| | | scoreSum = scoreSum.add(new BigDecimal(shopShoppingCart.getScoreCount() * shopShoppingCart.getCartNumber())); |
| | | } |
| | | }else{ |
| | | throw new GlobleException("参数错误"); |
| | | } |
| | | } |
| | | |
| | |
| | | shopCartVo.setSrcPrice(selectSum); |
| | | shopCartVo.setSatisfactionCoupon(true); |
| | | } |
| | | shopCartVo.setScorePay(scoreSum); |
| | | } |
| | | } |