Pu Zhibing
2025-01-01 e0623f1a914ecbc99d5926c0df3cf26032c02499
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -401,7 +401,7 @@
         List<PaymentUserCouponVo> data = userCouponClient.getPaymentUserCoupon(paymentUserCoupon).getData();
         if(null != data){
            for (PaymentUserCouponVo couponInfo : data) {
               List<Integer> forGoodIds = couponInfo.getForGoodIds();
               List<String> forGoodIds = couponInfo.getForGoodIds();
               //全部商品适用
               if(null == forGoodIds){
                  //满减券
@@ -630,7 +630,6 @@
            orderMoney = orderMoney.add(myShoppingCartVo.getCash().multiply(new BigDecimal(myShoppingCartVo.getNumber())));
         }
      }else{
         orderPoint = goodsList.stream().mapToInt(MyShoppingCartVo::getPoint).sum();
         for (MyShoppingCartVo myShoppingCartVo : goodsList) {
            orderPoint += (myShoppingCartVo.getPoint() * myShoppingCartVo.getNumber());
         }
@@ -654,9 +653,10 @@
      if(null != shoppingCartPayment.getUserCouponId() && 3 != shoppingCartPayment.getPaymentType()){
         couponInfoVo = userCouponClient.getCouponInfo(shoppingCartPayment.getUserCouponId()).getData();
         String forGoodIds = couponInfoVo.getForGoodIds();
         List<Integer> parseArray = JSON.parseArray(forGoodIds, Integer.class);
         String[] split = forGoodIds.split(",");
         List<String> parseArray = Arrays.asList(split);
         //全部商品
         if(parseArray.contains(-1)){
         if("-1".equals(forGoodIds)){
            //满减
            if(1 == couponInfoVo.getCouponType() && couponInfoVo.getConditionAmount().compareTo(paymentMoney) <= 0){
               paymentMoney = paymentMoney.subtract(couponInfoVo.getDiscountAmount());
@@ -683,7 +683,7 @@
            paymentMoney = BigDecimal.ZERO;
            BigDecimal goodsMoney = BigDecimal.ZERO;
            for (MyShoppingCartVo myShoppingCartVo : goodsList) {
               Integer goodsId = myShoppingCartVo.getGoodsId();
               String goodsId = myShoppingCartVo.getGoodsId().toString();
               BigDecimal cash = myShoppingCartVo.getCash();
               if(parseArray.contains(goodsId)){
                  goodsMoney = goodsMoney.add(cash);
@@ -928,14 +928,17 @@
         //构建积分流水记录
         if(earnPoint > 0){
            PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
            int earnPoint1 = earnPoint;
            int earnPoint1 = 0;
            if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
               earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
               earnPoint1 = new BigDecimal(earnPoint).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
            }
            appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
            appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
            appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
            appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
            if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){
               appUser.setTransferablePoint(appUser.getTransferablePoint() + earnPoint1);
            }
            UserPoint userPoint = new UserPoint();
            userPoint.setType(1);
@@ -993,10 +996,10 @@
         
         Integer lavePoint = appUser.getLavePoint();
         PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
         int earnPoint1 = earnPoint;
         int earnPoint1 = 0;
         //计算可用积分比例
         if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
            earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
            earnPoint1 = new BigDecimal(earnPoint).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
         }
         //扣减订单支付积分
         appUser.setLavePoint(appUser.getLavePoint() - orderPoint);
@@ -1005,6 +1008,9 @@
         appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
         appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
         appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
         if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){
            appUser.setTransferablePoint(appUser.getTransferablePoint() + earnPoint1);
         }
         appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
         appUser.setLastShopTime(LocalDateTime.now());
         appUserClient.editAppUserById(appUser);