- 处理自配送门店非立即达订单的发运单时间问题
This commit is contained in:
@@ -38,6 +38,7 @@ const (
|
||||
orderMapStoreMaxTime = 4 * 24 * time.Hour // cache最长存储时间
|
||||
|
||||
time2Schedule3rdCarrierKey = "waitminute4mt"
|
||||
dingShiDaAheadTime = 30 * time.Minute // 定时达订单开始召唤配送的提前时间
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -694,7 +695,7 @@ func (s *DefScheduler) resetTimer(savedOrderInfo *WatchOrderInfo, bill *model.Wa
|
||||
}
|
||||
globals.SugarLogger.Debugf("resetTimer, orderID:%s statusType:%d status:%v", order.VendorOrderID, statusType, status)
|
||||
if statusType != savedOrderInfo.timerStatusType || status >= savedOrderInfo.timerStatus { // 新设置的TIMER不能覆盖状态在其后的TIMER,如果状态回绕,需要注意
|
||||
config := s.mergeOrderStatusConfig(statusType, status, order.VendorID)
|
||||
config := s.mergeOrderStatusConfig(savedOrderInfo.order, statusType, status, order.VendorID)
|
||||
if config == nil || config.TimerType != scheduler.TimerTypeByPass {
|
||||
s.stopTimer(savedOrderInfo)
|
||||
}
|
||||
@@ -791,7 +792,7 @@ func (s *DefScheduler) handleAutoAcceptOrder(orderID string, vendorID int, userM
|
||||
return handleType
|
||||
}
|
||||
|
||||
func (s *DefScheduler) mergeOrderStatusConfig(statusType, status int, purchaseVendorID int) (retVal *StatusActionConfig) {
|
||||
func (s *DefScheduler) mergeOrderStatusConfig(order *model.GoodsOrder, statusType, status int, purchaseVendorID int) (retVal *StatusActionConfig) {
|
||||
s.locker.RLock()
|
||||
defer func() {
|
||||
s.locker.RUnlock()
|
||||
@@ -802,7 +803,14 @@ func (s *DefScheduler) mergeOrderStatusConfig(statusType, status int, purchaseVe
|
||||
}
|
||||
retVal = &StatusActionConfig{}
|
||||
*retVal = *defConfig
|
||||
if vendorActionParams := partner.GetPurchasePlatformFromVendorID(purchaseVendorID).GetStatusActionTimeout(statusType, status); vendorActionParams != nil {
|
||||
|
||||
if statusType == scheduler.TimerStatusTypeOrder && status == model.OrderStatusFinishedPickup && order.BusinessType != model.BusinessTypeImmediate {
|
||||
if jxutils.IsTimeEmpty(order.ExpectedDeliveredTime) {
|
||||
globals.SugarLogger.Warnf("mergeOrderStatusConfig orderID:%s 非立即达订单没有预计送达时间", order.VendorOrderID)
|
||||
} else {
|
||||
retVal.Timeout = order.ExpectedDeliveredTime.Sub(time.Now()) - dingShiDaAheadTime
|
||||
}
|
||||
} else if vendorActionParams := partner.GetPurchasePlatformFromVendorID(purchaseVendorID).GetStatusActionTimeout(order, statusType, status); vendorActionParams != nil {
|
||||
retVal.Timeout = vendorActionParams.Timeout
|
||||
if vendorActionParams.TimeoutGap >= 0 {
|
||||
retVal.TimeoutGap = vendorActionParams.TimeoutGap
|
||||
|
||||
Reference in New Issue
Block a user