diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index a26400596..cbbf40b32 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -810,34 +810,36 @@ func (s *DefScheduler) mergeOrderStatusConfig(order *model.GoodsOrder, statusTyp retVal = &StatusActionConfig{} *retVal = *defConfig - var vendorActionParams *partner.StatusActionParams - if order.BusinessType != model.BusinessTypeImmediate { - if jxutils.IsTimeEmpty(order.ExpectedDeliveredTime) { - globals.SugarLogger.Warnf("mergeOrderStatusConfig orderID:%s 非立即达订单没有预计送达时间, orderDetail:%s", order.VendorOrderID, utils.Format4Output(order, false)) - } else if statusType == scheduler.TimerStatusTypeOrder && status == model.OrderStatusFinishedPickup { // 这个只针对自配送门店才有效 - vendorActionParams = &partner.StatusActionParams{ - TimerType: partner.TimerTypeBaseNow, - Timeout: order.ExpectedDeliveredTime.Sub(time.Now()) - dingShiDaAheadTime, - TimeoutGap: -1, - } - } else if statusType == scheduler.TimerStatusTypeWaybill && status == model.WaybillStatusNew { // 因为有些平台(比如美团外卖)的定时达单,很早就创建运单了 - vendorActionParams = &partner.StatusActionParams{ - TimerType: partner.TimerTypeBaseNow, - Timeout: order.ExpectedDeliveredTime.Sub(time.Now()) - dingShiDaAheadTime, - TimeoutGap: -1, + if model.IsOrderSolid(order) { + var vendorActionParams *partner.StatusActionParams + if order.BusinessType != model.BusinessTypeImmediate { + if jxutils.IsTimeEmpty(order.ExpectedDeliveredTime) { + globals.SugarLogger.Warnf("mergeOrderStatusConfig orderID:%s 非立即达订单没有预计送达时间, orderDetail:%s", order.VendorOrderID, utils.Format4Output(order, false)) + } else if statusType == scheduler.TimerStatusTypeOrder && status == model.OrderStatusFinishedPickup { // 这个只针对自配送门店才有效 + vendorActionParams = &partner.StatusActionParams{ + TimerType: partner.TimerTypeBaseNow, + Timeout: order.ExpectedDeliveredTime.Sub(time.Now()) - dingShiDaAheadTime, + TimeoutGap: -1, + } + } else if statusType == scheduler.TimerStatusTypeWaybill && status == model.WaybillStatusNew { // 因为有些平台(比如美团外卖)的定时达单,很早就创建运单了 + vendorActionParams = &partner.StatusActionParams{ + TimerType: partner.TimerTypeBaseNow, + Timeout: order.ExpectedDeliveredTime.Sub(time.Now()) - dingShiDaAheadTime, + TimeoutGap: -1, + } } } - } - if vendorActionParams == nil { - vendorActionParams = partner.GetPurchasePlatformFromVendorID(purchaseVendorID).GetStatusActionTimeout(order, statusType, status) - } - if vendorActionParams != nil { - retVal.Timeout = vendorActionParams.Timeout - if vendorActionParams.TimeoutGap >= 0 { - retVal.TimeoutGap = vendorActionParams.TimeoutGap + if vendorActionParams == nil { + vendorActionParams = partner.GetPurchasePlatformFromVendorID(purchaseVendorID).GetStatusActionTimeout(order, statusType, status) } - if vendorActionParams.TimerType != partner.TimerTypeNoOverride { - retVal.TimerType = vendorActionParams.TimerType + if vendorActionParams != nil { + retVal.Timeout = vendorActionParams.Timeout + if vendorActionParams.TimeoutGap >= 0 { + retVal.TimeoutGap = vendorActionParams.TimeoutGap + } + if vendorActionParams.TimerType != partner.TimerTypeNoOverride { + retVal.TimerType = vendorActionParams.TimerType + } } } return retVal