Pu Zhibing
2025-04-11 f62b8d5fc74db2391c7769e024e65c2bb51ac6bc
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -430,7 +430,6 @@
      }
      AppUser appUser = appUserClient.getAppUserById(userid);
      Integer shopId = confirmOrder.getShopId();
      Shop shop = shopClient.getShopById(shopId).getData();
      String goodsJson = confirmOrder.getGoodsJson();
      List<Long> ids = new ArrayList<>();
      JSONArray objects = JSON.parseArray(goodsJson);
@@ -443,21 +442,22 @@
      //构建商品明细列表
      List<MyShoppingCartVo> goodsList = buildDetail(appUser, shopId, list, objects);
      confirmOrderVo.setGoodsList(goodsList);
      confirmOrderVo.setShopId(confirmOrder.getShopId());
      confirmOrderVo.setShopName(shop.getName());
      if(null != confirmOrder.getShopId()){
         Shop shop = shopClient.getShopById(shopId).getData();
         confirmOrderVo.setShopId(confirmOrder.getShopId());
         confirmOrderVo.setShopName(null == shop ? "" : shop.getName());
      }
      //现金支付
      if(confirmOrder.getPaymentType() == 1){
         BigDecimal bigDecimal = BigDecimal.ZERO;
         for (MyShoppingCartVo myShoppingCartVo : goodsList) {
            bigDecimal = bigDecimal.add(myShoppingCartVo.getCash().multiply(new BigDecimal(myShoppingCartVo.getNumber())));
            myShoppingCartVo.setEarnSpendingPoints(myShoppingCartVo.getEarnSpendingPoints() * myShoppingCartVo.getNumber());
         }
         confirmOrderVo.setOrderMoney(bigDecimal);
      }else{
         int sum = 0;
         for (MyShoppingCartVo myShoppingCartVo : goodsList) {
            sum += ((null != myShoppingCartVo.getPoint() ? myShoppingCartVo.getPoint() : 0) * myShoppingCartVo.getNumber());
            myShoppingCartVo.setEarnSpendingPoints((null != myShoppingCartVo.getEarnSpendingPoints() ? myShoppingCartVo.getEarnSpendingPoints() : 0) * myShoppingCartVo.getNumber());
         }
         confirmOrderVo.setOrderPoint(sum);
      }
@@ -466,7 +466,6 @@
      BigDecimal paymentMoney = orderMoney;
      //总优惠金额
      BigDecimal activityAmount = BigDecimal.ZERO;
      BaseSetting baseSetting = baseSettingClient.getBaseSetting(4).getData();
      confirmOrderVo.setUseSimultaneously(JSON.parseObject(baseSetting.getContent()).getInteger("status") == 1);
@@ -505,7 +504,7 @@
            BigDecimal goodsMoney = BigDecimal.ZERO;
            for (MyShoppingCartVo myShoppingCartVo : goodsList) {
               String goodsId = myShoppingCartVo.getGoodsId().toString();
               BigDecimal cash = myShoppingCartVo.getCash();
               BigDecimal cash = myShoppingCartVo.getCash().multiply(new BigDecimal(myShoppingCartVo.getNumber()));
               if(parseArray.contains(goodsId)){
                  goodsMoney = goodsMoney.add(cash);
               }else{
@@ -716,18 +715,18 @@
            vo.setPurchaseLimitNum(goods.getPurchaseLimit() - sum);
         }
         vo.setDistributionMode(goods.getDistributionMode());
         vo.setEarnSpendingPoints(price.getEarnSpendingPoints());
         vo.setSuperiorSubcommission(price.getSuperiorSubcommission());
         vo.setSuperiorRebatePoints(price.getSuperiorRebatePoints());
         vo.setEarnSpendingPoints(price.getEarnSpendingPoints() * shoppingCart.getNumber());
         vo.setSuperiorSubcommission(price.getSuperiorSubcommission().multiply(new BigDecimal(shoppingCart.getNumber())));
         vo.setSuperiorRebatePoints(price.getSuperiorRebatePoints() * shoppingCart.getNumber());
         vo.setSuperiorType(price.getSuperiorType());
         vo.setSuperiorPriceType(price.getSuperiorPriceType());
         vo.setServuceShopCharges(price.getServuceShopCharges());
         vo.setServuceShopPoints(price.getServuceShopPoints());
         vo.setTechnicianPoints(price.getTechnicianPoints());
         vo.setBoundShopCharges(price.getBoundShopCharges());
         vo.setBoundShopPoints(price.getBoundShopPoints());
         vo.setBoundShopSuperiorsCharges(price.getBoundShopSuperiorsCharges());
         vo.setBoundShopSuperiorsPoints(price.getBoundShopSuperiorsPoints());
         vo.setServuceShopCharges(price.getServuceShopCharges().multiply(new BigDecimal(shoppingCart.getNumber())));
         vo.setServuceShopPoints(price.getServuceShopPoints() * shoppingCart.getNumber());
         vo.setTechnicianPoints(price.getTechnicianPoints() * shoppingCart.getNumber());
         vo.setBoundShopCharges(price.getBoundShopCharges().multiply(new BigDecimal(shoppingCart.getNumber())));
         vo.setBoundShopPoints(price.getBoundShopPoints() * shoppingCart.getNumber());
         vo.setBoundShopSuperiorsCharges(price.getBoundShopSuperiorsCharges().multiply(new BigDecimal(shoppingCart.getNumber())));
         vo.setBoundShopSuperiorsPoints(price.getBoundShopSuperiorsPoints() * shoppingCart.getNumber());
         page.add(vo);
      }
      return page;
@@ -886,7 +885,7 @@
            BigDecimal goodsMoney = BigDecimal.ZERO;
            for (MyShoppingCartVo myShoppingCartVo : goodsList) {
               String goodsId = myShoppingCartVo.getGoodsId().toString();
               BigDecimal cash = myShoppingCartVo.getCash();
               BigDecimal cash = myShoppingCartVo.getCash().multiply(new BigDecimal(myShoppingCartVo.getNumber()));
               if(parseArray.contains(goodsId)){
                  goodsMoney = goodsMoney.add(cash);
               }else{
@@ -950,7 +949,7 @@
      //可获得的消费积分
      int earnPoint = 0;
      for (MyShoppingCartVo myShoppingCartVo : goodsList) {
         earnPoint += (myShoppingCartVo.getEarnSpendingPoints() * myShoppingCartVo.getNumber());
         earnPoint += myShoppingCartVo.getEarnSpendingPoints();
      }
      //获取快递策略,计算快递费
@@ -978,6 +977,7 @@
            }
         }
      }
      paymentMoney = paymentMoney.add(expressFee);
      if(BigDecimal.ZERO.compareTo(paymentMoney) > 0){
         paymentMoney = BigDecimal.ZERO;
      }
@@ -1101,11 +1101,6 @@
      }
      //开始构建支付数据
      //现金支付
      paymentMoney = paymentMoney.add(expressFee).setScale(2, RoundingMode.HALF_EVEN);
      if(BigDecimal.ZERO.compareTo(paymentMoney) > 0){
         paymentMoney = BigDecimal.ZERO;
      }
      if(1 == shoppingCartPayment.getPaymentType()){
         if(BigDecimal.ZERO.compareTo(paymentMoney) < 0){
            //调起微信支付