- 饿百平台运单取消后,以快递费最高10元直接发三方运单

This commit is contained in:
gazebo
2019-08-02 15:35:07 +08:00
parent 7f40ee9963
commit 8518248080

View File

@@ -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)
}
}
}