From 982e1d309f34e586c17f27f98fb4bb8793d4e9b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 24 Feb 2022 18:01:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E9=80=81=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/scheduler/basesch/basesch.go | 1 + business/jxcallback/scheduler/defsch/defsch_ext.go | 1 + business/partner/delivery/mtps/waybill.go | 9 +++++++-- business/partner/delivery/mtps/waybill_test.go | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/business/jxcallback/scheduler/basesch/basesch.go b/business/jxcallback/scheduler/basesch/basesch.go index c2cd374c9..eaf09ffbf 100644 --- a/business/jxcallback/scheduler/basesch/basesch.go +++ b/business/jxcallback/scheduler/basesch/basesch.go @@ -176,6 +176,7 @@ func (c *BaseScheduler) CreateWaybill(platformVendorID int, order *model.GoodsOr if handlerInfo != nil && handlerInfo.Use4CreateWaybill { if model.DeliveryBrandMarkMap[platformVendorID]&storeDetail.BrandIsOpen != 0 && balance >= model.BrandBalanceLimit { if c.IsReallyCallPlatformAPI { + // 美团配送订单生成,配送费计算 bill, err = handlerInfo.Handler.CreateWaybill(order, maxDeliveryFee) if err != nil { globals.SugarLogger.Infof("CreateWaybill failed orderID:%s vendorID:%d with error:%v", order.VendorOrderID, platformVendorID, err) diff --git a/business/jxcallback/scheduler/defsch/defsch_ext.go b/business/jxcallback/scheduler/defsch/defsch_ext.go index 1bb09b0f3..9fa3d2dc0 100644 --- a/business/jxcallback/scheduler/defsch/defsch_ext.go +++ b/business/jxcallback/scheduler/defsch/defsch_ext.go @@ -184,6 +184,7 @@ func (s *DefScheduler) CreateWaybillOnProviders4SavedOrder(ctx *jxcontext.Contex return nil, err } +// 创建三方运单 func (s *DefScheduler) CreateWaybillOnProvidersEx(ctx *jxcontext.Context, vendorOrderID string, vendorID int, courierVendorIDs []int, forceCreate bool, maxDeliveryFee int64) (bills []*model.Waybill, errCode string, err error) { savedOrderInfo := s.loadSavedOrderByID(vendorOrderID, vendorID, true) if savedOrderInfo != nil { diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index b3105e0d2..ae6cc14bf 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -188,7 +188,7 @@ func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInf return deliveryFeeInfo, err } -// IDeliveryPlatformHandler +// IDeliveryPlatformHandler(美团配送) func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) { db := dao.GetDB() if vendorOrgCode, err := dao.GetVendorOrgCode(db, model.VendorIDMTPS, "", model.VendorOrgTypeDelivery); err == nil { @@ -200,6 +200,8 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee } else { return nil, err } + + // 自定义计算预估费用 deliveryFee, _, err := delivery.CalculateOrderDeliveryFee(order, time.Now(), db) if err == nil { if err = delivery.CallCreateWaybillPolicy(deliveryFee, maxDeliveryFee, order, model.VendorIDMTPS); err != nil { @@ -259,6 +261,7 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee billParams.GoodsPickupInfo = fmt.Sprintf("%s第%d号单", model.VendorChineseNames[order.VendorID], order.OrderSeq) billParams.PoiSeq = fmt.Sprintf("#%d", order.OrderSeq) if globals.EnableStoreWrite { + // 通知美团订单,获取返回订单配送费 result, err2 := api.MtpsAPI.CreateOrderByShop2(billParams) if err = err2; err == nil { bill = &model.Waybill{ @@ -267,8 +270,10 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee VendorWaybillID: result.MtPeisongID, VendorWaybillID2: utils.Int64ToStr(result.DeliveryID), WaybillVendorID: model.VendorIDMTPS, - DesiredFee: deliveryFee, + // todo + DesiredFee: int64(result.DeliveryFee * 100), // todo deliveryFee, } + // 当前运单总费大于配送阈值15,日志打印提示 delivery.OnWaybillCreated(bill) } else { globals.SugarLogger.Debugf("CreateWaybill failed, orderID:%s, billParams:%v, error:%v", order.VendorOrderID, billParams, err) diff --git a/business/partner/delivery/mtps/waybill_test.go b/business/partner/delivery/mtps/waybill_test.go index ea4e191c0..25b6406a8 100644 --- a/business/partner/delivery/mtps/waybill_test.go +++ b/business/partner/delivery/mtps/waybill_test.go @@ -18,7 +18,7 @@ func TestCreateWaybill(t *testing.T) { order, _ := partner.CurOrderManager.LoadOrder(orerID, model.VendorIDJD) // globals.SugarLogger.Debug(order) c := new(DeliveryHandler) - _, err := c.CreateWaybill(order, nil) + _, err := c.CreateWaybill(order, 0) if err != nil { t.Fatal(err.Error()) }