- 订单取消时,取消所有运单

This commit is contained in:
gazebo
2019-02-21 11:23:09 +08:00
parent 5f501fca11
commit 3ea347f25e

View File

@@ -259,10 +259,13 @@ func (s *DefScheduler) OnOrderStatusChanged(status *model.OrderStatus, isPending
// 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 {
globals.SugarLogger.Infof("OnOrderStatusChanged [运营2]订单orderID:%s可能被手动点击送达会对程序状态产生不利影响请通知门店不要这样操作", status.VendorOrderID)
var curWaybill *model.Waybill
if !(status.Status == model.OrderStatusCanceled) { // 订单取消时,取消所有运单
curWaybill = savedOrderInfo.waybills[savedOrderInfo.order.WaybillVendorID]
if status.Status == model.OrderStatusDelivered || status.Status == model.OrderStatusFinished {
if curWaybill != nil && curWaybill.WaybillVendorID != curWaybill.OrderVendorID {
globals.SugarLogger.Infof("OnOrderStatusChanged [运营2]订单orderID:%s可能被手动点击送达会对程序状态产生不利影响请通知门店不要这样操作", status.VendorOrderID)
}
}
}
s.cancelOtherWaybills(savedOrderInfo, curWaybill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrOrderAlreadyFinished)
@@ -546,8 +549,12 @@ func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill2
}
}
}
for _, v := range toBeDeleted {
s.removeWaybillFromMap(savedOrderInfo, v.WaybillVendorID)
if len(toBeDeleted) > 0 {
for _, v := range toBeDeleted {
s.removeWaybillFromMap(savedOrderInfo, v.WaybillVendorID)
}
} else {
globals.SugarLogger.Debugf("cancelOtherWaybills, orderID:%s, bill:%v cancel 0 bills", savedOrderInfo.order.VendorOrderID, bill2Keep)
}
} else {
globals.SugarLogger.Debugf("cancelOtherWaybills, orderID:%s, bill:%v stop schedule", savedOrderInfo.order.VendorOrderID, bill2Keep)