- 三方配送检查平台门店的DeliveryCompetition配置
This commit is contained in:
@@ -62,6 +62,7 @@ type WatchOrderInfo struct {
|
|||||||
|
|
||||||
autoPickupTimeoutMinute int // 0表示禁用,1表示用缺省值time2AutoPickupMin,其它表示分钟数
|
autoPickupTimeoutMinute int // 0表示禁用,1表示用缺省值time2AutoPickupMin,其它表示分钟数
|
||||||
storeDeliveryType int
|
storeDeliveryType int
|
||||||
|
isDeliveryCompetition bool
|
||||||
waybills map[int]*model.Waybill // 这个waybills里的状态信息是不真实的,只使用id相关的信息
|
waybills map[int]*model.Waybill // 这个waybills里的状态信息是不真实的,只使用id相关的信息
|
||||||
|
|
||||||
timerStatusType int // 0表示订单,1表示运单
|
timerStatusType int // 0表示订单,1表示运单
|
||||||
@@ -126,6 +127,7 @@ func (s *WatchOrderInfo) updateOrderStoreFeature(order *model.GoodsOrder) (err e
|
|||||||
}
|
}
|
||||||
s.autoPickupTimeoutMinute = int(storeMap.AutoPickup)
|
s.autoPickupTimeoutMinute = int(storeMap.AutoPickup)
|
||||||
s.storeDeliveryType = FixedScheduler.GetStoreDeliveryType(order, storeMap)
|
s.storeDeliveryType = FixedScheduler.GetStoreDeliveryType(order, storeMap)
|
||||||
|
s.isDeliveryCompetition = storeMap.DeliveryCompetition != 0
|
||||||
globals.SugarLogger.Debugf("updateOrderStoreFeature orderID:%s, s.storeDeliveryType:%d", order.VendorOrderID, s.storeDeliveryType)
|
globals.SugarLogger.Debugf("updateOrderStoreFeature orderID:%s, s.storeDeliveryType:%d", order.VendorOrderID, s.storeDeliveryType)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
@@ -225,13 +227,17 @@ 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 && savedOrderInfo.order.VendorID != model.VendorIDEBAI { // 非自配送商家使用
|
if savedOrderInfo.isDeliveryCompetition &&
|
||||||
|
savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore &&
|
||||||
|
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
||||||
|
savedOrderInfo.order.VendorID != model.VendorIDEBAI { // 非自配送商家使用
|
||||||
return sch.createWaybillOn3rdProviders(savedOrderInfo, nil)
|
return sch.createWaybillOn3rdProviders(savedOrderInfo, nil)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool {
|
ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool {
|
||||||
return savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore &&
|
return savedOrderInfo.isDeliveryCompetition &&
|
||||||
|
savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore &&
|
||||||
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
savedOrderInfo.order.VendorID == bill.WaybillVendorID &&
|
||||||
savedOrderInfo.order.VendorID != model.VendorIDEBAI
|
savedOrderInfo.order.VendorID != model.VendorIDEBAI
|
||||||
},
|
},
|
||||||
@@ -245,6 +251,7 @@ func init() {
|
|||||||
TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) {
|
TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) {
|
||||||
order := savedOrderInfo.order
|
order := savedOrderInfo.order
|
||||||
if (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusEndBegin) &&
|
if (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusEndBegin) &&
|
||||||
|
savedOrderInfo.isDeliveryCompetition &&
|
||||||
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 { // 非自配送商家使用
|
||||||
@@ -255,6 +262,7 @@ func init() {
|
|||||||
ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool {
|
ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool {
|
||||||
order := savedOrderInfo.order
|
order := savedOrderInfo.order
|
||||||
return (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusEndBegin) &&
|
return (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusEndBegin) &&
|
||||||
|
savedOrderInfo.isDeliveryCompetition &&
|
||||||
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
|
||||||
@@ -991,9 +999,12 @@ func (s *DefScheduler) getMaxDeliveryFee(order *model.GoodsOrder) (maxDeliveryFe
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *DefScheduler) handleWaybillTip(savedOrderInfo *WatchOrderInfo) {
|
func (s *DefScheduler) handleWaybillTip(savedOrderInfo *WatchOrderInfo) {
|
||||||
|
if savedOrderInfo.storeDeliveryType != scheduler.StoreDeliveryTypeByStore &&
|
||||||
|
savedOrderInfo.isDeliveryCompetition {
|
||||||
order2 := savedOrderInfo.order
|
order2 := savedOrderInfo.order
|
||||||
if order, err := partner.CurOrderManager.LoadOrder(order2.VendorOrderID, order2.VendorID); err == nil {
|
if order, err := partner.CurOrderManager.LoadOrder(order2.VendorOrderID, order2.VendorID); err == nil {
|
||||||
if order.Status == model.OrderStatusFinishedPickup {
|
if order.Status == model.OrderStatusFinishedPickup &&
|
||||||
|
order.DeliveryFlag&model.OrderDeliveryFlagMaskScheduleDisabled == 0 {
|
||||||
if tipFee := s.getWaybillTip(order); tipFee > 0 {
|
if tipFee := s.getWaybillTip(order); tipFee > 0 {
|
||||||
if handler, ok := partner.GetPurchasePlatformFromVendorID(order.VendorID).(partner.IUpdateWaybillTip); ok && handler != nil {
|
if handler, ok := partner.GetPurchasePlatformFromVendorID(order.VendorID).(partner.IUpdateWaybillTip); ok && handler != nil {
|
||||||
err := handler.UpdateWaybillTip(jxcontext.AdminCtx, order, tipFee)
|
err := handler.UpdateWaybillTip(jxcontext.AdminCtx, order, tipFee)
|
||||||
@@ -1018,6 +1029,7 @@ func (s *DefScheduler) handleWaybillTip(savedOrderInfo *WatchOrderInfo) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *DefScheduler) isBillCandidate(order *model.GoodsOrder, bill *model.Waybill) bool {
|
func (s *DefScheduler) isBillCandidate(order *model.GoodsOrder, bill *model.Waybill) bool {
|
||||||
|
|||||||
Reference in New Issue
Block a user