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))