From dd023bd2ca2ef7820ffb8a49fe620356d3d97375 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Tue, 10 Feb 2026 12:13:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E6=9B=B4=E6=96=B0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E9=85=8D=E9=80=81=E7=8A=B6=E6=80=81=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BB=A5=E6=94=AF=E6=8C=81=E9=85=8D=E9=80=81?= =?UTF-8?q?=E5=91=98ID=E4=BC=A0=E9=80=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在markShopOrderShippedAfterRiderAssigned方法中添加riderId参数 - 修改updateShopOrderDeliveryStatusAfterAccept方法以接收并处理配送员ID - 更新查询逻辑以包含配送员ID字段的选择 - 添加实际配送员ID的判断逻辑,优先使用传入的配送员ID - 修改配送状态更新条件,包含配送员ID不一致的场景 - 在更新配送状态的同时设置配送员ID - 添加配送员ID查询条件到最终验证查询中 - 更新警告日志信息以包含配送员ID相关信息 --- .../controller/GltTicketOrderController.java | 6 +++- .../glt/service/GltTicketOrderService.java | 2 +- .../impl/GltTicketOrderServiceImpl.java | 30 ++++++++++++++----- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/gxwebsoft/glt/controller/GltTicketOrderController.java b/src/main/java/com/gxwebsoft/glt/controller/GltTicketOrderController.java index 07f5849..d8dc338 100644 --- a/src/main/java/com/gxwebsoft/glt/controller/GltTicketOrderController.java +++ b/src/main/java/com/gxwebsoft/glt/controller/GltTicketOrderController.java @@ -247,7 +247,11 @@ public class GltTicketOrderController extends BaseController { && gltTicketOrder.getId() != null && gltTicketOrder.getRiderId() != null && gltTicketOrder.getRiderId() > 0) { - gltTicketOrderService.markShopOrderShippedAfterRiderAssigned(gltTicketOrder.getId(), getTenantId()); + gltTicketOrderService.markShopOrderShippedAfterRiderAssigned( + gltTicketOrder.getId(), + getTenantId(), + gltTicketOrder.getRiderId() + ); } return success("修改成功"); } diff --git a/src/main/java/com/gxwebsoft/glt/service/GltTicketOrderService.java b/src/main/java/com/gxwebsoft/glt/service/GltTicketOrderService.java index 3fdb16b..1252f65 100644 --- a/src/main/java/com/gxwebsoft/glt/service/GltTicketOrderService.java +++ b/src/main/java/com/gxwebsoft/glt/service/GltTicketOrderService.java @@ -69,7 +69,7 @@ public interface GltTicketOrderService extends IService { * *

用于后台指派配送员(不走接单接口)等场景的状态兜底同步。

*/ - void markShopOrderShippedAfterRiderAssigned(Integer ticketOrderId, Integer tenantId); + void markShopOrderShippedAfterRiderAssigned(Integer ticketOrderId, Integer tenantId, Integer riderId); /** * 配送员开始配送:10 -> 20,并写 sendStartTime。 diff --git a/src/main/java/com/gxwebsoft/glt/service/impl/GltTicketOrderServiceImpl.java b/src/main/java/com/gxwebsoft/glt/service/impl/GltTicketOrderServiceImpl.java index 2f13605..770ca87 100644 --- a/src/main/java/com/gxwebsoft/glt/service/impl/GltTicketOrderServiceImpl.java +++ b/src/main/java/com/gxwebsoft/glt/service/impl/GltTicketOrderServiceImpl.java @@ -225,7 +225,7 @@ public class GltTicketOrderServiceImpl extends ServiceImpl 20已发货 - updateShopOrderDeliveryStatusAfterAccept(id, tenantId, now); + updateShopOrderDeliveryStatusAfterAccept(id, tenantId, riderId, now); return; } @@ -245,18 +245,18 @@ public class GltTicketOrderServiceImpl extends ServiceImpl 0) ? riderId : ticketOrder.getRiderId(); + GltUserTicket userTicket = gltUserTicketService.getOne( new LambdaQueryWrapper() .eq(GltUserTicket::getTenantId, tenantId) @@ -286,9 +288,18 @@ public class GltTicketOrderServiceImpl extends ServiceImpl uw = new LambdaUpdateWrapper() .eq(ShopOrder::getTenantId, tenantId) .eq(ShopOrder::getDeleted, 0) - .and(w -> w.ne(ShopOrder::getDeliveryStatus, 20).or().isNull(ShopOrder::getDeliveryStatus)) + // deliveryStatus 已经是 20 时也可能需要补写/更新 riderId,因此条件包含 riderId 不一致的场景 + .and(w -> { + w.ne(ShopOrder::getDeliveryStatus, 20).or().isNull(ShopOrder::getDeliveryStatus); + if (actualRiderId != null && actualRiderId > 0) { + w.or().ne(ShopOrder::getRiderId, actualRiderId).or().isNull(ShopOrder::getRiderId); + } + }) .set(ShopOrder::getDeliveryStatus, 20) .set(ShopOrder::getUpdateTime, now); + if (actualRiderId != null && actualRiderId > 0) { + uw.set(ShopOrder::getRiderId, actualRiderId); + } if (shopOrderId != null) { uw.eq(ShopOrder::getOrderId, shopOrderId); } else { @@ -305,14 +316,17 @@ public class GltTicketOrderServiceImpl extends ServiceImpl 0) { + qw.eq(ShopOrder::getRiderId, actualRiderId); + } if (shopOrderId != null) { qw.eq(ShopOrder::getOrderId, shopOrderId); } else { qw.eq(ShopOrder::getOrderNo, shopOrderNo); } if (shopOrderService.count(qw) <= 0) { - log.warn("接单成功但同步商城订单发货状态失败 - tenantId={}, ticketOrderId={}, shopOrderId={}, shopOrderNo={}", - tenantId, ticketOrderId, shopOrderId, shopOrderNo); + log.warn("接单/指派成功但同步商城订单发货状态/配送员失败 - tenantId={}, ticketOrderId={}, riderId={}, shopOrderId={}, shopOrderNo={}", + tenantId, ticketOrderId, actualRiderId, shopOrderId, shopOrderNo); } }