From cff4e7fb010884c345794379130ad145b4182ac4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 9 Mar 2022 14:52:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/waybill.go | 1 + business/jxcallback/scheduler/basesch/basesch.go | 2 +- business/jxcallback/scheduler/defsch/defsch.go | 2 +- business/jxcallback/scheduler/defsch/defsch_ext.go | 1 + business/partner/delivery/mtps/waybill.go | 8 +++++++- controllers/jx_order.go | 1 - 6 files changed, 11 insertions(+), 4 deletions(-) diff --git a/business/jxcallback/orderman/waybill.go b/business/jxcallback/orderman/waybill.go index 75ae0fc93..f38941057 100644 --- a/business/jxcallback/orderman/waybill.go +++ b/business/jxcallback/orderman/waybill.go @@ -138,6 +138,7 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) { } dao.Commit(db, txDB) // 进运单调度器OnWaybillStatusChanged之前要确保事务是提交了的,否则会导致死锁 + // 加载数据到当前系统调度器当中 scheduler.CurrentScheduler.OnWaybillStatusChanged(&billCopy, false) dao.Begin(db) } else { diff --git a/business/jxcallback/scheduler/basesch/basesch.go b/business/jxcallback/scheduler/basesch/basesch.go index 501bd718f..00e25c435 100644 --- a/business/jxcallback/scheduler/basesch/basesch.go +++ b/business/jxcallback/scheduler/basesch/basesch.go @@ -162,7 +162,7 @@ func (c *BaseScheduler) CreateWaybill(platformVendorID int, order *model.GoodsOr } // if order.DeliveryFlag&model.OrderDeliveryFlagMaskScheduleDisabled != 0 { // waybillList, err := partner.CurOrderManager.GetOrderWaybillInfo(jxcontext.AdminCtx, order.VendorOrderID, order.VendorID, true) - // if err != nil {1 + // if err != nil { // return nil, err // } // if len(waybillList) > 0 { diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index d7c4e46a1..c173aa3ea 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -504,7 +504,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod return err } -// 以下是运单 +// 以下是运单 (将订单数据放入系统内部调度器当中) func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending bool) (err error) { if bill.Status > model.WaybillStatusUnknown { globals.SugarLogger.Debugf("OnWaybillStatusChanged orderID:%s %s, bill:%v", bill.VendorOrderID, model.WaybillStatusName[bill.Status], utils.Format4Output(bill, true)) diff --git a/business/jxcallback/scheduler/defsch/defsch_ext.go b/business/jxcallback/scheduler/defsch/defsch_ext.go index 220832243..9e0ed05f9 100644 --- a/business/jxcallback/scheduler/defsch/defsch_ext.go +++ b/business/jxcallback/scheduler/defsch/defsch_ext.go @@ -207,6 +207,7 @@ func (s *DefScheduler) CreateWaybillOnProvidersEx(ctx *jxcontext.Context, vendor if vendorID == model.VendorIDELM { return nil, fmt.Errorf("不要直接使用饿了么订单号,请使用相应的饿百订单号") } + // 创建可调度对象,并且存储 savedOrderInfo := s.loadSavedOrderByID(vendorOrderID, vendorID, true) if savedOrderInfo != nil { order := savedOrderInfo.order diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index 63ef74303..983853750 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -120,6 +120,7 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m c.pushToGy(msg) return mtpsapi.SuccessResponse } + // 加入调度器 return mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus) } @@ -207,10 +208,15 @@ func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInf deliveryFeeInfo = &partner.WaybillFeeInfo{} // 获取送货单id deliveryID := c.getDeliveryID(order) + shopId, err := c.getMTPSShopID(order, dao.GetDB()) + if err != nil { + return nil, err + } + deliveryFeeInfo.RefDeliveryFee, deliveryFeeInfo.RefAddFee, err = api.MtpsAPI.PreCreateByShop(&mtpsapi.PreCreateByShopParam{ DeliveryID: deliveryID, OrderID: order.VendorOrderID, - ShopID: utils.Int2Str(order.StoreID), + ShopID: shopId, DeliveryServiceCode: mtpsapi.DeliveryServiceCodeRapid, ReceiverName: order.ConsigneeName, ReceiverAddress: order.ConsigneeAddress, diff --git a/controllers/jx_order.go b/controllers/jx_order.go index 60f1340ae..010db0d65 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -109,7 +109,6 @@ func (c *OrderController) QueryOrderWaybillFeeInfo() { }) } -// todo 召唤第三方骑手配送生成订单 // @Title 创建三方运单 // @Description 创建三方运单 // @Param token header string true "认证token"