From 757db559286bb71b63b3beabc578a7e840618ebd Mon Sep 17 00:00:00 2001 From: gazebo Date: Sun, 25 Nov 2018 18:37:27 +0800 Subject: [PATCH] - fix bug after 3rd waybill created then the boss switched to self delivery. --- business/jxcallback/scheduler/defsch/defsch.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 6dd26388b..72dec919c 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -274,7 +274,11 @@ func (s *DefScheduler) OnOrderStatusChanged(status *model.OrderStatus, isPending s.updateOrderByStatus(savedOrderInfo.order, status) if status.LockStatus == model.OrderStatusUnknown && status.Status > model.OrderStatusUnknown { // 只处理状态转换,一般消息不处理 s.resetTimer(savedOrderInfo, nil, isPending) - if status.Status >= model.OrderStatusEndBegin { + if status.Status >= model.OrderStatusDelivering { + // 会出现创建运单后,门店自己转自送了(例如:828400083000222),当前逻辑会导致此运单不会被取消,有三个可能的修改方法,考虑1: + // 1,在订单相应事件中取消不是candidate的运单 + // 2,在接收到运单接单时根据状态判断马上取消些运单 + // 3,在转自送失败(或状态已经是自送时)取消运单 curWaybill := savedOrderInfo.waybills[savedOrderInfo.order.WaybillVendorID] if status.Status == model.OrderStatusDelivered || status.Status == model.OrderStatusFinished { if curWaybill != nil && curWaybill.WaybillVendorID != curWaybill.OrderVendorID { @@ -282,7 +286,9 @@ func (s *DefScheduler) OnOrderStatusChanged(status *model.OrderStatus, isPending } } s.cancelOtherWaybills(savedOrderInfo, curWaybill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrOrderAlreadyFinished) - s.orderMap.Delete(jxutils.GetUniversalOrderIDFromOrderStatus(status)) + if status.Status >= model.OrderStatusEndBegin { + s.orderMap.Delete(jxutils.GetUniversalOrderIDFromOrderStatus(status)) + } } } else if status.LockStatus != model.OrderStatusUnknown { s.stopTimer(savedOrderInfo)