From 7e0d72f442d8a33259b834877b34f7edeed72878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 15 Jun 2022 16:51:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=87=8D=E5=A4=8D=E9=85=8D?= =?UTF-8?q?=E9=80=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/scheduler/defsch/defsch.go | 14 +++++++------- globals/beegodb/beegodb.go | 7 ++++++- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 2ff08acce..29efedb99 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -594,8 +594,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo if (isBillExist || bill.WaybillVendorID != model.VendorIDDada) && !isPending { // todo 达达运单有错序的情况,临时看看 isBillAlreadyCandidate := s.isBillCandidate(order, bill) // todo 购买平台的运单,优先级最高,但这样写也可能带来问题,即在这个时间,因为之前3方已经接单,已经发出了转自送请求(而且可能成功了),所以加个状态判断 - if !model.IsOrderHaveWaybill(order) || - (model.IsWaybillPlatformOwn(bill) && !model.IsOrderHaveOwnWaybill(order) && (order.DeliveryFlag&model.OrderDeliveryFlagMaskPurcahseDisabled) == 0) { + if !model.IsOrderHaveWaybill(order) || (model.IsWaybillPlatformOwn(bill) && !model.IsOrderHaveOwnWaybill(order) && (order.DeliveryFlag&model.OrderDeliveryFlagMaskPurcahseDisabled) == 0) { if model.IsOrderHaveWaybill(order) { // 进到这里的原因是,在这个时间点,购物平台物流已经抢单(但抢单消息还没有被收到)(比如:818810379000941) globals.SugarLogger.Infof("OnWaybillStatusChanged orderID:%s purchase platform waybill arrvied later, may cause problem", order.VendorOrderID) @@ -629,11 +628,6 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo smsmsg.NotifyPickOrder(order) } - // 订单在三方配送中,转自送 - if order.Status >= model.OrderStatusDelivering && order.DeliveryType == model.OrderDeliveryTypeStoreSelf { - s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, switch2SelfDeliverRetryCount, switch2SelfDeliverRetryGap) - } - // 订单处于配送状态来的新分配骑手运单 if order.Status >= model.OrderStatusDelivering && order.Status < model.OrderStatusEndBegin && bill.Status < model.OrderStatusDelivering { if order.DeliveryType == model.OrderDeliveryTypeStoreSelf { @@ -677,6 +671,10 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo if isBillAlreadyCandidate && !s.isWaybillCourierSame(savedOrderInfo, bill) && !model.IsWaybillPlatformOwn(bill) { s.notify3rdPartyWaybill(order, bill, isBillAlreadyCandidate) } + // 订单在三方配送中,转自送 + if order.Status >= model.OrderStatusDelivering && order.DeliveryType == model.OrderDeliveryTypeStoreSelf { + s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, switch2SelfDeliverRetryCount, switch2SelfDeliverRetryGap) + } order.Flag &= ^model.OrderFlagMaskFailedGetGoods err = partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order) } @@ -740,8 +738,10 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo case model.WaybillStatusDelivered: s.resetTimer(savedOrderInfo, bill, isPending) s.removeWaybillFromMap(savedOrderInfo, bill.WaybillVendorID) + if order.DeliveryType == model.OrderDeliveryTypeStoreSelf { // 只要门店自送,订单结束都推一下送达!(bug完成的订单还会继续美团外卖送) s.SelfDeliverDelivered(order, "") + s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, switch2SelfDeliverRetryCount, switch2SelfDeliverRetryGap) } if !isPending { var err2 error diff --git a/globals/beegodb/beegodb.go b/globals/beegodb/beegodb.go index 21486cfa4..04dec3734 100644 --- a/globals/beegodb/beegodb.go +++ b/globals/beegodb/beegodb.go @@ -7,6 +7,8 @@ import ( "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego/client/orm" "github.com/astaxie/beego/server/web" + "strconv" + "time" ) func Init() { @@ -30,7 +32,10 @@ func Init() { // if !globals.DisableWXAuth1 { // orm.RegisterModel(new(legacymodel.WeiXins)) // } - orm.RegisterModel(new(model.GoodsOrder)) + // 这个注册的2022年之前的表,包括2022年数据 + //orm.RegisterModel(new(model.GoodsOrder)) + // 这个注册的是当前年份下一年的表,实现分表。不包括当前年份。 + orm.RegisterModelWithSuffix("_"+strconv.Itoa(time.Now().Year()+1), new(model.GoodsOrder)) orm.RegisterModel(new(model.GoodsOrderOriginal)) orm.RegisterModel(new(model.TempGoodsOrderMobile)) orm.RegisterModel(new(model.OrderSku))