- fix bug after 3rd waybill created then the boss switched to self delivery.
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user