From a4024837563099bb6e510f46a40c6757b0f44a33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 7 Jun 2023 15:38:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=87=AA=E5=8A=A8=E5=8F=91?= =?UTF-8?q?=E5=8D=95=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jxcallback/scheduler/defsch/defsch.go | 45 ++++++++++++++----- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index eb265e669..d02c92dcb 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -884,7 +884,7 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf if err = s.canOrderCreateWaybillNormally(order, savedOrderInfo); err == nil { if (order.DeliveryFlag & model.OrderDeliveryFlagMaskScheduleDisabled) == 0 { if savedOrderInfo.retryCount <= maxWaybillRetryCount { - var waybillVendorIDs = []int{model.VendorIDMTPS, model.VendorIDDada, model.VendorIDFengNiao, model.VendorIDUUPT} + var waybillVendorIDs = []int{model.VendorIDMTPS, model.VendorIDDada, model.VendorIDFengNiao, model.VendorIDUUPT, model.VendorIDSFPS} savedOrderInfo.isNeedCreate3rdWaybill = true excludeVendorIDs := savedOrderInfo.GetWaybillVendorIDs() //TODO 取消京西不自动发美团 2020-06-02 @@ -922,11 +922,7 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf //TODO 2020-07-21 发单时间要在门店的营业时间内 var storeDetail *dao.StoreDetail - //if savedOrderInfo.storeDetail != nil { - // storeDetail = savedOrderInfo.storeDetail - //} else { storeDetail, err = dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, "") - //} if storeDetail != nil { if storeDetail.OpenTime1 != 0 && storeDetail.CloseTime1 != 0 { time1 := jxutils.JxOperationTime2TimeByDate(storeDetail.OpenTime1, time.Now()) @@ -947,12 +943,41 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf //1表示为门店发单,需要验证门店账户余额情况 _, err2 := s.CheckStoreBalance(jxcontext.AdminCtx, order, waybillVendorIDs) - //TODO 2021-02-19 增加品牌配送开关 - //TODO 2021-08-31 修改为每个平台的开关 - //if storeDetail.BrandIsOpen == model.YES { - // err = fmt.Errorf("此品牌已关闭配送! [%v]", storeDetail.BrandName) - //} if err == nil && err2 == nil { + // 1.检查门店三方配送配置,达达>蜂鸟>美团>顺丰>uu + // excludeVendorIDs 包括上面已经发送的平台id + storeCourierList, err := dao.GetStoreCourierList2(dao.GetDB(), []int{jxutils.GetSaleStoreIDFromOrder(order)}, nil, model.StoreStatusOpened, []int{model.StoreAuditStatusOnline, model.StoreAuditStatusUpdated}) + excludeVendorIDsMap := make(map[int]int, 0) // 被排除的配送 + for _, v := range excludeVendorIDs { + excludeVendorIDsMap[v] = model.YES + } + + for _, v := range storeCourierList { + if excludeVendorIDsMap[v.VendorID] == model.YES { + continue + } + if v.VendorID == model.VendorIDDada { + excludeVendorIDs = []int{model.VendorIDFengNiao, model.VendorIDMTPS, model.VendorIDUUPT, model.VendorIDSFPS} + break + } + if v.VendorID == model.VendorIDFengNiao { + excludeVendorIDs = []int{model.VendorIDDada, model.VendorIDMTPS, model.VendorIDUUPT, model.VendorIDSFPS} + break + } + if v.VendorID == model.VendorIDMTPS { + excludeVendorIDs = []int{model.VendorIDDada, model.VendorIDFengNiao, model.VendorIDUUPT, model.VendorIDSFPS} + break + } + if v.VendorID == model.VendorIDUUPT { + excludeVendorIDs = []int{model.VendorIDDada, model.VendorIDMTPS, model.VendorIDFengNiao, model.VendorIDSFPS} + break + } + if v.VendorID == model.VendorIDSFPS { + excludeVendorIDs = []int{model.VendorIDDada, model.VendorIDMTPS, model.VendorIDUUPT, model.VendorIDFengNiao} + break + } + } + if _, err = s.CreateWaybillOnProviders4SavedOrder(jxcontext.AdminCtx, savedOrderInfo, nil, excludeVendorIDs, false, maxDeliveryFee); err == nil { savedOrderInfo.retryCount++ }