From a0183fb16e63b51449072b6160b8e4fce16cf9a6 Mon Sep 17 00:00:00 2001
From: 彭雪彬 <1724387007@qq.com>
Date: Wed, 16 Jul 2025 11:53:27 +0800
Subject: [PATCH] 骑手同步数接口修改

---
 oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java |   28 ++++++++++++++++++++++++----
 oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderInfoServiceImpl.java        |    8 ++++----
 2 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderInfoServiceImpl.java b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderInfoServiceImpl.java
index 0ffe8ab..455d421 100644
--- a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderInfoServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderInfoServiceImpl.java
@@ -108,14 +108,14 @@
         RiderSourceInfoHttp riderSourceInfoHttp = RiderSourceHttpUtils.getRiderSourceInfoHttp(phoneList, sourcePlatform);
         // 请求成功
         if (riderSourceInfoHttp.getCode().equals(Constants.HTTP_CODE_SUCCESS)) {
+            // 检查是否存在该平台的骑手信息
+            QueryWrapper<RiderInfo> riderInfoQueryWrapper = new QueryWrapper<>();
+            riderInfoQueryWrapper.eq(RiderInfo.COL_RIDER_ID, riderId);
+            RiderInfo riderInfo = riderInfoMapper.selectOne(riderInfoQueryWrapper);
             // 获取骑手信息等于空
             if (!riderSourceInfoHttp.getData().isEmpty()) {
                 // 单个骑手信息同步只取第一条数据
                 RiderSourceInfo infoHttpData = riderSourceInfoHttp.getData().get(0);
-                // 检查是否存在该平台的骑手信息
-                QueryWrapper<RiderInfo> riderInfoQueryWrapper = new QueryWrapper<>();
-                riderInfoQueryWrapper.eq(RiderInfo.COL_RIDER_ID, riderId);
-                RiderInfo riderInfo = riderInfoMapper.selectOne(riderInfoQueryWrapper);
                 // 如果存在该平台的骑手信息
                 if (null == riderInfo) {
                     // 如果不存在,则创建新的骑手三方信息
diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java
index 993f8eb..9dddb3c 100644
--- a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java
@@ -145,9 +145,17 @@
             }
             // 查询当前订单 检查订单是否已经被其他骑手抢到或取消 直接返回
             OrderResponse orderResponse = orderService.getByOrderNum(orderNum);
+            if (orderResponse == null || orderResponse.getOrder() == null) {
+                return R.fail(400, "订单信息不存在,请稍后重试");
+            }
+            int orderStatus = orderResponse.getOrder().getOrderStatus();
             // 2商家已接单 4商家已备货 这两个状态可以接单
-            if (null == orderResponse || (orderResponse.getOrder().getOrderStatus() != 2 && orderResponse.getOrder().getOrderStatus() != 4)) {
-                return R.fail(400, "订单已经被其他骑手接单或顾客取消,请稍后重试");
+            if (orderStatus != 2 && orderStatus != 4) {
+                return R.fail(400, "订单状态异常,不允许接单");
+            }
+            // 商家备货状态 查看是否存在骑手信息
+            if (orderStatus == 4 && orderResponse.getOrder().getRiderId() == null) {
+                return R.fail(400, "该订单已备货,但未分配骑手,请联系商家确认");
             }
             // 订单没有被接单或取消的情况下,进行接单操作
             // 1.新增骑手接单记录
@@ -181,7 +189,13 @@
         riderOrderRecord.setMerchantId(orderResponse.getOrder().getStoreId());
         riderOrderRecord.setMerchantName(orderResponse.getOrder().getStoreName());
         riderOrderRecord.setMerchantAddress(orderResponse.getOrder().getStoreAddress());
-        riderOrderRecord.setReceiverAddress(orderResponse.getAddress().getDetail());
+        // 收货地址 拼接地址
+        String receiverAddress = orderResponse.getAddress().getCity()
+                + orderResponse.getAddress().getDistrict()
+                + orderResponse.getAddress().getStreet()
+                + orderResponse.getAddress().getShortAddress()
+                + orderResponse.getAddress().getDetail();
+        riderOrderRecord.setReceiverAddress(receiverAddress);
         // 当前为接单 设置为待取货状态 0-已接单 1-已到店 2-配送中 3-已完成 4-商家取消 5-骑手取消 6-客户取消 7-系统取消
         riderOrderRecord.setOrderStatus(Constants.ORDER_STATUS_OK);
         riderOrderRecord.setAcceptTime(new Timestamp(System.currentTimeMillis()));
@@ -272,7 +286,13 @@
         riderIncomeDetail.setDeliveryTime(new Timestamp(System.currentTimeMillis()));
         riderIncomeDetail.setOrderStatus(Constants.ORDER_STATUS_FINISH);
         riderIncomeDetail.setStartAddress(orderResponse.getOrder().getStoreAddress());
-        riderIncomeDetail.setEndAddress(orderResponse.getAddress().getDetail());
+        // 收货地址 拼接地址
+        String receiverAddress = orderResponse.getAddress().getCity()
+                + orderResponse.getAddress().getDistrict()
+                + orderResponse.getAddress().getStreet()
+                + orderResponse.getAddress().getShortAddress()
+                + orderResponse.getAddress().getDetail();
+        riderIncomeDetail.setEndAddress(receiverAddress);
         riderIncomeDetailService.save(riderIncomeDetail);
         return R.success(orderResponse);
     }

--
Gitblit v1.9.3