From 6a924ce7a83e0966856298e7e2fbd660d4f118c7 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期一, 18 五月 2026 11:57:41 +0800
Subject: [PATCH] fix bugs

---
 UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java |   48 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java
index 95855d6..82e626c 100644
--- a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java
+++ b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java
@@ -896,9 +896,19 @@
                 userInfoService.updateById(userInfo);
             }else if(orderRide.getPayType()==2){
                 //微信
-                Integer money = new Double(orderRide.getMoney() * 100).intValue();
-               Integer tMoney_ = new Double(orderRide.getTuiMoney()* 100).intValue();
-               PayUtil.refundForWxpay(1, financial.getLsType(), orderRide.getOrderNum(), finNum, money,tMoney_ , "2");
+//                Integer money = new Double(orderRide.getMoney() * 100).intValue();
+//               Integer tMoney_ = new Double(orderRide.getTuiMoney()* 100).intValue();
+//               PayUtil.refundForWxpay(1, financial.getLsType(), orderRide.getOrderNum(), finNum, money,tMoney_ , "2");
+
+                CbyzxPayUtil.ClosePayOrderRequest request = new CbyzxPayUtil.ClosePayOrderRequest();
+                request.setOutRequestNo(orderRide.getOutNum());
+                request.setRefundOutRequestNo(buildPrepayRefundOutNo(orderRide.getId()));
+                request.setRefundAmount(toFen(orderRide.getTuiMoney()));
+                request.setRefundDesc("顺风车订单取消退款");
+                com.alibaba.fastjson.JSONObject response = CbyzxPayUtil.closePayOrder(request);
+                if (!isPrivateCarPrepayRefundSuccess(response)) {
+                    throw new RuntimeException(extractPrivateCarRefundMessage(response));
+                }
 
             }else if(orderRide.getPayType()==3){
             
@@ -928,6 +938,38 @@
         orderRideService.updateAllColumnById(orderRide);
     }
 
+    private String buildPrepayRefundOutNo(Integer orderId) {
+        return "PREPAY_REFUND_8_" + orderId+ToolUtil.getRandomString(5);
+    }
+
+    private Integer toFen(Double amount) {
+        return new BigDecimal(String.valueOf(amount)).multiply(new BigDecimal("100")).setScale(0, RoundingMode.HALF_UP).intValue();
+    }
+
+    private boolean isPrivateCarPrepayRefundSuccess(com.alibaba.fastjson.JSONObject response) {
+        if (response == null) {
+            return false;
+        }
+        Object code = response.get("code");
+        if (code == null || !"0".equals(String.valueOf(code))) {
+            return false;
+        }
+        com.alibaba.fastjson.JSONObject data = response.getJSONObject("data");
+        return data != null && Boolean.TRUE.equals(data.getBoolean("isSuccess"));
+    }
+
+    private String extractPrivateCarRefundMessage(com.alibaba.fastjson.JSONObject response) {
+        if (response == null) {
+            return "微信退款失败";
+        }
+        com.alibaba.fastjson.JSONObject data = response.getJSONObject("data");
+        if (data != null && ToolUtil.isNotEmpty(data.getString("failReason"))) {
+            return data.getString("failReason");
+        }
+        String msg = response.getString("msg");
+        return ToolUtil.isNotEmpty(msg) ? msg : "微信退款失败";
+    }
+
     /**
      * 司机行程取消
      * @param orderId

--
Gitblit v1.7.1