From 22733a6ca924ecbf4971f936a1a1138d1112f12d Mon Sep 17 00:00:00 2001 From: 彭雪彬 <1724387007@qq.com> Date: Mon, 14 Jul 2025 18:35:37 +0800 Subject: [PATCH] 骑手接单 --- oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java | 25 +++++++++++++++++++------ oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderRecordService.java | 8 ++++++++ oying-system/src/main/java/com/oying/modules/rider/utils/Constants.java | 23 +++++++++++++++++++++++ oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderRecord.java | 2 ++ 4 files changed, 52 insertions(+), 6 deletions(-) diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderRecord.java b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderRecord.java index b077fbf..56f2344 100644 --- a/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderRecord.java +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderRecord.java @@ -99,4 +99,6 @@ public void copy(RiderOrderRecord source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); } + + public static final String COL_ORDER_NUM = "order_num"; } diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderRecordService.java b/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderRecordService.java index 9ba9d0a..60336e9 100644 --- a/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderRecordService.java +++ b/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderRecordService.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.oying.utils.PageResult; import com.oying.utils.R; +import org.springframework.transaction.annotation.Transactional; /** * @description 服务接口 @@ -71,4 +72,11 @@ * @throws IOException / */ R riderCancelOrder(String orderNum); + + /** + * 修改骑手端订单状态 + * @param orderNum + * @throws IOException / + */ + void updateRiderOrderStatus(String orderNum, String orderStatus); } 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 cbbf0cd..78e2ea8 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 @@ -1,15 +1,15 @@ package com.oying.modules.rider.service.impl; import cn.hutool.core.lang.UUID; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.oying.exception.BadRequestException; import com.oying.modules.pc.store.domain.Store; import com.oying.modules.pc.store.service.StoreService; import com.oying.modules.rider.domain.RiderInfo; import com.oying.modules.rider.domain.RiderOrderRecord; import com.oying.modules.rider.service.RiderInfoService; -import com.oying.modules.sh.domain.OrderOperationLog; +import com.oying.modules.rider.utils.Constants; import com.oying.modules.sh.domain.vo.OrderResponse; -import com.oying.modules.sh.service.OrderOperationLogService; import com.oying.modules.sh.service.OrderService; import com.oying.utils.*; import lombok.RequiredArgsConstructor; @@ -104,6 +104,19 @@ @Override @Transactional(rollbackFor = Exception.class) + public void updateRiderOrderStatus(String orderNum, String orderStatus) { + // 当前为接单 设置为待取货状态 1-待取货 2-配送中 3-已完成 4-商家取消 5-骑手取消 6-客户取消 7-系统取消 + RiderOrderRecord riderOrderRecord = new RiderOrderRecord(); + riderOrderRecord.setOrderNum(orderNum); + riderOrderRecord.setOrderStatus(orderStatus); + QueryWrapper<RiderOrderRecord> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(RiderOrderRecord.COL_ORDER_NUM, orderNum); + // 更新订单状态 + riderOrderRecordMapper.update(riderOrderRecord, queryWrapper); + } + + @Override + @Transactional(rollbackFor = Exception.class) public R riderGrabOrder(String orderNum) { // 唯一标识当前线程/客户端 String clientId = UUID.randomUUID().toString(); @@ -117,7 +130,7 @@ } // 查询当前订单 检查订单是否已经被其他骑手抢到或取消 直接返回 OrderResponse orderResponse = orderService.getByOrderNum(orderNum); - // 商家已接单 商家已备货 这两个状态可以接单 + // 2商家已接单 4商家已备货 这两个状态可以接单 if (orderResponse == null || orderResponse.getOrder().getOrderStatus() != 2 || orderResponse.getOrder().getOrderStatus() != 4) { return R.fail(400, "订单已经被其他骑手接单或顾客取消,请稍后重试"); } @@ -159,14 +172,14 @@ riderOrderRecord.setMerchantAddress(store.getAddress()); riderOrderRecord.setReceiverAddress(orderResponse.getAddress().getDetail()); // 当前为接单 设置为待取货状态 1-待取货 2-配送中 3-已完成 4-商家取消 5-骑手取消 6-客户取消 7-系统取消 - riderOrderRecord.setOrderStatus("1"); + riderOrderRecord.setOrderStatus(Constants.ORDER_STATUS_WAIT); riderOrderRecord.setAcceptTime(new Timestamp(System.currentTimeMillis())); // 取单编号 riderOrderRecord.setAcceptNum(orderResponse.getOrder().getOrderStoreNum()); // 是否超时:1-是 0-否 - riderOrderRecord.setIsOvertime("0"); + riderOrderRecord.setIsOvertime(Constants.IS_OVERTIME_NO); // 订单来源: 1-平台派单 2-骑手抢单 3-商家直派 4-其他 - riderOrderRecord.setOrderSource("3"); + riderOrderRecord.setOrderSource(Constants.ORDER_SOURCE_DIRECT); riderOrderRecord.setRiderId(riderInfo.getRiderId()); riderOrderRecord.setRiderName(riderInfo.getCardName()); riderOrderRecord.setPhone(riderInfo.getPhone()); diff --git a/oying-system/src/main/java/com/oying/modules/rider/utils/Constants.java b/oying-system/src/main/java/com/oying/modules/rider/utils/Constants.java index a5fbb13..c8c2fbd 100644 --- a/oying-system/src/main/java/com/oying/modules/rider/utils/Constants.java +++ b/oying-system/src/main/java/com/oying/modules/rider/utils/Constants.java @@ -38,5 +38,28 @@ */ String WALLET_STATUS_NORMAL = "1"; String WALLET_STATUS_FROZEN = "0"; + /** + * 超时状态 1-是 0-否 + */ + String IS_OVERTIME_NO = "0"; + String IS_OVERTIME = "1"; + /** + * 订单来源: 1-平台派单 2-骑手抢单 3-商家直派 4-其他 + */ + String ORDER_SOURCE_PLATFORM = "1"; + String ORDER_SOURCE_RIDER = "2"; + String ORDER_SOURCE_DIRECT = "3"; + String ORDER_SOURCE_OTHER = "4"; + + /** + * 订单状态: 1-待取货 2-配送中 3-已完成 4-商家取消 5-骑手取消 6-客户取消 7-系统取消 + */ + String ORDER_STATUS_WAIT = "1"; + String ORDER_STATUS_DELIVERY = "2"; + String ORDER_STATUS_FINISH = "3"; + String ORDER_STATUS_CANCEL_MERCHANT = "4"; + String ORDER_STATUS_CANCEL_RIDER = "5"; + String ORDER_STATUS_CANCEL_CUSTOMER = "6"; + String ORDER_STATUS_CANCEL_SYSTEM = "7"; } -- Gitblit v1.9.3