diff --git a/business/jxcallback/scheduler/basesch/basesch.go b/business/jxcallback/scheduler/basesch/basesch.go index eee5c506e..c27b914b7 100644 --- a/business/jxcallback/scheduler/basesch/basesch.go +++ b/business/jxcallback/scheduler/basesch/basesch.go @@ -119,10 +119,12 @@ func (c *BaseScheduler) SelfDeliverDelivering(order *model.GoodsOrder, userName err = utils.CallFuncLogError(func() error { // 下面这个写法暂存,可能会有问题 //if err := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivering(order, userName); err != nil && err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation { - if err := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivering(order, userName); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation && (strings.Contains(err.Error(), "1047") || !strings.Contains(err.Error(), "301251"))) { - c.Swtich2SelfDeliver(order, userName) - bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID) - c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive) + if err := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivering(order, userName); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation) { + if strings.Contains(err.Error(), "1047") { + c.Swtich2SelfDeliver(order, userName) + bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID) + c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive) + } } return err }, "SelfDeliverDelivering orderID:%s", order.VendorOrderID) @@ -243,7 +245,6 @@ func (c *BaseScheduler) CancelWaybill(bill *model.Waybill, cancelReasonID int, c if err := handlerInfo.Handler.CancelWaybill(bill, cancelReasonID, cancelReason); err != nil { return err } - globals.SugarLogger.Debug("=================正儿八经去平台取消订单") order, _ := partner.CurOrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID) return orderman.ResetCreateWaybillFee(nil, order) }, "CancelWaybill bill:%v", bill); err == nil { diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 63f097b24..ef759b374 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -1033,8 +1033,10 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInf order := savedOrderInfo.order globals.SugarLogger.Debugf("swtich2SelfDeliverWithRetry orderID:%s", order.VendorOrderID) if order.WaybillVendorID != order.VendorID { // && err != scheduler.ErrOrderStatusAlreadySatisfyCurOperationELM && err != scheduler.ErrOrderStatusAlreadySatisfyCurOperationMTWM - if err := s.Swtich2SelfDeliver(order, ""); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation && (strings.Contains(err.Error(), "1047") || !strings.Contains(err.Error(), "301251"))) { //301251饿了转自送 1047美团混合送 - s.SelfDeliverDelivering(order, "非专送、快送、混合送订单,转自送失败,调用deriving转自送") + if err := s.Swtich2SelfDeliver(order, ""); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation) { //301251饿了转自送 1047美团混合送 + if strings.Contains(err.Error(), "1047") { + s.SelfDeliverDelivering(order, "非专送、快送、混合送订单,转自送失败,调用deriving转自送") + } globals.SugarLogger.Infof("swtich2SelfDeliverWithRetry failed, bill:%v, err:%v", bill, err) if retryCount > 0 { utils.AfterFuncWithRecover(duration, func() {