| | |
| | | package com.matrix.system.shopXcx.api.service; |
| | | |
| | | import com.matrix.core.tools.LogUtil; |
| | | import com.matrix.biz.bean.BizUser; |
| | | import com.matrix.system.common.bean.BusParameterSettings; |
| | | import com.matrix.system.common.bean.CustomerDataDictionary; |
| | | import com.matrix.system.common.dao.BusParameterSettingsDao; |
| | | import com.matrix.system.common.dao.CustomerDataDictionaryDao; |
| | | import com.matrix.component.redis.RedisUserLoginUtils; |
| | | import com.matrix.system.common.constance.AppConstance; |
| | | |
| | | 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; |
| | | import com.matrix.system.shopXcx.api.vo.ShopCartVo; |
| | | import com.matrix.system.shopXcx.bean.ShopCoupon; |
| | | import com.matrix.system.shopXcx.bean.ShopShoppingCart; |
| | | import com.matrix.system.shopXcx.dao.ShopShoppingCartDao; |
| | | import com.matrix.system.shopXcx.api.vo.ShopCartBillVo; |
| | | import com.matrix.system.shopXcx.api.vo.ShopCartVo; |
| | | import org.apache.commons.collections.CollectionUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | 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.setBillCouponTotal(shopCartBillVo.getBillCouponTotal().add(shopCartVo.getCouponPrice())); |
| | | } |
| | | } |
| | | |
| | | |
| | | for (ShopShoppingCart shopCart : shopCartVo.getCartList()) { |
| | | if (shopCart.getIsSelected() == 1) { |
| | | selectCount += shopCart.getCartNumber(); |
| | |
| | | } |
| | | shopCartBillVo.setCartCount(cartCount); |
| | | shopCartBillVo.setSelectCount(selectCount); |
| | | |
| | | return shopCartBillVo; |
| | | } |
| | | |
| | |
| | | * @return |
| | | * @param shopId |
| | | */ |
| | | public List<ShopCartVo> findUserCartList(Long shopId) { |
| | | public List<ShopCartVo> findUserCartList(Long shopId,Integer cartType) { |
| | | BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); |
| | | String userId = loginUser.getOpenId(); |
| | | List<ShopShoppingCart> list = shoppingCartDao.selectByCartUserId(shopId,userId); |
| | | List<ShopShoppingCart> list = shoppingCartDao.selectByCartUserId(shopId,userId,cartType); |
| | | List<ShopCartVo> cartList = buildShopCart(list); |
| | | return cartList; |
| | | } |
| | |
| | | // 1表示没有优惠的默认分组 |
| | | ShopCartVo def = new ShopCartVo(); |
| | | |
| | | /** |
| | | * 同城配送标题 |
| | | * //DataDictionary qsfy = dataDictionaryDao.selectByTypeCode(AppConstance.QSFY); |
| | | * //def.setMsg("2公里内满" + qsfy.getValue() + "元免配送费"); |
| | | */ |
| | | |
| | | def.setMsg("肽研官方商城"); |
| | | |
| | | def.setMsg("商城"); |
| | | def.setCartList(new ArrayList<>()); |
| | | // 组合默认分组 |
| | | cartList.add(def); |
| | |
| | | //查询购物车中的产品匹配上的所有优惠活动 |
| | | for (ShopShoppingCart shoppingCart : list) { |
| | | |
| | | List<ShopCoupon> shopCoupons = shopCouponService.getHdListByProductId(shoppingCart.getCartProductId()); |
| | | |
| | | if (CollectionUtils.isNotEmpty(shopCoupons)) { |
| | | // 把所有的优惠券和购物车条目先关联一下,后续可以计算优惠升级的情况 |
| | | shoppingCart.setShopCoupons(shopCoupons); |
| | | for (ShopCoupon shopCoupon : shopCoupons) { |
| | | shopCouponMap.put(shopCoupon.getId(), shopCoupon); |
| | | } |
| | | } else { |
| | | // 该产品没有参加优惠券 |
| | | 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); |
| | | for (ShopCoupon shopCoupon : shopCoupons) { |
| | | shopCouponMap.put(shopCoupon.getId(), shopCoupon); |
| | | } |
| | | } 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) { |
| | | sum = sum.add(shopShoppingCart.getPrice().multiply(BigDecimal.valueOf(shopShoppingCart.getCartNumber()))); |
| | | if (shopShoppingCart.getIsSelected() == 1) { |
| | | selectSum = selectSum |
| | | .add(shopShoppingCart.getPrice().multiply(BigDecimal.valueOf(shopShoppingCart.getCartNumber()))); |
| | | 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("参数错误"); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | } else { |
| | | BusParameterSettings qsfy= busParameterSettingsDao.selectCompanyParamByCode(AppConstance.IN_PROVINCE_PACKAGE_LIST,17L); |
| | | |
| | | shopCartVo.setSubtotal(selectSum); |
| | | shopCartVo.setSrcPrice(selectSum); |
| | | if (selectSum.compareTo(new BigDecimal(qsfy.getParamValue())) < 0) { |
| | | shopCartVo.setSatisfactionCoupon(false); |
| | | } else { |
| | | shopCartVo.setSubtotal(selectSum); |
| | | shopCartVo.setSrcPrice(selectSum); |
| | | shopCartVo.setSatisfactionCoupon(true); |
| | | } |
| | | } |
| | | shopCartVo.setScorePay(scoreSum); |
| | | } |
| | | } |