From 2a438e8eb63dce8618c9656b299fdbf83c2419ce Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 24 Jul 2018 17:45:11 +0800 Subject: [PATCH] - temp fix --- business/scheduler/defsch/defsch.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/business/scheduler/defsch/defsch.go b/business/scheduler/defsch/defsch.go index 3a836ce79..5db755921 100644 --- a/business/scheduler/defsch/defsch.go +++ b/business/scheduler/defsch/defsch.go @@ -28,6 +28,7 @@ type WatchOrderInfo struct { waybills []*model.Waybill // 这个waybills里的状态信息是不真实的,只使用id相关的信息 timerStatus int timer *time.Timer + retryCount int } // 重要:此调度器要求同一定单的处理逻辑必须是序列化了的,不然会有并发问题 @@ -176,9 +177,11 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill) (err error) { bill.WaybillVendorID = model.VendorIDUnknown s.CurOrderManager.UpdateWaybillVendorID(bill) savedOrderInfo.order.WaybillVendorID = model.VendorIDUnknown - + savedOrderInfo.retryCount++ savedOrderInfo.order.Status = model.OrderStatusFinishedPickup // 如果运单被取消,且是主运单,将订单状态强制回滚到model.OrderStatusFinishedPickup - s.createWaybillOn3rdProviders(savedOrderInfo.order, nil) + if savedOrderInfo.retryCount < 2 { + s.createWaybillOn3rdProviders(savedOrderInfo.order, nil) + } } case model.WaybillStatusDelivering: if savedOrderInfo.order.WaybillVendorID == bill.WaybillVendorID && savedOrderInfo.order.VendorID != bill.WaybillVendorID {