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-other/src/main/java/com/ruoyi/other/controller/ShopController.java                   |    2 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/WithdrawalRequests.java            |    6 ++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java |   37 +++++++++++++++++-
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/ExpressDeliveryUtil.java                    |    3 +
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopWithdraw.java                     |    6 ++
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                                |    4 +-
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java           |   33 +++++++++++++++-
 7 files changed, 79 insertions(+), 12 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/WithdrawalRequests.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/WithdrawalRequests.java
index c0a2a59..97a1805 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/WithdrawalRequests.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/WithdrawalRequests.java
@@ -74,9 +74,13 @@
     @TableField("audit_status")
     private Integer auditStatus;
     
-    @ApiModelProperty(value = "状态(1=处理中,2=成功)")
+    @ApiModelProperty(value = "状态(1=处理中,2=成功,3=失败)")
     @TableField("status")
     private Integer status;
+
+    @ApiModelProperty(value = "处理结果")
+    @TableField("remark")
+    private String remark;
     
     @ApiModelProperty(value = "到账时间")
     @TableField("arrival_time")
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopWithdraw.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopWithdraw.java
index 8795234..6bda5f6 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopWithdraw.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopWithdraw.java
@@ -59,10 +59,14 @@
     @TableField("audit_msg")
     private String auditMsg;
 
-    @ApiModelProperty(value = "状态(1=申请中,2=已到账)")
+    @ApiModelProperty(value = "状态(1=申请中,2=已到账,3=失败)")
     @TableField("status")
     private Integer status;
 
+    @ApiModelProperty(value = "处理结果")
+    @TableField("remark")
+    private String remark;
+
     @ApiModelProperty(value = "到账时间")
     @TableField("arrival_time")
     private LocalDateTime arrivalTime;
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();
     }
 }
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/ExpressDeliveryUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/ExpressDeliveryUtil.java
index 75e2841..d4f35f7 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/ExpressDeliveryUtil.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/ExpressDeliveryUtil.java
@@ -75,7 +75,8 @@
 	public static MapTrackKD100Vo kd100MapTrack(String com, String num, String from, String to){
 		QueryTrackReq queryTrackReq = new QueryTrackReq();
 		QueryTrackParam queryTrackParam = new QueryTrackParam();
-		queryTrackParam.setCom(CompanyConstant.YD);
+//		queryTrackParam.setCom(CompanyConstant.YD);
+		queryTrackParam.setCom(com);
 		queryTrackParam.setNum(num);
 		queryTrackParam.setFrom(from);
 		queryTrackParam.setTo(to);
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index 4be8e48..70f2159 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -62,7 +62,7 @@
             point,
             order_status as status,
             distribution_mode as distributionMode
-        from t_order where del_flag = 0 and pay_status = 2 and end_time is not null and distribution_mode != 2
+        from t_order where del_flag = 0 and pay_status = 2
         <if test="null != item.code and '' != item.code">
             and order_number like CONCAT('%', #{item.code}, '%')
         </if>
@@ -85,7 +85,7 @@
             and order_status in (4, 8)
         </if>
         <if test="null != item.shopId">
-            and shop_id = #{item.shopId} and address_json is null
+            and shop_id = #{item.shopId} and distribution_mode != 2
         </if>
         order by create_time desc
     </select>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
index 31c9504..d564c72 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -270,7 +270,7 @@
         if (!shopService.cheUserByPhone(phone)) {
             return R.fail("该手机号未注册");
         }
-        if (shop.getPid()!=null){
+        if (shop.getPid() != null && shop.getPid() != 0){
             Shop shopP = shopService.getById(shop.getPid());
             if (shopP.getPid()!=null&&shopP.getPid()!=0&& shopP.getPid().equals(shop.getId())){
                 return R.fail("门店之间不能互相作为上级门店");
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 be86361..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
@@ -263,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());
@@ -274,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