From d43737438cd7bd1653f94ac80f81eef7974bba26 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 14 一月 2025 19:44:12 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java |   44 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
index f0a432b..ad93c40 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
@@ -127,6 +127,14 @@
     public R<Shop> shopCommissionStatisticsinfo(){
         Integer objectId = tokenService.getLoginUser().getSysUser().getObjectId();
         Shop byId = shopService.getById(objectId);
+        List<ShopWithdraw> list = shopWithdrawService.lambdaQuery().eq(ShopWithdraw::getShopId, objectId)
+                .eq(ShopWithdraw::getAuditStatus, 0).list();
+        if (!list.isEmpty()){
+            BigDecimal bigDecimal = list.stream().map(ShopWithdraw::getMoney).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
+            byId.setWithdrawAuditMoney(bigDecimal);
+        }else {
+            byId.setWithdrawAuditMoney(BigDecimal.ZERO);
+        }
         return R.ok(byId);
     }
     
@@ -137,6 +145,9 @@
         SysUser sysUser = sysUserClient.getSysUser(userid).getData();
         Integer objectId = sysUser.getObjectId();
         Shop shop = shopService.getById(objectId);
+        if (money.compareTo(BigDecimal.ZERO)==0){
+            return R.fail("提现金额必须大于零");
+        }
         if (money.compareTo(shop.getCanWithdrawMoney())>0){
             return R.fail("提现金额不能大于可提现金额");
         }
@@ -252,9 +263,9 @@
     @PostMapping("/withdrawalCallback")
     public Object withdrawalCallback(@RequestBody SinglePayCallbackResult singlePayCallbackResult){
         Integer status = singlePayCallbackResult.getStatus();
+        String merchantOrderNo = singlePayCallbackResult.getMerchantOrderNo();
+        ShopWithdraw shopWithdraw = shopWithdrawService.getById(merchantOrderNo);
         if(203 == status || 205 == status){
-            String merchantOrderNo = singlePayCallbackResult.getMerchantOrderNo();
-            ShopWithdraw shopWithdraw = shopWithdrawService.getById(merchantOrderNo);
             if(1 == shopWithdraw.getStatus()){
                 shopWithdraw.setStatus(2);
                 shopWithdraw.setArrivalTime(LocalDateTime.now());
@@ -263,8 +274,35 @@
             JSONObject jsonObject = new JSONObject();
             jsonObject.put("statusCode", 2001);
             return jsonObject;
+        }else{
+            //回退金额和添加变动明细
+            Shop shop = shopService.getById(shopWithdraw.getShopId());
+            BigDecimal balance = shop.getBalance();
+            BigDecimal canWithdrawMoney = shop.getCanWithdrawMoney();
+            BigDecimal withdrawMoney = shop.getWithdrawMoney();
+            shop.setBalance(balance.add(shopWithdraw.getMoney()).setScale(2, RoundingMode.HALF_EVEN));
+            shop.setCanWithdrawMoney(canWithdrawMoney.add(shopWithdraw.getMoney()).setScale(2, RoundingMode.HALF_EVEN));
+            shop.setWithdrawMoney(withdrawMoney.subtract(shopWithdraw.getMoney()).setScale(2, RoundingMode.HALF_EVEN));
+            shopService.updateById(shop);
+            //添加门店变动明细
+            ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
+            shopBalanceStatement.setShopId(shop.getId());
+            shopBalanceStatement.setType(4);
+            shopBalanceStatement.setHistoricalBalance(balance);
+            shopBalanceStatement.setVariableAmount(shopWithdraw.getMoney());
+            shopBalanceStatement.setBalance(shop.getBalance());
+            shopBalanceStatement.setCreateUserId(shopWithdraw.getAuditUserId());
+            shopBalanceStatement.setCreateTime(LocalDateTime.now());
+            shopBalanceStatement.setObjectId(shopWithdraw.getId());
+            shopBalanceStatementService.save(shopBalanceStatement);
+            shopWithdraw.setStatus(3);
+            shopWithdraw.setRemark(singlePayCallbackResult.getErrorCodeDesc());
+            shopWithdrawService.updateById(shopWithdraw);
+
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("statusCode", 2001);
+            return jsonObject;
         }
-        return new JSONObject();
     }
 }
 

--
Gitblit v1.7.1