- 临时处理达达平台消息错序情况
This commit is contained in:
@@ -324,11 +324,14 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
||||
s.resetTimer(savedOrderInfo, bill, isPending)
|
||||
}
|
||||
} else {
|
||||
s.updateBillsInfo(savedOrderInfo, bill)
|
||||
isBillExist := s.updateBillsInfo(savedOrderInfo, bill)
|
||||
if !isBillExist {
|
||||
globals.SugarLogger.Warnf("OnWaybillStatusChanged bill not exist! orderID:%s, bill:%v", bill.VendorOrderID, bill)
|
||||
}
|
||||
switch bill.Status {
|
||||
case model.WaybillStatusAccepted:
|
||||
s.resetTimer(savedOrderInfo, bill, isPending)
|
||||
if !isPending {
|
||||
if (isBillExist || bill.WaybillVendorID != model.VendorIDDada) && !isPending { // todo 达达运单有错序的情况,临时看看
|
||||
isBillAlreadyCandidate := s.isBillCandidate(order, bill)
|
||||
// todo 购买平台的运单,优先级最高,但这样写也可能带来问题,即在这个时间,因为之前3方已经接单,已经发出了转自送请求(而且可能成功了),所以加个状态判断
|
||||
if order.WaybillVendorID == model.VendorIDUnknown ||
|
||||
@@ -802,9 +805,10 @@ func (s *DefScheduler) updateOrderByBill(order *model.GoodsOrder, bill *model.Wa
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DefScheduler) updateBillsInfo(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) {
|
||||
func (s *DefScheduler) updateBillsInfo(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (isBillExist bool) {
|
||||
if savedOrderInfo != nil {
|
||||
if savedBill := savedOrderInfo.waybills[bill.WaybillVendorID]; savedBill != nil {
|
||||
isBillExist = true
|
||||
if savedBill.Status > bill.Status {
|
||||
bill.Status = savedBill.Status
|
||||
} else if bill.Status > savedBill.Status {
|
||||
@@ -812,6 +816,7 @@ func (s *DefScheduler) updateBillsInfo(savedOrderInfo *WatchOrderInfo, bill *mod
|
||||
}
|
||||
}
|
||||
}
|
||||
return isBillExist
|
||||
}
|
||||
|
||||
func (s *DefScheduler) autoPickupGood(order *model.GoodsOrder) (err error) {
|
||||
|
||||
Reference in New Issue
Block a user