- bug fix.

This commit is contained in:
gazebo
2018-07-26 18:02:20 +08:00
parent d9ae588979
commit 78e8c79e8a

View File

@@ -202,12 +202,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
bill.WaybillVendorID = model.VendorIDUnknown bill.WaybillVendorID = model.VendorIDUnknown
s.updateOrderByBill(order, bill, true) s.updateOrderByBill(order, bill, true)
savedOrderInfo.retryCount++ s.createWaybillOn3rdProviders(order, nil)
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.resetTimer(savedOrderInfo, scheduler.TimerStatusTypeWaybill, bill.Status, false) s.resetTimer(savedOrderInfo, scheduler.TimerStatusTypeWaybill, bill.Status, false)
} }
case model.WaybillStatusDelivering: 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) { 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) globals.SugarLogger.Debugf("createWaybillOn3rdProviders, orderID:%s, status:%d, excludeBill:%v", order.VendorOrderID, order.Status, excludeBill)
if order.Status == model.OrderStatusFinishedPickup { savedOrderInfo := s.loadSavedOrderFromMap(model.Order2Status(order), true)
if s.isOrderSupport3rdDelivery(order) { savedOrderInfo.retryCount++
successCount := 0 if savedOrderInfo.retryCount <= maxWaybillRetryCount {
for vendorID := range s.DeliveryPlatformHandlers { if order.Status == model.OrderStatusFinishedPickup {
if (excludeBill == nil || vendorID != excludeBill.WaybillVendorID) && s.DeliveryPlatformHandlers[vendorID].Use4CreateWaybill { if s.isOrderSupport3rdDelivery(order) {
if err = s.CreateWaybill(vendorID, order); err == nil { successCount := 0
successCount++ 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 { globals.SugarLogger.Debugf("createWaybillOn3rdProviders, orderID:%s, store:%d dont't support 3rd delivery platform", order.VendorOrderID, jxutils.GetJxStoreIDFromOrder(order))
return nil } else {
} globals.SugarLogger.Warnf("createWaybillOn3rdProviders, orderID:%s, status:%d doesn't match model.OrderStatusFinishedPickup, bypass", order.VendorOrderID, order.Status)
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 { } 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 return nil
} }