liujie
2026-04-28 88197952a54bee75e4fb181253d34992063ea9e8
p0功能 小程序
1个文件已修改
26 ■■■■■ 已修改文件
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -442,6 +442,22 @@
        appUserClient.updateAppUser(appUser);
    }
    private void recordBalanceConsume(TChargingOrder chargingOrder, BigDecimal consumeAmount) {
        if (chargingOrder == null || chargingOrder.getAppUserId() == null || chargingOrder.getId() == null
                || consumeAmount == null || consumeAmount.compareTo(BigDecimal.ZERO) <= 0) {
            return;
        }
        ExchangeCodeConsumeDTO consumeDTO = new ExchangeCodeConsumeDTO();
        consumeDTO.setUserId(chargingOrder.getAppUserId());
        consumeDTO.setOrderId(chargingOrder.getId());
        consumeDTO.setAmount(consumeAmount);
        R<ExchangeCodeConsumeResultVO> result = otherClient.consumeExchangeCodeBalance(consumeDTO);
        if (result == null || result.getCode() != 200) {
            throw new RuntimeException("??????????");
        }
    }
    private void recordBalanceRefund(TChargingOrder chargingOrder, BigDecimal refundAmount, String refundNo) {
        if (chargingOrder == null || chargingOrder.getAppUserId() == null || chargingOrder.getId() == null
                || refundAmount == null || refundAmount.compareTo(BigDecimal.ZERO) <= 0) {
@@ -658,6 +674,7 @@
        
        if (thirdPayAmount.compareTo(BigDecimal.ZERO) == 0 && balancePayAmount.compareTo(BigDecimal.ZERO) > 0) {
            changeUserBalance(userId, balancePayAmount.negate());
            recordBalanceConsume(chargingOrder, balancePayAmount);
        }
        if (thirdPayAmount.compareTo(BigDecimal.ZERO) == 0) {
            return chargingOrderCallback(addChargingOrder.getPaymentType(), chargingOrder.getCode(), "BALANCE", null);
@@ -729,6 +746,7 @@
                throw new RuntimeException("余额不足,支付回调处理失败");
            }
            changeUserBalance(chargingOrder.getAppUserId(), money(chargingOrder.getBalancePayAmount()).negate());
            recordBalanceConsume(chargingOrder, money(chargingOrder.getBalancePayAmount()));
        }
        chargingOrder.setRechargePaymentStatus(2);
        chargingOrder.setRechargeSerialNumber(transaction_id);
@@ -2799,14 +2817,6 @@
                BigDecimal actualBalancePayAmount = money(chargingOrder.getBalancePayAmount()).subtract(balanceRefundAmount);
                if (actualBalancePayAmount.compareTo(BigDecimal.ZERO) < 0) {
                    actualBalancePayAmount = BigDecimal.ZERO;
                }
                if (isBalancePayMode(chargingOrder.getPayMethod()) && chargingOrder.getAppUserId() != null
                        && actualBalancePayAmount.compareTo(BigDecimal.ZERO) > 0) {
                    ExchangeCodeConsumeDTO exchangeCodeConsumeDTO = new ExchangeCodeConsumeDTO();
                    exchangeCodeConsumeDTO.setUserId(chargingOrder.getAppUserId());
                    exchangeCodeConsumeDTO.setOrderId(chargingOrder.getId());
                    exchangeCodeConsumeDTO.setAmount(actualBalancePayAmount);
                    otherClient.consumeExchangeCodeBalance(exchangeCodeConsumeDTO);
                }
                refundAmount = thirdRefundAmount.add(balanceRefundAmount);
                chargingOrder.setBalanceRefundAmount(balanceRefundAmount.setScale(2, RoundingMode.HALF_UP));