锁定单不自动接单

This commit is contained in:
gazebo
2019-10-20 10:45:50 +08:00
parent b7ab92357b
commit 516a8d12c6

View File

@@ -163,39 +163,43 @@ func init() {
Timeout: 10 * time.Millisecond, Timeout: 10 * time.Millisecond,
}, },
TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) { TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) {
order := savedOrderInfo.order if savedOrderInfo.order.LockStatus == model.LockStatusUnlocked && savedOrderInfo.order.Status == model.OrderStatusNew {
mobile := order.ConsigneeMobile order := savedOrderInfo.order
if order.ConsigneeMobile2 != "" { mobile := order.ConsigneeMobile
mobile = order.ConsigneeMobile2 if order.ConsigneeMobile2 != "" {
} mobile = order.ConsigneeMobile2
_ = sch.handleAutoAcceptOrder(order.VendorOrderID, order.VendorID, mobile, jxutils.GetSaleStoreIDFromOrder(order), nil, func(isAcceptIt bool) error { }
if err = sch.AcceptOrRefuseOrder(order, isAcceptIt, ""); err != nil && err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation { _ = sch.handleAutoAcceptOrder(order.VendorOrderID, order.VendorID, mobile, jxutils.GetSaleStoreIDFromOrder(order), nil, func(isAcceptIt bool) error {
partner.CurOrderManager.OnOrderMsg(order, "自动接单失败", err.Error()) if err = sch.AcceptOrRefuseOrder(order, isAcceptIt, ""); err != nil && err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation {
// 为了解决京东新消息与接单消息乱序的问题 partner.CurOrderManager.OnOrderMsg(order, "自动接单失败", err.Error())
if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 && errWithCode.IntCode() == -1 { // 为了解决京东新消息与接单消息乱序的问题
if order2, err2 := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrder(order.VendorOrderID); err2 == nil && order2.Status > order.Status { if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 && errWithCode.IntCode() == -1 {
order.Status = order2.Status if order2, err2 := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrder(order.VendorOrderID); err2 == nil && order2.Status > order.Status {
jxutils.CallMsgHandlerAsync(func() { order.Status = order2.Status
sch.OnOrderStatusChanged(order, model.Order2Status(order2), false) jxutils.CallMsgHandlerAsync(func() {
}, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID)) sch.OnOrderStatusChanged(order, model.Order2Status(order2), false)
err = nil }, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID))
} else { err = nil
err = err2 } else {
err = err2
}
} }
} }
} if isAcceptIt {
if isAcceptIt { if err == nil {
sch.notifyNewOrder(order) sch.notifyNewOrder(order)
msghub.OnNewOrder(order) msghub.OnNewOrder(order)
} else { }
partner.CurOrderManager.OnOrderMsg(order, "黑名单拒单", "") } else {
} partner.CurOrderManager.OnOrderMsg(order, "黑名单拒单", "")
return err }
}) return err
})
}
return nil return nil
}, },
ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool { ShouldSetTimer: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) bool {
return savedOrderInfo.order.Status == model.OrderStatusNew return savedOrderInfo.order.LockStatus == model.LockStatusUnlocked && savedOrderInfo.order.Status == model.OrderStatusNew
}, },
}, },
model.OrderStatusAccepted: &StatusActionConfig{ // 自动拣货 model.OrderStatusAccepted: &StatusActionConfig{ // 自动拣货