| | |
| | | AppSureOrderGoodsVo appSureOrderGoodsVo; |
| | | // 获取购买商品列表 |
| | | List<AppBuyGoodsDto> appBuyGoodsDtoList = appSureOrderDto.getAppBuyGoodsDtoList(); |
| | | //获取商品列表 |
| | | StringJoiner goodsIdSJ = new StringJoiner(","); |
| | | for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { |
| | | goodsIdSJ.add(appBuyGoodsDto.getGoodsId()); |
| | | } |
| | | List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(goodsIdSJ.toString()).getData(); |
| | | Map<String, Goods> goodsMap = goodsList.stream() |
| | | .collect(Collectors.toMap(Goods::getGoodsId, Function.identity())); |
| | | Boolean haveDeposit = false; |
| | | for(Goods goods : goodsList){ |
| | | if(goods.getSubscription()!=null&&goods.getSubscription().compareTo(BigDecimal.ZERO)>0){ |
| | | haveDeposit = true; |
| | | } |
| | | } |
| | | String goodsId; |
| | | Integer buyNum; |
| | | BigDecimal buyNumBig; |
| | |
| | | BigDecimal goodsPrice; |
| | | BigDecimal goodsTotalPrice; |
| | | BigDecimal goodsRealPrice; |
| | | MerBaseDto merBaseDto = new MerBaseDto(); |
| | | merBaseDto.setUserId(userId); |
| | | merBaseDto.setShopId(appSureOrderDto.getShopId()); |
| | | // 获取用户优惠券列表 |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(userId).getData(); |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(merBaseDto).getData(); |
| | | // 初始化商品优惠券列表 |
| | | List<AppMemberCouponVo> appGoodsMemberCouponVoList; |
| | | // 将优惠券列表转换为Map,以优惠券ID为键 |
| | |
| | | buyNum = appBuyGoodsDto.getBuyNum(); |
| | | memberCouponId = appBuyGoodsDto.getMemberCouponId(); |
| | | // 获取商品信息 |
| | | goods = remoteGoodsService.getGoods(goodsId).getData(); |
| | | goods = goodsMap.get(goodsId); |
| | | if(goods.getGoodsStatus()!=1){ |
| | | throw new ServiceException(AppErrorConstant.GOODS_DOWN); |
| | | } |
| | |
| | | appSureOrderGoodsVo.setCouponDiscount(discountMoney); |
| | | appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); |
| | | goodsDeposit = goods.getSubscription(); |
| | | if (goodsDeposit == null) { |
| | | goodsDeposit = new BigDecimal("0.00"); |
| | | // 获取商品押金 |
| | | goodsDeposit = goods.getSubscription(); |
| | | if (goodsDeposit != null && goodsDeposit.compareTo(BigDecimal.ZERO)>0) { |
| | | goodsDeposit = goodsDeposit.multiply(buyNumBig); |
| | | }else{ |
| | | if(haveDeposit){ |
| | | goodsDeposit = goodsRealPrice; |
| | | }else{ |
| | | goodsDeposit = new BigDecimal("0.00"); |
| | | } |
| | | } |
| | | appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit); |
| | | // 计算订单总金额 |
| | |
| | | appPanicBuyVo.setGoodsTotalPrice(goodsTotalPrice); |
| | | appPanicBuyVo.setGoodsRealPrice(goodsRealPrice); |
| | | goodsDeposit = activityGoodsGetVo.getActivitySubscription(); |
| | | if (goodsDeposit == null) { |
| | | if (goodsDeposit == null || goodsDeposit.compareTo(BigDecimal.ZERO)==0) { |
| | | goodsDeposit = new BigDecimal("0.00"); |
| | | }else{ |
| | | goodsDeposit = goodsDeposit.multiply(buyNumBig); |
| | | } |
| | | appPanicBuyVo.setGoodsDeposit(goodsDeposit); |
| | | orderGoodsMoney = orderGoodsMoney.add(goodsTotalPrice); |
| | |
| | | AppSureOrderGoodsVo appSureOrderGoodsVo; |
| | | // 获取购买的商品列表 |
| | | List<AppBuyGoodsDto> appBuyGoodsDtoList = appPlaceOrderDto.getAppBuyGoodsDtoList(); |
| | | StringJoiner goodsIdSJ = new StringJoiner(","); |
| | | for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { |
| | | goodsIdSJ.add(appBuyGoodsDto.getGoodsId()); |
| | | } |
| | | //获取商品列表 |
| | | List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(goodsIdSJ.toString()).getData(); |
| | | Map<String, Goods> goodsMap = goodsList.stream() |
| | | .collect(Collectors.toMap(Goods::getGoodsId, Function.identity())); |
| | | Boolean haveDeposit = false; |
| | | for(Goods goods : goodsList){ |
| | | if(goods.getSubscription()!=null&&goods.getSubscription().compareTo(BigDecimal.ZERO)>0){ |
| | | haveDeposit = true; |
| | | } |
| | | } |
| | | // 初始化变量 |
| | | String goodsId; |
| | | Integer buyNum; |
| | |
| | | BigDecimal goodsPrice; |
| | | BigDecimal goodsTotalPrice; |
| | | BigDecimal goodsRealPrice; |
| | | MerBaseDto merBaseDto = new MerBaseDto(); |
| | | merBaseDto.setUserId(userId); |
| | | merBaseDto.setShopId(appPlaceOrderDto.getShopId()); |
| | | // 获取用户优惠券列表 |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(userId).getData(); |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(merBaseDto).getData(); |
| | | // 将用户优惠券列表转换为Map,方便后续查找 |
| | | Map<String, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | AppMemberCouponVo appMemberCouponVo; |
| | |
| | | goodsId = appBuyGoodsDto.getGoodsId(); |
| | | memberCouponId = appBuyGoodsDto.getMemberCouponId(); |
| | | // 获取商品信息 |
| | | goods = remoteGoodsService.getGoods(goodsId).getData(); |
| | | goods = goodsMap.get(goodsId); |
| | | // 设置商品信息 |
| | | appSureOrderGoodsVo.setGoodsId(goodsId); |
| | | appSureOrderGoodsVo.setGoodsName(goods.getGoodsName()); |
| | |
| | | appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); |
| | | // 获取商品押金 |
| | | goodsDeposit = goods.getSubscription(); |
| | | if (goodsDeposit == null) { |
| | | goodsDeposit = new BigDecimal("0.00"); |
| | | if (goodsDeposit != null && goodsDeposit.compareTo(BigDecimal.ZERO)>0) { |
| | | goodsDeposit = goodsDeposit.multiply(buyNumBig); |
| | | }else{ |
| | | if(haveDeposit){ |
| | | goodsDeposit = goodsRealPrice; |
| | | }else{ |
| | | goodsDeposit = new BigDecimal("0.00"); |
| | | } |
| | | } |
| | | appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit); |
| | | // 计算商品总数量、商品总价、优惠总金额、支付押金、支付金额 |
| | |
| | | appPlaceOrderVo.setOrderId(orderId); |
| | | appPlaceOrderVo.setOrderNo(orderNo); |
| | | // 调用支付 |
| | | //使用优惠券 |
| | | //减去优惠券 |
| | | if(memberCouponSJ!=null){ |
| | | remoteCouponService.useMemberCoupon(memberCouponSJ.toString()); |
| | | } |
| | |
| | | String orderGoodsId; |
| | | // 创建商品类型集合 |
| | | HashSet<String> goodsTypeSet = new HashSet<>(); |
| | | HashSet<String> goodsNurseSet = new HashSet<>(); |
| | | // 创建商品订单对象,并设置商品ID,商品名称,商品介绍,商品类型 |
| | | appSureOrderGoodsVo = new AppSureOrderGoodsVo(); |
| | | useCoupon = 0; |
| | |
| | | appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); |
| | | // 获取商品押金 |
| | | goodsDeposit = activityGoodsGetVo.getActivitySubscription(); |
| | | if (goodsDeposit == null) { |
| | | if (goodsDeposit == null || goodsDeposit.compareTo(BigDecimal.ZERO)==0) { |
| | | goodsDeposit = new BigDecimal("0.00"); |
| | | }else{ |
| | | goodsDeposit = goodsDeposit.multiply(buyNumBig); |
| | | } |
| | | appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit); |
| | | // 计算商品数量,订单商品金额,优惠券折扣,订单支付押金,订单支付金额 |
| | |
| | | } else if (goods.getGoodsType() == 4) { |
| | | goodsTypeSet.add("单品"); |
| | | } |
| | | String goodsNurse = goods.getGoodsNurses(); |
| | | if(StringUtils.isNotBlank(goodsNurse)){ |
| | | String[] goodsNurseArr = goodsNurse.split(","); |
| | | for(String str : goodsNurseArr){ |
| | | goodsNurseSet.add(str); |
| | | } |
| | | } |
| | | // 创建订单,并设置订单ID,删除标志,订单状态,订单号,订单来源,店铺ID,用户ID,订单金额,优惠券金额,折扣金额,应收金额,应收押金,变动应收金额,支付类型 |
| | | Order order = new Order(); |
| | | order.setOrderId(orderId); |
| | |
| | | // 保存订单 |
| | | this.save(order); |
| | | // 更新用户商品类型 |
| | | if (goodsTypeSet != null && goodsTypeSet.size() > 0) { |
| | | if (goodsTypeSet != null || goodsNurseSet!= null) { |
| | | AppMemberGoodsTypeDto appMemberGoodsTypeDto = new AppMemberGoodsTypeDto(); |
| | | appMemberGoodsTypeDto.setUserId(userId); |
| | | appMemberGoodsTypeDto.setGoodsTypeSet(goodsTypeSet); |
| | | appMemberGoodsTypeDto.setGoodsNurseSet(goodsNurseSet); |
| | | remoteMemberService.updateMemberGoodsType(appMemberGoodsTypeDto); |
| | | } |
| | | // 设置订单ID和订单号 |
| | |
| | | BigDecimal goodsRealPrice; |
| | | Long shopId = merNewOrderDto.getShopId(); |
| | | Shop shop = remoteShopService.getShop(shopId).getData(); |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(userId).getData(); |
| | | MerBaseDto merBaseDto = new MerBaseDto(); |
| | | merBaseDto.setUserId(userId); |
| | | merBaseDto.setShopId(shopId); |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(merBaseDto).getData(); |
| | | Map<String, AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>(); |
| | | if (null != appMemberCouponVoList) { |
| | | appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | |
| | | } |
| | | |
| | | goodsDeposit = goods.getSubscription(); |
| | | if (goodsDeposit == null) { |
| | | if (goodsDeposit == null || goodsDeposit.compareTo(BigDecimal.ZERO)==0) { |
| | | goodsDeposit = new BigDecimal("0.00"); |
| | | }else{ |
| | | goodsDeposit = goodsDeposit.multiply(buyNumBig); |
| | | } |
| | | goodsNum = goodsNum + buyNum; |
| | | orderGoodsMoney = orderGoodsMoney.add(goodsTotalPrice); |