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