From 78e8c79e8a0b85f8e3b79f97b1f574b9d98b6505 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 26 Jul 2018 18:02:20 +0800 Subject: [PATCH] - bug fix. --- business/scheduler/defsch/defsch.go | 41 +++++++++++++++-------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/business/scheduler/defsch/defsch.go b/business/scheduler/defsch/defsch.go index 122e417ce..babbc0709 100644 --- a/business/scheduler/defsch/defsch.go +++ b/business/scheduler/defsch/defsch.go @@ -202,12 +202,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo bill.WaybillVendorID = model.VendorIDUnknown s.updateOrderByBill(order, bill, true) - savedOrderInfo.retryCount++ - if savedOrderInfo.retryCount <= maxWaybillRetryCount { - s.createWaybillOn3rdProviders(order, nil) - } else { - globals.SugarLogger.Warnf("OnWaybillStatusChanged Canceled bill:%v failed %d times, stop schedule", bill, savedOrderInfo.retryCount) - } + s.createWaybillOn3rdProviders(order, nil) s.resetTimer(savedOrderInfo, scheduler.TimerStatusTypeWaybill, bill.Status, false) } case model.WaybillStatusDelivering: @@ -258,25 +253,31 @@ func (s *DefScheduler) removeWaybillFromMap(savedOrderInfo *WatchOrderInfo, bill func (s *DefScheduler) createWaybillOn3rdProviders(order *model.GoodsOrder, excludeBill *model.Waybill) (err error) { globals.SugarLogger.Debugf("createWaybillOn3rdProviders, orderID:%s, status:%d, excludeBill:%v", order.VendorOrderID, order.Status, excludeBill) - if order.Status == model.OrderStatusFinishedPickup { - if s.isOrderSupport3rdDelivery(order) { - successCount := 0 - for vendorID := range s.DeliveryPlatformHandlers { - if (excludeBill == nil || vendorID != excludeBill.WaybillVendorID) && s.DeliveryPlatformHandlers[vendorID].Use4CreateWaybill { - if err = s.CreateWaybill(vendorID, order); err == nil { - successCount++ + savedOrderInfo := s.loadSavedOrderFromMap(model.Order2Status(order), true) + savedOrderInfo.retryCount++ + if savedOrderInfo.retryCount <= maxWaybillRetryCount { + if order.Status == model.OrderStatusFinishedPickup { + if s.isOrderSupport3rdDelivery(order) { + successCount := 0 + for vendorID := range s.DeliveryPlatformHandlers { + if (excludeBill == nil || vendorID != excludeBill.WaybillVendorID) && s.DeliveryPlatformHandlers[vendorID].Use4CreateWaybill { + if err = s.CreateWaybill(vendorID, order); err == nil { + successCount++ + } } } + if successCount != 0 { + return nil + } + globals.SugarLogger.Infof("createWaybillOn3rdProviders, orderID:%s all failed", order.VendorOrderID) + return scheduler.ErrCanNotCreateAtLeastOneWaybill } - if successCount != 0 { - return nil - } - globals.SugarLogger.Infof("createWaybillOn3rdProviders, orderID:%s all failed", order.VendorOrderID) - return scheduler.ErrCanNotCreateAtLeastOneWaybill + globals.SugarLogger.Debugf("createWaybillOn3rdProviders, orderID:%s, store:%d dont't support 3rd delivery platform", order.VendorOrderID, jxutils.GetJxStoreIDFromOrder(order)) + } else { + globals.SugarLogger.Warnf("createWaybillOn3rdProviders, orderID:%s, status:%d doesn't match model.OrderStatusFinishedPickup, bypass", order.VendorOrderID, order.Status) } - globals.SugarLogger.Debugf("createWaybillOn3rdProviders, orderID:%s, store:%d dont't support 3rd delivery platform", order.VendorOrderID, jxutils.GetJxStoreIDFromOrder(order)) } else { - globals.SugarLogger.Warnf("createWaybillOn3rdProviders, orderID:%s, status:%d doesn't match model.OrderStatusFinishedPickup, bypass", order.VendorOrderID, order.Status) + globals.SugarLogger.Warnf("OnWaybillStatusChanged Canceled failed %d times, stop schedule", savedOrderInfo.retryCount) } return nil }