From 8518248080cba8664a93ea500e8c272d0d336db6 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 2 Aug 2019 15:35:07 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E9=A5=BF=E7=99=BE=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E8=BF=90=E5=8D=95=E5=8F=96=E6=B6=88=E5=90=8E=EF=BC=8C=E4=BB=A5?= =?UTF-8?q?=E5=BF=AB=E9=80=92=E8=B4=B9=E6=9C=80=E9=AB=9810=E5=85=83?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E5=8F=91=E4=B8=89=E6=96=B9=E8=BF=90=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jxcallback/scheduler/defsch/defsch.go | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 6cd79d984..085127f6f 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -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) } } }