修改自动发单顺序

This commit is contained in:
邹宗楠
2023-06-07 15:38:13 +08:00
parent 2b4b23b2f5
commit a402483756

View File

@@ -884,7 +884,7 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf
if err = s.canOrderCreateWaybillNormally(order, savedOrderInfo); err == nil { if err = s.canOrderCreateWaybillNormally(order, savedOrderInfo); err == nil {
if (order.DeliveryFlag & model.OrderDeliveryFlagMaskScheduleDisabled) == 0 { if (order.DeliveryFlag & model.OrderDeliveryFlagMaskScheduleDisabled) == 0 {
if savedOrderInfo.retryCount <= maxWaybillRetryCount { 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 savedOrderInfo.isNeedCreate3rdWaybill = true
excludeVendorIDs := savedOrderInfo.GetWaybillVendorIDs() excludeVendorIDs := savedOrderInfo.GetWaybillVendorIDs()
//TODO 取消京西不自动发美团 2020-06-02 //TODO 取消京西不自动发美团 2020-06-02
@@ -922,11 +922,7 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf
//TODO 2020-07-21 发单时间要在门店的营业时间内 //TODO 2020-07-21 发单时间要在门店的营业时间内
var storeDetail *dao.StoreDetail var storeDetail *dao.StoreDetail
//if savedOrderInfo.storeDetail != nil {
// storeDetail = savedOrderInfo.storeDetail
//} else {
storeDetail, err = dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, "") storeDetail, err = dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, "")
//}
if storeDetail != nil { if storeDetail != nil {
if storeDetail.OpenTime1 != 0 && storeDetail.CloseTime1 != 0 { if storeDetail.OpenTime1 != 0 && storeDetail.CloseTime1 != 0 {
time1 := jxutils.JxOperationTime2TimeByDate(storeDetail.OpenTime1, time.Now()) time1 := jxutils.JxOperationTime2TimeByDate(storeDetail.OpenTime1, time.Now())
@@ -947,12 +943,41 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf
//1表示为门店发单需要验证门店账户余额情况 //1表示为门店发单需要验证门店账户余额情况
_, err2 := s.CheckStoreBalance(jxcontext.AdminCtx, order, waybillVendorIDs) _, 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 { 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 { if _, err = s.CreateWaybillOnProviders4SavedOrder(jxcontext.AdminCtx, savedOrderInfo, nil, excludeVendorIDs, false, maxDeliveryFee); err == nil {
savedOrderInfo.retryCount++ savedOrderInfo.retryCount++
} }