feat(order): 添加后台指派配送员时同步商城订单发货状态功能

- 在订单更新接口中添加配送员指派后的状态同步逻辑
- 新增 markShopOrderShippedAfterRiderAssigned 方法用于状态同步
- 实现后台指派配送员时自动将关联商城订单标记为已发货状态
- 添加相关业务方法注释说明使用场景和目的
- 确保配送员指派后订单状态的一致性同步
This commit is contained in:
2026-02-10 12:08:58 +08:00
parent 4481850809
commit ad5a5abb31
3 changed files with 19 additions and 0 deletions

View File

@@ -242,6 +242,13 @@ public class GltTicketOrderController extends BaseController {
@PutMapping() @PutMapping()
public ApiResult<?> update(@RequestBody GltTicketOrder gltTicketOrder) { public ApiResult<?> update(@RequestBody GltTicketOrder gltTicketOrder) {
if (gltTicketOrderService.updateById(gltTicketOrder)) { if (gltTicketOrderService.updateById(gltTicketOrder)) {
// 后台指派配送员(直接改 riderId同步商城订单为“已发货”(deliveryStatus=20)
if (gltTicketOrder != null
&& gltTicketOrder.getId() != null
&& gltTicketOrder.getRiderId() != null
&& gltTicketOrder.getRiderId() > 0) {
gltTicketOrderService.markShopOrderShippedAfterRiderAssigned(gltTicketOrder.getId(), getTenantId());
}
return success("修改成功"); return success("修改成功");
} }
return fail("修改失败"); return fail("修改失败");

View File

@@ -64,6 +64,13 @@ public interface GltTicketOrderService extends IService<GltTicketOrder> {
*/ */
void accept(Integer id, Integer riderId, Integer tenantId); void accept(Integer id, Integer riderId, Integer tenantId);
/**
* 指派/接单成功后,同步关联商城订单发货状态为“已发货”(deliveryStatus=20)。
*
* <p>用于后台指派配送员(不走接单接口)等场景的状态兜底同步。</p>
*/
void markShopOrderShippedAfterRiderAssigned(Integer ticketOrderId, Integer tenantId);
/** /**
* 配送员开始配送10 -> 20并写 sendStartTime。 * 配送员开始配送10 -> 20并写 sendStartTime。
*/ */

View File

@@ -244,6 +244,11 @@ public class GltTicketOrderServiceImpl extends ServiceImpl<GltTicketOrderMapper,
throw new BusinessException("订单状态不允许接单"); throw new BusinessException("订单状态不允许接单");
} }
@Override
public void markShopOrderShippedAfterRiderAssigned(Integer ticketOrderId, Integer tenantId) {
updateShopOrderDeliveryStatusAfterAccept(ticketOrderId, tenantId, LocalDateTime.now());
}
private void updateShopOrderDeliveryStatusAfterAccept(Integer ticketOrderId, Integer tenantId, LocalDateTime now) { private void updateShopOrderDeliveryStatusAfterAccept(Integer ticketOrderId, Integer tenantId, LocalDateTime now) {
if (ticketOrderId == null || tenantId == null) { if (ticketOrderId == null || tenantId == null) {
return; return;