From 135563ea4ddea5ec20b2ac25bdbb8c090c314c2c Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 14 May 2019 11:54:22 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E7=BB=9F=E4=B8=80=E6=B8=85=E7=90=86?= =?UTF-8?q?=E8=B0=83=E7=94=A8CallMsgHandlerAsync=E6=97=B6=E7=9A=84primaryI?= =?UTF-8?q?D=E8=AE=BE=E7=BD=AE=20-=20defsch=E4=B8=AD=EF=BC=8C=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=8E=A5=E5=8D=95=E8=B0=83=E7=94=A8OnOrderStatusChang?= =?UTF-8?q?ed=E6=94=B9=E4=B8=BA=E5=BC=82=E6=AD=A5=EF=BC=8C=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E6=AD=BB=E5=BE=AA=E7=8E=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman.go | 6 +++--- business/jxcallback/scheduler/defsch/defsch.go | 9 ++++++--- business/partner/delivery/dada/waybill.go | 2 +- business/partner/delivery/mtps/waybill.go | 4 ++-- business/partner/purchase/ebai/order_afs.go | 8 +++----- business/partner/purchase/jd/order_afs.go | 8 +++----- business/partner/purchase/mtwm/order_afs.go | 8 +++----- 7 files changed, 21 insertions(+), 24 deletions(-) diff --git a/business/jxcallback/orderman/orderman.go b/business/jxcallback/orderman/orderman.go index dad75a23f..61fc0211b 100644 --- a/business/jxcallback/orderman/orderman.go +++ b/business/jxcallback/orderman/orderman.go @@ -142,17 +142,17 @@ func LoadPendingOrders() { if order, ok := item.(*model.GoodsOrder); ok { jxutils.CallMsgHandlerAsync(func() { scheduler.CurrentScheduler.OnOrderNew(order, true) - }, order.VendorOrderID) + }, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID)) } else if status, ok := item.(*model.OrderStatus); ok { jxutils.CallMsgHandlerAsync(func() { order := orderMap[jxutils.ComposeUniversalOrderID(status.VendorOrderID, status.VendorID)] scheduler.CurrentScheduler.OnOrderStatusChanged(order, status, true) - }, status.VendorOrderID) + }, jxutils.ComposeUniversalOrderID(status.RefVendorOrderID, status.RefVendorID)) } else { bill := item.(*model.Waybill) jxutils.CallMsgHandlerAsync(func() { scheduler.CurrentScheduler.OnWaybillStatusChanged(bill, true) - }, bill.VendorOrderID) + }, jxutils.ComposeUniversalOrderID(bill.VendorOrderID, bill.OrderVendorID)) } curTime := time.Now() timeout := sleepGap - curTime.Sub(lastTime) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 2bda60885..e94453f11 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -143,7 +143,10 @@ func init() { // 为了解决京东新消息与接单消息乱序的问题 if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 && errWithCode.IntCode() == -1 { if order2, err2 := partner.GetPurchasePlatformFromVendorID(order.VendorID).GetOrder(order.VendorOrderID); err2 == nil && order2.Status > order.Status { - // sch.OnOrderStatusChanged(order, model.Order2Status(order2), false) + order.Status = order2.Status + jxutils.CallMsgHandlerAsync(func() { + sch.OnOrderStatusChanged(order, model.Order2Status(order2), false) + }, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID)) err = nil } else { err = err2 @@ -574,7 +577,7 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInf utils.AfterFuncWithRecover(duration, func() { jxutils.CallMsgHandlerAsync(func() { s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, retryCount-1, duration) - }, order.VendorOrderID) + }, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID)) }) } else { errStr := fmt.Sprintf("订单:%s转自配送失败, 错误信息:%v", order.VendorOrderID, err) @@ -685,7 +688,7 @@ func (s *DefScheduler) resetTimer(savedOrderInfo *WatchOrderInfo, bill *model.Wa config.TimeoutAction(savedOrderInfo) savedOrderInfo.timerStatus = 0 savedOrderInfo.timerStatusType = scheduler.TimerStatusTypeUnknown - }, order.VendorOrderID) + }, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID)) }) } globals.SugarLogger.Debugf("resetTimer, orderID:%s, status:%d, timeout:%v", order.VendorOrderID, status, timeout) diff --git a/business/partner/delivery/dada/waybill.go b/business/partner/delivery/dada/waybill.go index a26817394..f98e6fb36 100644 --- a/business/partner/delivery/dada/waybill.go +++ b/business/partner/delivery/dada/waybill.go @@ -50,7 +50,7 @@ func (c *DeliveryHandler) GetVendorID() int { func (c *DeliveryHandler) OnWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaapi.CallbackResponse) { jxutils.CallMsgHandler(func() { retVal = c.onWaybillMsg(msg) - }, msg.OrderID) + }, jxutils.ComposeUniversalOrderID(msg.OrderID, model.VendorIDDada)) return retVal } diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index 09c75ee62..1a9607b20 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -55,7 +55,7 @@ func OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg) (retVal *mtpsapi.Ca func (c *DeliveryHandler) OnWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *mtpsapi.CallbackResponse) { jxutils.CallMsgHandler(func() { retVal = c.onWaybillMsg(msg) - }, msg.OrderID) + }, jxutils.ComposeUniversalOrderID(msg.OrderID, model.VendorIDMTPS)) return retVal } @@ -73,7 +73,7 @@ func (c *DeliveryHandler) OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg } order.VendorOrderID, order.OrderVendorID = jxutils.SplitUniversalOrderID(msg.OrderID) retVal = mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), "mtps OnWaybillExcept") - }, msg.OrderID) + }, jxutils.ComposeUniversalOrderID(msg.OrderID, model.VendorIDDada)) return retVal } diff --git a/business/partner/purchase/ebai/order_afs.go b/business/partner/purchase/ebai/order_afs.go index 0ee077dd0..9ec1bfe3d 100644 --- a/business/partner/purchase/ebai/order_afs.go +++ b/business/partner/purchase/ebai/order_afs.go @@ -45,11 +45,9 @@ func (c *PurchaseHandler) isAfsMsg(msg *ebaiapi.CallbackMsg) bool { } func (c *PurchaseHandler) OnAfsOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaiapi.CallbackResponse) { - utils.CallFuncAsync(func() { - jxutils.CallMsgHandler(func() { - retVal = c.onAfsOrderMsg(msg) - }, jxutils.ComposeUniversalOrderID(GetOrderIDFromMsg(msg), model.VendorIDEBAI)) - }) + jxutils.CallMsgHandlerAsync(func() { + retVal = c.onAfsOrderMsg(msg) + }, jxutils.ComposeUniversalOrderID(GetOrderIDFromMsg(msg), model.VendorIDEBAI)) return retVal } diff --git a/business/partner/purchase/jd/order_afs.go b/business/partner/purchase/jd/order_afs.go index b11b159c4..36b22264f 100644 --- a/business/partner/purchase/jd/order_afs.go +++ b/business/partner/purchase/jd/order_afs.go @@ -60,11 +60,9 @@ var ( ) func (c *PurchaseHandler) OnAfsOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) { - utils.CallFuncAsync(func() { - jxutils.CallMsgHandler(func() { - retVal = c.onAfsOrderMsg(msg) - }, jxutils.ComposeUniversalOrderID(msg.BillID, model.VendorIDJD)) - }) + jxutils.CallMsgHandlerAsync(func() { + retVal = c.onAfsOrderMsg(msg) + }, jxutils.ComposeUniversalOrderID(msg.BillID, model.VendorIDJD)) return retVal } diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index f93664908..2faefdc0d 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -42,11 +42,9 @@ func (c *PurchaseHandler) isAfsMsg(msg *mtwmapi.CallbackMsg) bool { } func (c *PurchaseHandler) OnAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwmapi.CallbackResponse) { - utils.CallFuncAsync(func() { - jxutils.CallMsgHandler(func() { - retVal = c.onAfsOrderMsg(msg) - }, jxutils.ComposeUniversalOrderID(GetOrderIDFromMsg(msg), model.VendorIDEBAI)) - }) + jxutils.CallMsgHandlerAsync(func() { + retVal = c.onAfsOrderMsg(msg) + }, jxutils.ComposeUniversalOrderID(GetOrderIDFromMsg(msg), model.VendorIDEBAI)) return retVal }