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