- 将加小费从每5分钟加1元改为每10分钟加1元
- 添加isAddWaybillTipDisabled,避免在平台快递接单后(但没有发送订单配送中消息)无谓的尝试加小费
This commit is contained in:
@@ -47,6 +47,7 @@ const (
|
||||
dingShiDaAheadTime = 30 * time.Minute // 定时达订单开始召唤配送的提前时间
|
||||
|
||||
minAddWaybillTipMinute = 15 // 最少开始加小费分钟(距离拣货完成)
|
||||
addWaybillTipGap = 10 // 加一元小费间隔的分钟数
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -63,6 +64,7 @@ type WatchOrderInfo struct {
|
||||
autoPickupTimeoutMinute int // 0表示禁用,1表示用缺省值time2AutoPickupMin,其它表示分钟数
|
||||
storeDeliveryType int
|
||||
isDeliveryCompetition bool
|
||||
isAddWaybillTipDisabled bool
|
||||
waybills map[int]*model.Waybill // 这个waybills里的状态信息是不真实的,只使用id相关的信息
|
||||
|
||||
timerStatusType int // 0表示订单,1表示运单
|
||||
@@ -451,6 +453,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
||||
s.cancelOtherWaybillsCheckOrderDeliveryFlag(savedOrderInfo, bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonStrNotAcceptIntime)
|
||||
|
||||
if model.IsWaybillPlatformOwn(bill) {
|
||||
savedOrderInfo.isAddWaybillTipDisabled = true
|
||||
if bill.Status == model.WaybillStatusDelivering {
|
||||
// 强制将订单状态置为配送中?
|
||||
order.Status = model.OrderStatusDelivering
|
||||
@@ -487,6 +490,9 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
||||
case model.WaybillStatusAcceptCanceled:
|
||||
if s.isBillCandidate(order, bill) {
|
||||
s.resetTimer(savedOrderInfo, bill, isPending)
|
||||
if model.IsWaybillPlatformOwn(bill) {
|
||||
savedOrderInfo.isAddWaybillTipDisabled = false
|
||||
}
|
||||
if !isPending {
|
||||
s.updateOrderByBill(order, nil, true)
|
||||
}
|
||||
@@ -992,7 +998,7 @@ func (s *DefScheduler) getWaybillTip(order *model.GoodsOrder) (tipFee int64) {
|
||||
}
|
||||
timeGap1 := time.Now().Sub(startTime)
|
||||
if timeGap1 > 0 {
|
||||
timeGap := int64(timeGap1/(5*time.Minute)) + 1
|
||||
timeGap := int64(timeGap1/(addWaybillTipGap*time.Minute)) + 1
|
||||
tipFee = timeGap * 100
|
||||
if tipFee > 600 {
|
||||
tipFee = 600
|
||||
@@ -1015,21 +1021,23 @@ func (s *DefScheduler) handleWaybillTip(savedOrderInfo *WatchOrderInfo) {
|
||||
if order, err := partner.CurOrderManager.LoadOrder(order2.VendorOrderID, order2.VendorID); err == nil {
|
||||
if order.Status == model.OrderStatusFinishedPickup &&
|
||||
order.DeliveryFlag&model.OrderDeliveryFlagMaskScheduleDisabled == 0 {
|
||||
if tipFee := s.getWaybillTip(order); tipFee > 0 {
|
||||
if handler, ok := partner.GetPurchasePlatformFromVendorID(order.VendorID).(partner.IUpdateWaybillTip); ok && handler != nil {
|
||||
err := handler.UpdateWaybillTip(jxcontext.AdminCtx, order, tipFee)
|
||||
vendorStatus := fmt.Sprintf("添加小费:%s", jxutils.IntPrice2StandardCurrencyString(tipFee))
|
||||
remark := ""
|
||||
if err == nil {
|
||||
vendorStatus += "成功"
|
||||
} else {
|
||||
vendorStatus += "失败"
|
||||
remark = fmt.Sprint(err)
|
||||
if !savedOrderInfo.isAddWaybillTipDisabled {
|
||||
if tipFee := s.getWaybillTip(order); tipFee > 0 {
|
||||
if handler, ok := partner.GetPurchasePlatformFromVendorID(order.VendorID).(partner.IUpdateWaybillTip); ok && handler != nil {
|
||||
err := handler.UpdateWaybillTip(jxcontext.AdminCtx, order, tipFee)
|
||||
vendorStatus := fmt.Sprintf("添加小费:%s", jxutils.IntPrice2StandardCurrencyString(tipFee))
|
||||
remark := ""
|
||||
if err == nil {
|
||||
vendorStatus += "成功"
|
||||
} else {
|
||||
vendorStatus += "失败"
|
||||
remark = fmt.Sprint(err)
|
||||
}
|
||||
partner.CurOrderManager.OnOrderMsg(order, vendorStatus, remark)
|
||||
}
|
||||
if savedOrderInfo.isNeedCreate3rdWaybill {
|
||||
s.createWaybillOn3rdProviders(savedOrderInfo, nil)
|
||||
}
|
||||
partner.CurOrderManager.OnOrderMsg(order, vendorStatus, remark)
|
||||
}
|
||||
if savedOrderInfo.isNeedCreate3rdWaybill {
|
||||
s.createWaybillOn3rdProviders(savedOrderInfo, nil)
|
||||
}
|
||||
}
|
||||
utils.AfterFuncWithRecover(5*time.Minute, func() {
|
||||
|
||||
Reference in New Issue
Block a user