From 3c9cc4f7a8ce14ce07dec4032d163fbb654cbd3f Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 14 一月 2025 19:08:04 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java |   37 ++++++++++++++++++++++++++++++++++---
 1 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java
index bea2770..c792884 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java
@@ -158,9 +158,9 @@
     @PostMapping("/withdrawalCallback")
     public Object withdrawalCallback(@RequestBody SinglePayCallbackResult singlePayCallbackResult){
         Integer status = singlePayCallbackResult.getStatus();
+        String merchantOrderNo = singlePayCallbackResult.getMerchantOrderNo();
+        WithdrawalRequests withdrawalRequests = withdrawalRequestsService.getById(merchantOrderNo);
         if(203 == status || 205 == status){
-            String merchantOrderNo = singlePayCallbackResult.getMerchantOrderNo();
-            WithdrawalRequests withdrawalRequests = withdrawalRequestsService.getById(merchantOrderNo);
             if(1 == withdrawalRequests.getStatus()){
                 withdrawalRequests.setStatus(2);
                 withdrawalRequests.setArrivalTime(LocalDateTime.now());
@@ -169,8 +169,39 @@
             JSONObject jsonObject = new JSONObject();
             jsonObject.put("statusCode", 2001);
             return jsonObject;
+        }else{
+            //回退扣除的金额,添加明细记录
+            //修改用户的可提现金额
+            BigDecimal withdrawalAmount = withdrawalRequests.getWithdrawalAmount();
+            AppUser appUser = appUserService.getById(withdrawalRequests.getAppUserId());
+            BigDecimal withdrawableAmount = appUser.getWithdrawableAmount();
+            BigDecimal withdrawnAmount = appUser.getWithdrawnAmount();
+            BigDecimal balance = appUser.getBalance();
+            appUser.setWithdrawableAmount(withdrawableAmount.add(withdrawalAmount).setScale(2, RoundingMode.HALF_EVEN));
+            appUser.setWithdrawnAmount(withdrawnAmount.subtract(withdrawalAmount).setScale(2, RoundingMode.HALF_EVEN));
+            appUser.setBalance(appUser.getBalance().add(withdrawalAmount).setScale(2, RoundingMode.HALF_EVEN));
+            appUserService.updateById(appUser);
+            //添加变动明细
+            BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
+            balanceChangeRecord.setAppUserId(appUser.getId());
+            balanceChangeRecord.setVipId(appUser.getVipId());
+            balanceChangeRecord.setOrderId(withdrawalRequests.getId());
+            balanceChangeRecord.setChangeType(2);
+            balanceChangeRecord.setBeforeAmount(balance);
+            balanceChangeRecord.setChangeAmount(withdrawalAmount);
+            balanceChangeRecord.setAfterAmount(appUser.getBalance());
+            balanceChangeRecord.setDelFlag(0);
+            balanceChangeRecord.setCreateTime(LocalDateTime.now());
+            balanceChangeRecordService.save(balanceChangeRecord);
+
+            withdrawalRequests.setStatus(3);
+            withdrawalRequests.setRemark(singlePayCallbackResult.getErrorCodeDesc());
+            withdrawalRequestsService.updateById(withdrawalRequests);
+
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("statusCode", 2001);
+            return jsonObject;
         }
-        return new JSONObject();
     }
 }
 

--
Gitblit v1.7.1