- fix bug after 3rd waybill created then the boss switched to self delivery.

This commit is contained in:
gazebo
2018-11-25 18:37:27 +08:00
parent fc96161c3b
commit 757db55928

View File

@@ -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)