+CanSwitch2SelfDeliver,美团预定单是不能转自送的
减小转自送失败尝试时间间隙至3秒(以免出现不能取消三方运单的情况)
This commit is contained in:
@@ -35,6 +35,9 @@ const (
|
||||
second2AutoPickupGap = 60 //随机60秒
|
||||
time2AutoPickupAhead = 20 * time.Second // 有最后拣货时间的提前值
|
||||
|
||||
switch2SelfDeliverRetryGap = 3 * time.Second // 转自送失败尝试的时间间隙
|
||||
switch2SelfDeliverRetryCount = 2 // 转自送失败尝试次数
|
||||
|
||||
// (把pending order timerout 在-pendingOrderTimerMinMinSecond至pendingOrderTimerMaxSecond映射到pendingOrderTimerMinSecond至pendingOrderTimerMaxSecond)
|
||||
pendingOrderTimerMinMinSecond = 5 * 60 // 5分钟
|
||||
pendingOrderTimerMinSecond = 2
|
||||
@@ -296,11 +299,13 @@ func init() {
|
||||
ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool {
|
||||
// 饿百转自送的时机不太清楚,暂时禁用超时转自送,在饿百运单取消时还是会自动创建
|
||||
// 非自配送商家使用
|
||||
order := savedOrderInfo.order
|
||||
return savedOrderInfo.isDeliveryCompetition &&
|
||||
model.IsOrderDeliveryByPlatform(savedOrderInfo.order) &&
|
||||
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
||||
savedOrderInfo.order.VendorID != model.VendorIDEBAI &&
|
||||
savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake
|
||||
model.IsOrderDeliveryByPlatform(order) &&
|
||||
order.VendorID == bill.WaybillVendorID &&
|
||||
order.VendorID != model.VendorIDEBAI &&
|
||||
order.DeliveryType != model.OrderDeliveryTypeSelfTake &&
|
||||
isOrderCanSwitch2SelfDeliver(order)
|
||||
},
|
||||
},
|
||||
//*
|
||||
@@ -317,10 +322,11 @@ func init() {
|
||||
// 非自配送商家使用
|
||||
return (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusEndBegin) &&
|
||||
savedOrderInfo.isDeliveryCompetition &&
|
||||
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
||||
model.IsOrderDeliveryByPlatform(savedOrderInfo.order) &&
|
||||
order.VendorID == bill.WaybillVendorID &&
|
||||
model.IsOrderDeliveryByPlatform(order) &&
|
||||
order.VendorID == model.VendorIDEBAI &&
|
||||
savedOrderInfo.order.DeliveryType != model.OrderDeliveryTypeSelfTake
|
||||
order.DeliveryType != model.OrderDeliveryTypeSelfTake &&
|
||||
isOrderCanSwitch2SelfDeliver(order)
|
||||
},
|
||||
},
|
||||
//*/
|
||||
@@ -511,7 +517,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
||||
}
|
||||
s.notify3rdPartyWaybill(order, bill, isBillAlreadyCandidate)
|
||||
} else {
|
||||
s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, 2, 10*time.Second)
|
||||
s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, switch2SelfDeliverRetryCount, switch2SelfDeliverRetryGap)
|
||||
}
|
||||
}
|
||||
} else if !s.isBillCandidate(order, bill) && bill.WaybillVendorID != order.VendorID {
|
||||
@@ -1276,3 +1282,11 @@ func (s *DefScheduler) notify3rdPartyWaybill(order *model.GoodsOrder, bill *mode
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func isOrderCanSwitch2SelfDeliver(order *model.GoodsOrder) (isCan bool) {
|
||||
isCan = true
|
||||
if handler := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID); handler != nil {
|
||||
isCan, _ = handler.CanSwitch2SelfDeliver(order)
|
||||
}
|
||||
return isCan
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user