- 将加小费从每5分钟加1元改为每10分钟加1元

- 添加isAddWaybillTipDisabled,避免在平台快递接单后(但没有发送订单配送中消息)无谓的尝试加小费
This commit is contained in:
gazebo
2019-07-31 14:17:37 +08:00
parent 2487598e87
commit 289ca5a6ec

View File

@@ -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() {