- 饿百平台运单取消后,以快递费最高10元直接发三方运单
This commit is contained in:
@@ -46,9 +46,11 @@ const (
|
||||
time2Schedule3rdCarrierKey = "waitminute4mt"
|
||||
dingShiDaAheadTime = 30 * time.Minute // 定时达订单开始召唤配送的提前时间
|
||||
|
||||
minAddWaybillTipMinute = 20 // 最少开始加小费分钟(距离拣货完成)
|
||||
addWaybillTipGap = 15 // 加一元小费间隔的分钟数
|
||||
baseWaybillFee = 600 // 基本运费
|
||||
minAddWaybillTipMinute = 20 // 最少开始加小费分钟(距离拣货完成)
|
||||
addWaybillTipGap = 15 // 加一元小费间隔的分钟数
|
||||
maxWaybillTipMoney = 400 // 最大小费
|
||||
baseWaybillFee = 600 // 基本运费
|
||||
ebaiCancelWaybillMaxFee = 1000 // 饿百取消运单最高运费
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -222,7 +224,7 @@ func init() {
|
||||
},
|
||||
TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) {
|
||||
if savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore { // 自配送商家使用
|
||||
return sch.createWaybillOn3rdProviders(savedOrderInfo, nil)
|
||||
return sch.createWaybillOn3rdProviders(savedOrderInfo, 0, nil)
|
||||
}
|
||||
return nil
|
||||
},
|
||||
@@ -244,7 +246,7 @@ func init() {
|
||||
savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore &&
|
||||
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
||||
savedOrderInfo.order.VendorID != model.VendorIDEBAI { // 非自配送商家使用
|
||||
return sch.createWaybillOn3rdProviders(savedOrderInfo, nil)
|
||||
return sch.createWaybillOn3rdProviders(savedOrderInfo, 0, nil)
|
||||
}
|
||||
return nil
|
||||
},
|
||||
@@ -268,7 +270,7 @@ func init() {
|
||||
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
||||
savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore &&
|
||||
order.VendorID == model.VendorIDEBAI { // 非自配送商家使用
|
||||
return sch.createWaybillOn3rdProviders(savedOrderInfo, nil)
|
||||
return sch.createWaybillOn3rdProviders(savedOrderInfo, ebaiCancelWaybillMaxFee, nil)
|
||||
}
|
||||
return nil
|
||||
},
|
||||
@@ -535,7 +537,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
||||
// OrderStatusFinishedPickup状态的订单依赖于TIMER重新建运单
|
||||
if bill.DeliveryFlag&model.WaybillDeliveryFlagMaskActiveCancel == 0 {
|
||||
if (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusEndBegin) && (bill.WaybillVendorID != order.VendorID /* || bill.WaybillVendorID == model.VendorIDEBAI*/) {
|
||||
s.createWaybillOn3rdProviders(savedOrderInfo, nil)
|
||||
s.createWaybillOn3rdProviders(savedOrderInfo, 0, nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -583,7 +585,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
||||
// s.resetTimer(savedOrderInfo, bill, isPending)
|
||||
// s.removeWaybillFromMap(savedOrderInfo, bill.WaybillVendorID)
|
||||
// if order.WaybillVendorID == model.VendorIDUnknown {
|
||||
// s.createWaybillOn3rdProviders(savedOrderInfo, nil)
|
||||
// s.createWaybillOn3rdProviders(savedOrderInfo, 0, nil)
|
||||
// }
|
||||
default:
|
||||
s.resetTimer(savedOrderInfo, bill, isPending)
|
||||
@@ -614,17 +616,20 @@ func (s *DefScheduler) removeWaybillFromMap(savedOrderInfo *WatchOrderInfo, wayb
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInfo, excludeBill *model.Waybill) (err error) {
|
||||
func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInfo, maxDeliveryFee int64, excludeBill *model.Waybill) (err error) {
|
||||
order := savedOrderInfo.order
|
||||
globals.SugarLogger.Debugf("createWaybillOn3rdProviders, orderID:%s, status:%d, excludeBill:%v", order.VendorOrderID, order.Status, excludeBill)
|
||||
globals.SugarLogger.Debugf("createWaybillOn3rdProviders, orderID:%s, status:%d, maxDeliveryFee:%d, excludeBill:%v", order.VendorOrderID, order.Status, maxDeliveryFee, excludeBill)
|
||||
if order.VendorID == model.VendorIDELM {
|
||||
return nil
|
||||
}
|
||||
if maxDeliveryFee == 0 {
|
||||
maxDeliveryFee = s.getMaxDeliveryFee(savedOrderInfo)
|
||||
}
|
||||
if err = s.canOrderCreateWaybillNormally(order); err == nil {
|
||||
if (order.DeliveryFlag & model.OrderDeliveryFlagMaskScheduleDisabled) == 0 {
|
||||
if savedOrderInfo.retryCount <= maxWaybillRetryCount {
|
||||
savedOrderInfo.isNeedCreate3rdWaybill = true
|
||||
if _, err = s.CreateWaybillOnProviders4SavedOrder(jxcontext.AdminCtx, savedOrderInfo, nil, savedOrderInfo.GetWaybillVendorIDs(), false, 1000, 1000, s.getMaxDeliveryFee(savedOrderInfo)); err == nil {
|
||||
if _, err = s.CreateWaybillOnProviders4SavedOrder(jxcontext.AdminCtx, savedOrderInfo, nil, savedOrderInfo.GetWaybillVendorIDs(), false, 1000, 1000, maxDeliveryFee); err == nil {
|
||||
savedOrderInfo.retryCount++
|
||||
}
|
||||
} else {
|
||||
@@ -1009,8 +1014,8 @@ func (s *DefScheduler) getWaybillTip(savedOrderInfo *WatchOrderInfo) (tipFee int
|
||||
if timeGap1 > 0 {
|
||||
timeGap := int64(timeGap1/(addWaybillTipGap*time.Minute)) + 1
|
||||
tipFee = timeGap * 100
|
||||
if tipFee > 600 {
|
||||
tipFee = 600
|
||||
if tipFee > maxWaybillTipMoney {
|
||||
tipFee = maxWaybillTipMoney
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1059,7 +1064,7 @@ func (s *DefScheduler) handleWaybillTip(savedOrderInfo *WatchOrderInfo) {
|
||||
partner.CurOrderManager.OnOrderMsg(order, vendorStatus, remark)
|
||||
}
|
||||
if savedOrderInfo.isNeedCreate3rdWaybill {
|
||||
s.createWaybillOn3rdProviders(savedOrderInfo, nil)
|
||||
s.createWaybillOn3rdProviders(savedOrderInfo, 0, nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user