From 8892a4f9285047a26d4f694cd5929baee996b5d8 Mon Sep 17 00:00:00 2001 From: gazebo Date: Sat, 25 May 2019 15:17:58 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=A4=84=E7=90=86=E8=BF=90=E5=8D=95?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E4=B8=8E=E6=8E=A5=E5=8D=95=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E9=94=99=E5=BA=8F=E7=9A=84=E6=83=85=E5=86=B5=EF=BC=88OrderMana?= =?UTF-8?q?ger.OnWaybillStatusChanged=E4=B8=AD=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/waybill.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/business/jxcallback/orderman/waybill.go b/business/jxcallback/orderman/waybill.go index 64bc2cc1a..310608826 100644 --- a/business/jxcallback/orderman/waybill.go +++ b/business/jxcallback/orderman/waybill.go @@ -100,11 +100,13 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) { } } else { 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 isDuplicated, err = w.onWaybillNew(bill, db); err != nil { return err } + existingBill = bill billCopy := *bill billCopy.Status = model.WaybillStatusNew scheduler.CurrentScheduler.OnWaybillStatusChanged(&billCopy, false) @@ -112,6 +114,10 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) { return err2 } } + // 运单消息错序,之前已经结束了,直接返回 + if existingBill.Status >= model.WaybillStatusEndBegin { + return nil + } } addParams := orm.Params{} if bill.Status >= model.WaybillStatusAccepted && bill.Status < model.WaybillStatusEndBegin {