luofl
2025-03-07 faf27967a7f94a4ed03a179ec2670031576f4502
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -41,6 +41,9 @@
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Slf4j
@@ -1201,33 +1204,36 @@
         BigDecimal balance = appUser.getBalance();
         //红包金额满足支付
         BigDecimal paymentMoney1 = paymentMoney;
         if(paymentMoney1.compareTo(totalRedPacketAmount) <= 0){
            totalRedPacketAmount = totalRedPacketAmount.subtract(paymentMoney1);
            balance = balance.subtract(paymentMoney1);
            appUser.setTotalRedPacketAmount(totalRedPacketAmount);
            appUser.setBalance(balance);
            redPacketAmount = paymentMoney1;
         }else{
            paymentMoney1 = paymentMoney1.subtract(totalRedPacketAmount);
            redPacketAmount = totalRedPacketAmount;
            totalRedPacketAmount = BigDecimal.ZERO;
            if(paymentMoney1.compareTo(totalDistributionAmount) <= 0){
               totalDistributionAmount = totalDistributionAmount.subtract(paymentMoney1);
               balance = balance.subtract(paymentMoney1);
               appUser.setTotalRedPacketAmount(totalRedPacketAmount);
//               appUser.setTotalDistributionAmount(totalDistributionAmount);
               appUser.setBalance(balance);
               distributionAmount = paymentMoney1;
            }else{
               paymentMoney1 = paymentMoney1.subtract(totalDistributionAmount);
               totalDistributionAmount = BigDecimal.ZERO;
               balance = balance.subtract(paymentMoney1);
               appUser.setTotalRedPacketAmount(totalRedPacketAmount);
//               appUser.setTotalDistributionAmount(totalDistributionAmount);
               appUser.setBalance(balance);
               distributionAmount = totalDistributionAmount;
            }
         }
         balance = balance.subtract(paymentMoney1);
         appUser.setBalance(balance);
//         if(paymentMoney1.compareTo(totalRedPacketAmount) <= 0){
//            totalRedPacketAmount = totalRedPacketAmount.subtract(paymentMoney1);
//            balance = balance.subtract(paymentMoney1);
//            appUser.setTotalRedPacketAmount(totalRedPacketAmount);
//            appUser.setBalance(balance);
//            redPacketAmount = paymentMoney1;
//         }else{
//            paymentMoney1 = paymentMoney1.subtract(totalRedPacketAmount);
//            redPacketAmount = totalRedPacketAmount;
//            totalRedPacketAmount = BigDecimal.ZERO;
//            if(paymentMoney1.compareTo(totalDistributionAmount) <= 0){
////               totalDistributionAmount = totalDistributionAmount.subtract(paymentMoney1);
//               balance = balance.subtract(paymentMoney1);
//               appUser.setTotalRedPacketAmount(totalRedPacketAmount);
////               appUser.setTotalDistributionAmount(totalDistributionAmount);
//               appUser.setBalance(balance);
//               distributionAmount = paymentMoney1;
//            }else{
//               paymentMoney1 = paymentMoney1.subtract(totalDistributionAmount);
//               totalDistributionAmount = BigDecimal.ZERO;
//               balance = balance.subtract(paymentMoney1);
//               appUser.setTotalRedPacketAmount(totalRedPacketAmount);
////               appUser.setTotalDistributionAmount(totalDistributionAmount);
//               appUser.setBalance(balance);
//               distributionAmount = totalDistributionAmount;
//            }
//         }
         //构建积分流水记录
         if(earnPoint > 0){
            PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
@@ -1431,8 +1437,8 @@
         orderBalancePayment.setDistributionAmount(distributionAmount);
         orderBalancePaymentService.save(orderBalancePayment);
      }
      commissionService.calculationCommissionCopy(order);
      commissionService.calculationCommissionUser(order.getId());
      return R.ok(order.getId().toString());
   }
@@ -1536,6 +1542,8 @@
      for (Integer goodsId : goodsIds) {
         goodsClient.editGoodsNum(goodsId, 1);
      }
      commissionService.calculationCommissionUser(order.getId());
      return R.ok();
   }