isStatusNewer中,美团订单在接单后就会收到新运单事件,因当前只支持一个TIMER,暂时舍弃三方配送调度,而要自动拣货调度

This commit is contained in:
gazebo
2019-11-12 18:27:38 +08:00
parent 3f82dfb7da
commit 2f117ec0d3

View File

@@ -760,7 +760,7 @@ func (s *DefScheduler) resetTimer(savedOrderInfo *WatchOrderInfo, bill *model.Wa
statusTime = bill.StatusTime statusTime = bill.StatusTime
} }
globals.SugarLogger.Debugf("resetTimer, orderID:%s statusType:%d status:%d", order.VendorOrderID, statusType, status) globals.SugarLogger.Debugf("resetTimer, orderID:%s statusType:%d status:%d", order.VendorOrderID, statusType, status)
if isStatusNewer(savedOrderInfo.timerStatusType, savedOrderInfo.timerStatus, statusType, status) { // 新设置的TIMER不能覆盖状态在其后的TIMER如果状态回绕需要注意 if isStatusNewer(order.VendorID, savedOrderInfo.timerStatusType, savedOrderInfo.timerStatus, statusType, status) { // 新设置的TIMER不能覆盖状态在其后的TIMER如果状态回绕需要注意
config := s.mergeOrderStatusConfig(savedOrderInfo, statusTime, statusType, status) config := s.mergeOrderStatusConfig(savedOrderInfo, statusTime, statusType, status)
if config == nil || config.TimerType != partner.TimerTypeByPass { if config == nil || config.TimerType != partner.TimerTypeByPass {
s.stopTimer(savedOrderInfo) s.stopTimer(savedOrderInfo)
@@ -810,10 +810,13 @@ func (s *DefScheduler) resetTimer(savedOrderInfo *WatchOrderInfo, bill *model.Wa
} }
} }
func isStatusNewer(curStatusType, curStatus, statusType, status int) bool { func isStatusNewer(vendorID int, curStatusType, curStatus, statusType, status int) bool {
// 拣货完成及之前的订单事件TIMER不能覆盖运单TIMER一般是消息错序引起的 // 拣货完成及之前的订单事件TIMER不能覆盖运单TIMER一般是消息错序引起的
if curStatusType == scheduler.TimerStatusTypeWaybill && statusType == scheduler.TimerStatusTypeOrder && status <= model.OrderStatusFinishedPickup { // 美团订单在接单后就会收到新运单事件因当前只支持一个TIMER暂时舍弃三方配送调度而要自动拣货调度
return false if vendorID != model.VendorIDMTWM {
if curStatusType == scheduler.TimerStatusTypeWaybill && statusType == scheduler.TimerStatusTypeOrder && status <= model.OrderStatusFinishedPickup {
return false
}
} }
if curStatusType == scheduler.TimerStatusTypeWaybill { if curStatusType == scheduler.TimerStatusTypeWaybill {
return curStatus != status return curStatus != status