From af1bdf94021985a93f7e95854915653b6a2e9580 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 20 四月 2026 11:50:10 +0800
Subject: [PATCH] update

---
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index c55bab2..ea0559b 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -1541,4 +1541,55 @@
         baseWarpper.setId(orderCrossCity.getId());
         return ResultUtil.success(baseWarpper);
     }
+
+    @Override
+    public ResultUtil orderOnBehalfPay(int crossCityOrderId, int type, Integer driverId) throws Exception {
+        OrderCrossCity order = orderCrossCityMapper.selectById(crossCityOrderId);
+        if (order == null) {
+            return ResultUtil.error("订单不存在");
+        }
+        if (!order.getDriverId().equals(driverId)) {
+            return ResultUtil.error("您没有权限支付此订单");
+        }
+        if (order.getState() != 7) {
+            return ResultUtil.error("订单不在待支付,无法完成订单");
+        }
+        if (type == 1) {
+            UserInfo userInfo = userInfoMapper.selectById(order.getUserId());
+            if (userInfo == null) {
+                return ResultUtil.error("乘客不存在");
+            }
+            if (ToolUtil.isEmpty(userInfo.getAppletsOpenId())) {
+                return ResultUtil.errorOpenId("乘客未绑定微信小程序openid,无法发起微信支付");
+            }
+            String outTradeNo = buildCbyzxOnBehalfOutTradeNo(crossCityOrderId);
+            JSONObject response = cbyzxOrderPayHelper.createOrder(
+                    order.getUserId(),
+                    userInfo.getAppletsOpenId(),
+                    outTradeNo,
+                    order.getOrderMoney()
+            );
+            if (!cbyzxOrderPayHelper.isCreateSuccess(response)) {
+                return ResultUtil.error(cbyzxOrderPayHelper.extractMessage(response), response);
+            }
+            paymentRecordService.saveData(1, order.getDriverId(), 2, crossCityOrderId, 3, 1, order.getOrderMoney(), outTradeNo, 1);
+            return ResultUtil.success(response);
+        } else if (type == 3) {
+            order.setState(2);
+            orderCrossCityMapper.updateById(order);
+
+
+            //添加交易明细
+            transactionDetailsService.saveData(driverId, "跨城出行订单", order.getOrderMoney(), 2, 1, 2, 3, order.getId());
+            return ResultUtil.success();
+        }
+        return ResultUtil.error("支付失败");
+    }
+
+    /**
+     * 创博优代客支付单号,增加业务前缀便于统一回调路由。
+     */
+    private String buildCbyzxOnBehalfOutTradeNo(Integer orderId) throws Exception {
+        return "onBehalf_" + orderId + "_3_" + UUIDUtil.getRandomCode(5);
+    }
 }

--
Gitblit v1.7.1