- 临时处理达达平台消息错序情况

This commit is contained in:
gazebo
2019-03-05 14:20:06 +08:00
parent cba9265eab
commit 791c73612a

View File

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