From 2b6754e0f4d33bea8b224c8b0276f66a7ba984b4 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 16 May 2019 14:32:49 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=A4=84=E7=90=86=E8=BF=90=E5=8D=95?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=94=B6=E5=88=B0=E6=96=B0=E8=BF=90=E5=8D=95?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/waybill.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/business/jxcallback/orderman/waybill.go b/business/jxcallback/orderman/waybill.go index 148013315..3ac55be74 100644 --- a/business/jxcallback/orderman/waybill.go +++ b/business/jxcallback/orderman/waybill.go @@ -95,6 +95,20 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) { if bill.Status == model.WaybillStatusNew { isDuplicated, err = w.onWaybillNew(bill, db) } else { + if bill.Status == model.WaybillStatusAccepted { // 处理美团配送丢失新运单消息的情况 + if _, err2 := w.LoadWaybill(bill.VendorWaybillID, bill.WaybillVendorID); err2 != nil { + if dao.IsNoRowsError(err2) { + if isDuplicated, err = w.onWaybillNew(bill, db); err != nil { + return err + } + billCopy := *bill + billCopy.Status = model.WaybillStatusNew + scheduler.CurrentScheduler.OnWaybillStatusChanged(&billCopy, false) + } else { + return err2 + } + } + } addParams := orm.Params{} if bill.Status >= model.WaybillStatusAccepted && bill.Status < model.WaybillStatusEndBegin { if bill.Status == model.WaybillStatusAccepted { @@ -165,6 +179,7 @@ func (c *OrderManager) LoadWaybill(vendorWaybillID string, waybillVendorID int) WaybillVendorID: waybillVendorID, } if err = db.Read(bill, "VendorWaybillID", "WaybillVendorID"); err != nil { + bill = nil if err == orm.ErrNoRows { err = ErrCanNotFindWaybill }