- don't verify order status when waybill message comes(because events may out of order).

This commit is contained in:
gazebo
2018-07-26 10:49:52 +08:00
parent a5725533e6
commit 6e0d896d24

View File

@@ -134,13 +134,14 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
globals.SugarLogger.Debugf("OnWaybillStatusChanged orderID:%s %s, bill:%v", bill.VendorOrderID, model.WaybillStatusName[bill.Status], bill) globals.SugarLogger.Debugf("OnWaybillStatusChanged orderID:%s %s, bill:%v", bill.VendorOrderID, model.WaybillStatusName[bill.Status], bill)
savedOrderInfo := s.loadSavedOrderFromMap(model.Waybill2Status(bill), true) savedOrderInfo := s.loadSavedOrderFromMap(model.Waybill2Status(bill), true)
order := savedOrderInfo.order order := savedOrderInfo.order
if order.Status < model.OrderStatusFinishedPickup || order.Status > model.OrderStatusEndBegin { // 如果当前order状态是不应该出现运单状态 // todo 当前收到的事件顺序有时是乱的,不能严格限制,暂时放开
globals.SugarLogger.Infof("OnWaybillStatusChanged orderID:%s status:%s is not suitable for waybill", order.VendorOrderID, model.OrderStatusName[order.Status]) // if order.Status < model.OrderStatusFinishedPickup || order.Status > model.OrderStatusEndBegin { // 如果当前order状态是不应该出现运单状态
s.CancelWaybill(bill) // globals.SugarLogger.Infof("OnWaybillStatusChanged orderID:%s status:%s is not suitable for waybill", order.VendorOrderID, model.OrderStatusName[order.Status])
s.stopTimer(savedOrderInfo) // s.CancelWaybill(bill)
s.orderMap.Delete(jxutils.GetUniversalOrderIDFromOrderStatus(model.Order2Status(order))) // s.stopTimer(savedOrderInfo)
return nil // s.orderMap.Delete(jxutils.GetUniversalOrderIDFromOrderStatus(model.Order2Status(order)))
} // return nil
// }
if bill.Status == model.WaybillStatusNew { if bill.Status == model.WaybillStatusNew {
s.addWaybill2Map(savedOrderInfo, bill) s.addWaybill2Map(savedOrderInfo, bill)
if order.WaybillVendorID != model.VendorIDUnknown { if order.WaybillVendorID != model.VendorIDUnknown {
@@ -159,6 +160,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
s.cancelOtherWaybills(savedOrderInfo, bill) s.cancelOtherWaybills(savedOrderInfo, bill)
s.updateOrderByBill(order, bill, false) s.updateOrderByBill(order, bill, false)
} else { } else {
// todo 当前逻辑加载PENDING的ORDER时正常状态也可能进这里
s.CancelWaybill(bill) s.CancelWaybill(bill)
globals.SugarLogger.Warnf("OnWaybillStatusChanged Accepted orderID:%s got multiple bill:%v, order details:%v", order.VendorOrderID, bill, order) globals.SugarLogger.Warnf("OnWaybillStatusChanged Accepted orderID:%s got multiple bill:%v, order details:%v", order.VendorOrderID, bill, order)
} }