This commit is contained in:
邹宗楠
2024-02-02 10:41:14 +08:00
parent 2c5afd1695
commit f522916985
9 changed files with 22 additions and 21 deletions

View File

@@ -263,7 +263,7 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m
if orderStatus.OrderType == model.OrderTypeOrder { if orderStatus.OrderType == model.OrderTypeOrder {
waybill, _ := dao.GetWaybills(db, order2.VendorOrderID, []int64{model.VendorIDMTPS, model.VendorIDDada, model.VendorIDFengNiao, model.VendorIDUUPT, model.VendorIDSFPS}) waybill, _ := dao.GetWaybills(db, order2.VendorOrderID, []int64{model.VendorIDMTPS, model.VendorIDDada, model.VendorIDFengNiao, model.VendorIDUUPT, model.VendorIDSFPS})
for _, v := range waybill { for _, v := range waybill {
if err := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID).Handler.CancelWaybill(v, 0, "订单被取消了"); err != nil { if err := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID).Handler.CancelWaybill(v, 0, "订单被取消了1"); err != nil {
partner.CurOrderManager.OnOrderMsg(order2, fmt.Sprintf("订单[%s]被取消了,运单[%s]取消失败Err: %s", order.VendorOrderID, v.VendorWaybillID, err.Error()), "") partner.CurOrderManager.OnOrderMsg(order2, fmt.Sprintf("订单[%s]被取消了,运单[%s]取消失败Err: %s", order.VendorOrderID, v.VendorWaybillID, err.Error()), "")
} else { } else {
partner.CurOrderManager.OnOrderMsg(order2, fmt.Sprintf("订单[%s]被取消了,运单[%s]取消成功", order.VendorOrderID, v.VendorWaybillID), "") partner.CurOrderManager.OnOrderMsg(order2, fmt.Sprintf("订单[%s]被取消了,运单[%s]取消成功", order.VendorOrderID, v.VendorWaybillID), "")
@@ -1529,7 +1529,7 @@ func MergeJdsOrders(ctx *jxcontext.Context, vendorOrderIDs []string) (vendorOrde
if waybill != nil { if waybill != nil {
if waybill.WaybillVendorID != model.VendorIDJDWL { if waybill.WaybillVendorID != model.VendorIDJDWL {
if handler := partner.GetDeliveryPlatformFromVendorID(waybill.WaybillVendorID); handler != nil { if handler := partner.GetDeliveryPlatformFromVendorID(waybill.WaybillVendorID); handler != nil {
err = handler.Handler.CancelWaybill(waybill, 0, "订单合并被取消") err = handler.Handler.CancelWaybill(waybill, 0, "订单合并被取消2")
} }
} }
} }
@@ -1661,7 +1661,7 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int)
} }
if waybill != nil { if waybill != nil {
if handler := partner.GetDeliveryPlatformFromVendorID(waybill.WaybillVendorID); handler != nil { if handler := partner.GetDeliveryPlatformFromVendorID(waybill.WaybillVendorID); handler != nil {
err = handler.Handler.CancelWaybill(waybill, 0, "订单转移被取消") err = handler.Handler.CancelWaybill(waybill, 0, "订单转移被取消3")
} }
} }
} }
@@ -1841,7 +1841,7 @@ func SendJdwlForJdsOrder(ctx *jxcontext.Context, vendorOrderID string) (err erro
} }
} }
if handler := partner.GetDeliveryPlatformFromVendorID(model.VendorIDJDWL); handler != nil { if handler := partner.GetDeliveryPlatformFromVendorID(model.VendorIDJDWL); handler != nil {
err = handler.Handler.CancelWaybill(waybill, 0, "订单已发送其他物流") err = handler.Handler.CancelWaybill(waybill, 0, "订单已发送其他物流4")
} }
if err != nil { if err != nil {
return err return err

View File

@@ -134,7 +134,7 @@ func (c *BaseScheduler) SelfDeliverDelivering(order *model.GoodsOrder, userName
err = nil err = nil
} else { } else {
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID) bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
err = c.CancelWaybill(bill, partner.CancelWaybillReasonOther, userName+":"+partner.CancelWaybillReasonStrActive) err = c.CancelWaybill(bill, partner.CancelWaybillReasonOther, userName+":5"+partner.CancelWaybillReasonStrActive)
partner.CurOrderManager.OnOrderMsg(order, "美团外卖运单无法取消,", err.Error()) partner.CurOrderManager.OnOrderMsg(order, "美团外卖运单无法取消,", err.Error())
return err return err
} }
@@ -144,7 +144,7 @@ func (c *BaseScheduler) SelfDeliverDelivering(order *model.GoodsOrder, userName
tiktokWayBillStatus, err2 := partner.GetPurchasePlatformFromVendorID(order.VendorID).OrderLogisticsStatus(order.VendorOrderID) tiktokWayBillStatus, err2 := partner.GetPurchasePlatformFromVendorID(order.VendorID).OrderLogisticsStatus(order.VendorOrderID)
if tiktokWayBillStatus != nil && tiktokWayBillStatus.LogisticsStatus >= tiktokShop.ShipmentStatusReceived && tiktokWayBillStatus.LogisticsStatus != tiktokShop.ShipmentStatusCanceled { if tiktokWayBillStatus != nil && tiktokWayBillStatus.LogisticsStatus >= tiktokShop.ShipmentStatusReceived && tiktokWayBillStatus.LogisticsStatus != tiktokShop.ShipmentStatusCanceled {
//取消抖音配送转自送 //取消抖音配送转自送
err = c.CancelWaybill(localBill, partner.CancelWaybillReasonDYPSCancel, partner.CancelWaybillReasonStrDYPSCancel+"抖音骑手已经接单,无法取消") err = c.CancelWaybill(localBill, partner.CancelWaybillReasonDYPSCancel, partner.CancelWaybillReasonStrDYPSCancel+"抖音骑手已经接单,无法取消6")
partner.CurOrderManager.OnOrderMsg(order, "取消抖音配送,转用门店自配送/三方配送", "抖音骑手已经接单,无法取消") partner.CurOrderManager.OnOrderMsg(order, "取消抖音配送,转用门店自配送/三方配送", "抖音骑手已经接单,无法取消")
return err return err
} else if tiktokWayBillStatus != nil && tiktokWayBillStatus.LogisticsStatus == -1 { // 先转自送,自送不成功取消平台配送. } else if tiktokWayBillStatus != nil && tiktokWayBillStatus.LogisticsStatus == -1 { // 先转自送,自送不成功取消平台配送.
@@ -155,7 +155,7 @@ func (c *BaseScheduler) SelfDeliverDelivering(order *model.GoodsOrder, userName
partner.GetPurchasePlatformFromVendorID(order.VendorID).SelfDeliverDelivering(order, "") partner.GetPurchasePlatformFromVendorID(order.VendorID).SelfDeliverDelivering(order, "")
} else if err = partner.GetPurchasePlatformFromVendorID(order.VendorID).CancelLogisticsByWmOrderId(order, "", "", order.VendorStoreID, order.VendorOrderID); err != nil { } else if err = partner.GetPurchasePlatformFromVendorID(order.VendorID).CancelLogisticsByWmOrderId(order, "", "", order.VendorStoreID, order.VendorOrderID); err != nil {
partner.CurOrderManager.OnOrderMsg(order, "取消抖音配送异常:", err.Error()) partner.CurOrderManager.OnOrderMsg(order, "取消抖音配送异常:", err.Error())
if err = c.CancelWaybill(localBill, partner.CancelWaybillReasonDYPSCancel, partner.CancelWaybillReasonStrDYPSCancel); err != nil { if err = c.CancelWaybill(localBill, partner.CancelWaybillReasonDYPSCancel, partner.CancelWaybillReasonStrDYPSCancel+"7"); err != nil {
partner.CurOrderManager.OnOrderMsg(order, "取消抖音平台运单错误,无法转自送", err.Error()) partner.CurOrderManager.OnOrderMsg(order, "取消抖音平台运单错误,无法转自送", err.Error())
return err return err
} }
@@ -192,7 +192,7 @@ func (c *BaseScheduler) SelfDeliverDelivered(order *model.GoodsOrder, userName s
if err = partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivered(order, userName); err == nil { if err = partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivered(order, userName); err == nil {
bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID) bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
if bill != nil && bill.WaybillVendorID != model.VendorJXFakeWL && bill.WaybillVendorID != model.VendorIDUnknown { if bill != nil && bill.WaybillVendorID != model.VendorJXFakeWL && bill.WaybillVendorID != model.VendorIDUnknown {
c.CancelWaybill(bill, partner.CancelWaybillReasonOther, userName+":"+partner.CancelWaybillReasonStrActive) c.CancelWaybill(bill, partner.CancelWaybillReasonOther, userName+":"+partner.CancelWaybillReasonStrActive+"8")
} }
} }
return err return err
@@ -261,7 +261,7 @@ func (c *BaseScheduler) CancelWaybill(bill *model.Waybill, cancelReasonID int, c
if c.IsReallyCallPlatformAPI && bill.OrderVendorID != bill.WaybillVendorID && bill.Status != model.WaybillStatusCanceled { if c.IsReallyCallPlatformAPI && bill.OrderVendorID != bill.WaybillVendorID && bill.Status != model.WaybillStatusCanceled {
if handlerInfo := partner.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID); handlerInfo != nil { if handlerInfo := partner.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID); handlerInfo != nil {
if err = utils.CallFuncLogErrorWithInfo(func() error { if err = utils.CallFuncLogErrorWithInfo(func() error {
if err := handlerInfo.Handler.CancelWaybill(bill, cancelReasonID, cancelReason); err != nil { if err := handlerInfo.Handler.CancelWaybill(bill, cancelReasonID, cancelReason+"9"); err != nil {
return err return err
} }
return nil return nil

View File

@@ -220,7 +220,7 @@ func (c *BaseScheduler) CancelWaybillByID(ctx *jxcontext.Context, vendorWaybillI
return err return err
} }
order, _ := partner.CurOrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID) order, _ := partner.CurOrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID)
partner.CurOrderManager.OnOrderMsg(order, utils.Int64ToStr(model.WaybillStatusCancel), "商户发起运单取消") partner.CurOrderManager.OnOrderMsg(order, utils.Int64ToStr(model.WaybillStatusCancel), "商户发起运单取消10")
return err return err
} }
@@ -260,7 +260,7 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s
order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled
partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"}) partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"})
for _, v := range waybills { for _, v := range waybills {
c.CancelWaybill(v, partner.CancelWaybillReasonOther, ctx.GetUserName()+":"+partner.CancelWaybillReasonStrActive) c.CancelWaybill(v, partner.CancelWaybillReasonOther, ctx.GetUserName()+":11"+partner.CancelWaybillReasonStrActive)
} }
} }
if afsCount == orderCount && order.VendorID == model.VendorIDJX { if afsCount == orderCount && order.VendorID == model.VendorIDJX {
@@ -275,7 +275,7 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s
order.VendorStatus = "10" // 饿百取消订单 order.VendorStatus = "10" // 饿百取消订单
partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag", "Status", "VendorStatus"}) partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag", "Status", "VendorStatus"})
for _, v := range waybills { for _, v := range waybills {
c.CancelWaybill(v, partner.CancelWaybillReasonOther, ctx.GetUserName()+":"+partner.CancelWaybillReasonStrActive) c.CancelWaybill(v, partner.CancelWaybillReasonOther, ctx.GetUserName()+":12"+partner.CancelWaybillReasonStrActive)
} }
} }

View File

@@ -450,7 +450,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod
} }
} }
} }
s.cancelOtherWaybills(savedOrderInfo, curWaybill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrOrderAlreadyFinished) s.cancelOtherWaybills(savedOrderInfo, curWaybill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrOrderAlreadyFinished+"13")
if status.Status >= model.OrderStatusEndBegin { if status.Status >= model.OrderStatusEndBegin {
s.orderMap.Delete(jxutils.GetUniversalOrderIDFromOrderStatus(status)) s.orderMap.Delete(jxutils.GetUniversalOrderIDFromOrderStatus(status))
} }
@@ -518,10 +518,10 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
// 将订单冲购物平台转自送(混合送转自送) // 将订单冲购物平台转自送(混合送转自送)
s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, switch2SelfDeliverRetryCount, switch2SelfDeliverRetryGap) s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, switch2SelfDeliverRetryCount, switch2SelfDeliverRetryGap)
} else { } else {
s.ProxyCancelWaybill(order, bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonStrNotAcceptIntime) s.ProxyCancelWaybill(order, bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonStrNotAcceptIntime+"14")
} }
} else if order.Status > model.OrderStatusEndBegin { } else if order.Status > model.OrderStatusEndBegin {
s.ProxyCancelWaybill(order, bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonStrNotAcceptIntime) // 取消三方配送调度 s.ProxyCancelWaybill(order, bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonStrNotAcceptIntime+"15") // 取消三方配送调度
s.SelfDeliverDelivering(order, "自配送中") s.SelfDeliverDelivering(order, "自配送中")
s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, switch2SelfDeliverRetryCount, switch2SelfDeliverRetryGap) // 转自送 s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, switch2SelfDeliverRetryCount, switch2SelfDeliverRetryGap) // 转自送
s.SelfDeliverDelivered(order, "自送或三方") // 取消当前运单调度 s.SelfDeliverDelivered(order, "自送或三方") // 取消当前运单调度
@@ -533,7 +533,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
if !model.IsOrderHaveOwnWaybill(order) { // 既有运单不是购物平台运单 if !model.IsOrderHaveOwnWaybill(order) { // 既有运单不是购物平台运单
oldBill := savedOrderInfo.waybills[order.WaybillVendorID] oldBill := savedOrderInfo.waybills[order.WaybillVendorID]
if oldBill != nil { if oldBill != nil {
s.ProxyCancelWaybill(order, oldBill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonStrNotAcceptIntime) s.ProxyCancelWaybill(order, oldBill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonStrNotAcceptIntime+"16")
} else { } else {
globals.SugarLogger.Warnf("OnWaybillStatusChanged bill:%v, oldBill is null, strange!!!", bill) globals.SugarLogger.Warnf("OnWaybillStatusChanged bill:%v, oldBill is null, strange!!!", bill)
} }

View File

@@ -33,7 +33,7 @@ func (s *DefScheduler) SelfDeliveringAndUpdateStatus(ctx *jxcontext.Context, ven
if savedOrderInfo != nil { if savedOrderInfo != nil {
order = savedOrderInfo.order order = savedOrderInfo.order
if err = s.isPossibleSwitch2SelfDelivery(order); err == nil { // 是否能转自送 if err = s.isPossibleSwitch2SelfDelivery(order); err == nil { // 是否能转自送
err = s.cancelOtherWaybillsCheckOrderDeliveryFlag(savedOrderInfo, nil, partner.CancelWaybillReasonOther, ctx.GetUserName()+""+partner.CancelWaybillReasonStrActive) err = s.cancelOtherWaybillsCheckOrderDeliveryFlag(savedOrderInfo, nil, partner.CancelWaybillReasonOther, ctx.GetUserName()+"17"+partner.CancelWaybillReasonStrActive)
if err == nil { if err == nil {
if model.IsOrderDeliveryByStore(order) { if model.IsOrderDeliveryByStore(order) {
if order.Status < model.OrderStatusDelivering { if order.Status < model.OrderStatusDelivering {
@@ -450,7 +450,7 @@ func (s *DefScheduler) CancelAll3rdWaybills(ctx *jxcontext.Context, vendorOrderI
// 取消三方运单,取消各平台单号信息,间隔一段时间后定时任务重新调度 // 取消三方运单,取消各平台单号信息,间隔一段时间后定时任务重新调度
savedOrderInfo := s.loadSavedOrderByID(vendorOrderID, vendorID, true) savedOrderInfo := s.loadSavedOrderByID(vendorOrderID, vendorID, true)
if savedOrderInfo != nil { if savedOrderInfo != nil {
err = s.cancelOtherWaybills(savedOrderInfo, nil, partner.CancelWaybillReasonOther, ctx.GetUserName()+":"+partner.CancelWaybillReasonStrActive) err = s.cancelOtherWaybills(savedOrderInfo, nil, partner.CancelWaybillReasonOther, ctx.GetUserName()+":18"+partner.CancelWaybillReasonStrActive)
} else { } else {
err = scheduler.ErrCanNotFindOrder err = scheduler.ErrCanNotFindOrder
} }

View File

@@ -433,6 +433,7 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
} }
func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) { func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
globals.SugarLogger.Debugf("========cancelReason :=%s %s", bill.VendorOrderID, cancelReason)
cancelReasonID = mtpsapi.CancelReasonMerchantOther cancelReasonID = mtpsapi.CancelReasonMerchantOther
if cancelReason == "" { if cancelReason == "" {
cancelReason = "顾客主动取消" cancelReason = "顾客主动取消"

View File

@@ -182,7 +182,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
for _, v := range wayBill { for _, v := range wayBill {
handlerInfo := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID) handlerInfo := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID)
if handlerInfo != nil { if handlerInfo != nil {
handlerInfo.Handler.CancelWaybill(v, 0, "订单转移被取消") handlerInfo.Handler.CancelWaybill(v, 0, "订单转移被取消10")
} }
} }
} }

View File

@@ -401,7 +401,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
// 取消三方运单 // 取消三方运单
waybill, _ := dao.GetWaybills(db, goodsOrder.VendorOrderID, []int64{model.VendorIDMTPS, model.VendorIDDada, model.VendorIDFengNiao, model.VendorIDUUPT, model.VendorIDSFPS}) waybill, _ := dao.GetWaybills(db, goodsOrder.VendorOrderID, []int64{model.VendorIDMTPS, model.VendorIDDada, model.VendorIDFengNiao, model.VendorIDUUPT, model.VendorIDSFPS})
for _, v := range waybill { for _, v := range waybill {
err = partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID).Handler.CancelWaybill(v, 0, "订单被取消了") err = partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID).Handler.CancelWaybill(v, 0, "订单被取消了11")
if err != nil { if err != nil {
partner.CurOrderManager.OnOrderMsg(goodsOrder, fmt.Sprintf("订单[%s]被取消了,运单[%s]取消失败Err: %s", goodsOrder.VendorOrderID, v.VendorWaybillID, err.Error()), "") partner.CurOrderManager.OnOrderMsg(goodsOrder, fmt.Sprintf("订单[%s]被取消了,运单[%s]取消失败Err: %s", goodsOrder.VendorOrderID, v.VendorWaybillID, err.Error()), "")
} else { } else {

View File

@@ -146,7 +146,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msgId string, msg interface{}) (retVal *
for _, v := range wayBill { for _, v := range wayBill {
if v.Status != model.WaybillStatusCanceled { if v.Status != model.WaybillStatusCanceled {
if handlerInfo := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID); handlerInfo != nil { if handlerInfo := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID); handlerInfo != nil {
if err := handlerInfo.Handler.CancelWaybill(v, 0, "订单被取消了"); err != nil { if err := handlerInfo.Handler.CancelWaybill(v, 0, "订单被取消了12"); err != nil {
partner.CurOrderManager.OnOrderMsg(goodsOrder, "", fmt.Sprintf("抖店订单取消时,取消运单异常:%s", err.Error())) partner.CurOrderManager.OnOrderMsg(goodsOrder, "", fmt.Sprintf("抖店订单取消时,取消运单异常:%s", err.Error()))
} }
} }