- 处理运单取消与接单消息错序的情况(OrderManager.OnWaybillStatusChanged中)

This commit is contained in:
gazebo
2019-05-25 15:17:58 +08:00
parent 15c9c4013e
commit 8892a4f928

View File

@@ -100,11 +100,13 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) {
} }
} else { } else {
if bill.Status == model.WaybillStatusAccepted { // 处理美团配送丢失新运单消息的情况 if bill.Status == model.WaybillStatusAccepted { // 处理美团配送丢失新运单消息的情况
if _, err2 := w.LoadWaybill(bill.VendorWaybillID, bill.WaybillVendorID); err2 != nil { existingBill, err2 := w.LoadWaybill(bill.VendorWaybillID, bill.WaybillVendorID)
if err2 != nil {
if dao.IsNoRowsError(err2) || err2 == ErrCanNotFindWaybill { if dao.IsNoRowsError(err2) || err2 == ErrCanNotFindWaybill {
if isDuplicated, err = w.onWaybillNew(bill, db); err != nil { if isDuplicated, err = w.onWaybillNew(bill, db); err != nil {
return err return err
} }
existingBill = bill
billCopy := *bill billCopy := *bill
billCopy.Status = model.WaybillStatusNew billCopy.Status = model.WaybillStatusNew
scheduler.CurrentScheduler.OnWaybillStatusChanged(&billCopy, false) scheduler.CurrentScheduler.OnWaybillStatusChanged(&billCopy, false)
@@ -112,6 +114,10 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) {
return err2 return err2
} }
} }
// 运单消息错序,之前已经结束了,直接返回
if existingBill.Status >= model.WaybillStatusEndBegin {
return nil
}
} }
addParams := orm.Params{} addParams := orm.Params{}
if bill.Status >= model.WaybillStatusAccepted && bill.Status < model.WaybillStatusEndBegin { if bill.Status >= model.WaybillStatusAccepted && bill.Status < model.WaybillStatusEndBegin {