diff --git a/business/jxcallback/scheduler/basesch/basesch.go b/business/jxcallback/scheduler/basesch/basesch.go index 8bc365d43..77840370f 100644 --- a/business/jxcallback/scheduler/basesch/basesch.go +++ b/business/jxcallback/scheduler/basesch/basesch.go @@ -12,7 +12,6 @@ import ( "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" - "strings" ) var ( @@ -114,20 +113,22 @@ func (c *BaseScheduler) Swtich2SelfDelivered(order *model.GoodsOrder, userName s func (c *BaseScheduler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) { globals.SugarLogger.Infof("SelfDeliverDelivering orderID:%s", order.VendorOrderID) - if /*order.LockStatus == model.OrderStatusUnknown && */ order.Status == model.OrderStatusFinishedPickup { + if order.Status == model.OrderStatusFinishedPickup { if c.IsReallyCallPlatformAPI { 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) { partner.CurOrderManager.OnOrderMsg(order, "SelfDeliverDelivering 调用[SelfDeliverDelivering]转自送", err.Error()) - if strings.Contains(err.Error(), "1047") { - err2 := c.Swtich2SelfDeliver(order, userName) - bill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID) - c.CancelWaybill(bill, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive) - partner.CurOrderManager.OnOrderMsg(order, "SelfDeliverDelivering 调用[Swtich2SelfDeliver]转自送", err2.Error()) - } } + + // 转自送同时取消平台订单(美团才做这个操作) + resason, err := partner.GetPurchasePlatformFromVendorID(order.VendorID).GetCancelDeliveryReason(order) + globals.SugarLogger.Infof("SelfDeliverDelivering resason:%s", resason) + partner.CurOrderManager.OnOrderMsg(order, "订单转自送取消美团平台发单获取理由失败", err.Error()) + // 取消美团外卖配送,转自送 + err = partner.GetPurchasePlatformFromVendorID(order.VendorID).CancelLogisticsByWmOrderId(order, "101512", "已选择其他配送方式", order.VendorStoreID, order.VendorOrderID) + partner.CurOrderManager.OnOrderMsg(order, "取消美团外卖,转用三方配送", err.Error()) + return err }, "SelfDeliverDelivering orderID:%s", order.VendorOrderID) if err == nil { // 因为有些平台设置配送中后,不会发送订单在配送中消息过来,所以成功后就强制设置状态为配送中 diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index e4aff9e47..ba61c6f4d 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -1039,13 +1039,12 @@ func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill2 func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInfo, bill *model.Waybill, retryCount int, duration time.Duration) { order := savedOrderInfo.order - if order.WaybillVendorID != order.VendorID { // && err != scheduler.ErrOrderStatusAlreadySatisfyCurOperationELM && err != scheduler.ErrOrderStatusAlreadySatisfyCurOperationMTWM + if order.WaybillVendorID != order.VendorID { if err := s.Swtich2SelfDeliver(order, "Swtich2SelfDeliver转自送"); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation) { //301251饿了转自送 1047美团混合送 partner.CurOrderManager.OnOrderMsg(order, "调用[swtich2SelfDeliverWithRetry]转自送", err.Error()) if retryCount > 0 { utils.AfterFuncWithRecover(duration, func() { jxutils.CallMsgHandlerAsync(func() { - s.SelfDeliverDelivering(order, "非专送、快送、混合送订单,转自送失败,调用deriving转自送") s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, retryCount-1, duration) }, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID)) }) diff --git a/business/partner/partner_order.go b/business/partner/partner_order.go index 2f286621f..5cb961e36 100644 --- a/business/partner/partner_order.go +++ b/business/partner/partner_order.go @@ -16,6 +16,21 @@ type OrderAfsInfo struct { AfsTotalShopMoney int64 `json:"afsTotalShopMoney"` } +type ReasonList struct { + Code string `json:"code"` + Content string `json:"content"` + PreCancelCode int `json:"preCancelCode"` + PreCancelMsg string `json:"preCancelMsg"` +} + +// 取消跑腿配送请求参数 +type CancelOrderParam struct { + ReasonCode string `json:"reason_code"` // 取消原因code 请开发者一定要先调用 + DetailContent string `json:"detail_content"` // 取消原因 + AppPoiCode string `json:"app_poi_code"` // 门店号 + OrderId string `json:"order_id"` // 订单id +} + type IPurchasePlatformOrderHandler interface { Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) GetOrder(vendorOrgCode, vendorOrderID, vendorStoreID string) (order *model.GoodsOrder, err error) @@ -40,6 +55,11 @@ type IPurchasePlatformOrderHandler interface { // 完全自送的门店表示开始配送 SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) + // 转自配送时取消非专送混合送门店取消理由 + GetCancelDeliveryReason(order *model.GoodsOrder) (string, error) + // 取消美团外卖理由转使用三方配送 + CancelLogisticsByWmOrderId(order *model.GoodsOrder, reasonCode, detailContent, appPoiCode, orderId string) error + // 完全自送的门店表示配送完成 SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) @@ -68,7 +88,7 @@ type IPurchasePlatformOrderHandler interface { //投诉骑手 ComplaintRider(vendorOrderId string, resonID int, resonContent string) (err error) //推送订单骑手信息 - GetOrderRider(vendorOrgCode, vendorStoreID string, param map[string]interface{}) ( err error) + GetOrderRider(vendorOrgCode, vendorStoreID string, param map[string]interface{}) (err error) } type IAddWaybillTip interface { diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index 3d3b3aa07..5ccea1df1 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -760,3 +760,13 @@ func (c *PurchaseHandler) ConfirmSelfTake(ctx *jxcontext.Context, order *model.G func (c *PurchaseHandler) ComplaintRider(vendorOrderId string, resonID int, resonContent string) (err error) { return err } + +// 转自配送时取消非专送混合送门店取消理由 +func (c *PurchaseHandler) GetCancelDeliveryReason(order *model.GoodsOrder) (string, error) { + return "", nil +} + +// 取消美团外卖理由转使用三方配送 +func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, reasonCode, detailContent, appPoiCode, orderId string) error { + return nil +} diff --git a/business/partner/purchase/elm/order.go b/business/partner/purchase/elm/order.go index 4d94b4600..36f48a239 100644 --- a/business/partner/purchase/elm/order.go +++ b/business/partner/purchase/elm/order.go @@ -332,3 +332,13 @@ func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.Goods func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) { return err } + +// 转自配送时取消非专送混合送门店取消理由 +func (c *PurchaseHandler) GetCancelDeliveryReason(order *model.GoodsOrder) (string, error) { + return "", nil +} + +// 取消美团外卖理由转使用三方配送 +func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, reasonCode, detailContent, appPoiCode, orderId string) error { + return nil +} diff --git a/business/partner/purchase/gomei/order.go b/business/partner/purchase/gomei/order.go index b27f6ed92..c6743ab34 100644 --- a/business/partner/purchase/gomei/order.go +++ b/business/partner/purchase/gomei/order.go @@ -317,3 +317,13 @@ func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, vendorOrgCode strin func (c *PurchaseHandler) ComplaintRider(vendorOrderId string, resonID int, resonContent string) (err error) { return err } + +// 转自配送时取消非专送混合送门店取消理由 +func (c *PurchaseHandler) GetCancelDeliveryReason(order *model.GoodsOrder) (string, error) { + return "", nil +} + +// 取消美团外卖理由转使用三方配送 +func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, reasonCode, detailContent, appPoiCode, orderId string) error { + return nil +} diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index 5b1557391..ed67bb961 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -660,3 +660,13 @@ func (c *PurchaseHandler) ComplaintRider(vendorOrderId string, resonID int, reso } return err } + +// 转自配送时取消非专送混合送门店取消理由 +func (c *PurchaseHandler) GetCancelDeliveryReason(order *model.GoodsOrder) (string, error) { + return "", nil +} + +// 取消美团外卖理由转使用三方配送 +func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, reasonCode, detailContent, appPoiCode, orderId string) error { + return nil +} diff --git a/business/partner/purchase/jdshop/order.go b/business/partner/purchase/jdshop/order.go index 20d8a3059..fd849791a 100644 --- a/business/partner/purchase/jdshop/order.go +++ b/business/partner/purchase/jdshop/order.go @@ -316,3 +316,13 @@ func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, vendorOrgCode strin func (c *PurchaseHandler) ComplaintRider(vendorOrderId string, resonID int, resonContent string) (err error) { return err } + +// 转自配送时取消非专送混合送门店取消理由 +func (c *PurchaseHandler) GetCancelDeliveryReason(order *model.GoodsOrder) (string, error) { + return "", nil +} + +// 取消美团外卖理由转使用三方配送 +func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, reasonCode, detailContent, appPoiCode, orderId string) error { + return nil +} diff --git a/business/partner/purchase/jx/order.go b/business/partner/purchase/jx/order.go index f2a0541ef..ddfe29a97 100644 --- a/business/partner/purchase/jx/order.go +++ b/business/partner/purchase/jx/order.go @@ -140,3 +140,13 @@ func (c *PurchaseHandler) GetSelfTakeCode(ctx *jxcontext.Context, order *model.G func (c *PurchaseHandler) ComplaintRider(vendorOrderId string, resonID int, resonContent string) (err error) { return err } + +// 转自配送时取消非专送混合送门店取消理由 +func (c *PurchaseHandler) GetCancelDeliveryReason(order *model.GoodsOrder) (string, error) { + return "", nil +} + +// 取消美团外卖理由转使用三方配送 +func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, reasonCode, detailContent, appPoiCode, orderId string) error { + return nil +} diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 39bd8ce41..2147547a4 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -832,3 +832,17 @@ func (c *PurchaseHandler) ConfirmSelfTake(ctx *jxcontext.Context, order *model.G func (c *PurchaseHandler) ComplaintRider(vendorOrderId string, resonID int, resonContent string) (err error) { return err } + +// 转自配送时取消非专送混合送门店取消理由 +func (c *PurchaseHandler) GetCancelDeliveryReason(order *model.GoodsOrder) (string, error) { + reason, err := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").GetCancelDeliveryReason(utils.Str2Int64(order.VendorOrderID), order.VendorStoreID) + if err != nil { + return "", err + } + return reason, nil +} + +// 取消美团外卖理由转使用三方配送 +func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, reasonCode, detailContent, appPoiCode, orderId string) error { + return getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").CancelLogisticsByWmOrderId(reasonCode, detailContent, appPoiCode, orderId) +} diff --git a/business/partner/purchase/weimob/wsc/order.go b/business/partner/purchase/weimob/wsc/order.go index 7978f3b62..8b942f05a 100644 --- a/business/partner/purchase/weimob/wsc/order.go +++ b/business/partner/purchase/weimob/wsc/order.go @@ -307,3 +307,13 @@ func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.Goods func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) { return err } + +// 转自配送时取消非专送混合送门店取消理由 +func (c *PurchaseHandler) GetCancelDeliveryReason(order *model.GoodsOrder) (string, error) { + return "", nil +} + +// 取消美团外卖理由转使用三方配送 +func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, reasonCode, detailContent, appPoiCode, orderId string) error { + return nil +} diff --git a/business/partner/purchase/yb/order.go b/business/partner/purchase/yb/order.go index c87d42882..dd36157d0 100644 --- a/business/partner/purchase/yb/order.go +++ b/business/partner/purchase/yb/order.go @@ -91,3 +91,13 @@ func (c *PurchaseHandler) GetOrderAfsInfo(ctx *jxcontext.Context, vendorOrderID, func (c *PurchaseHandler) ComplaintRider(vendorOrderId string, resonID int, resonContent string) (err error) { return err } + +// 转自配送时取消非专送混合送门店取消理由 +func (c *PurchaseHandler) GetCancelDeliveryReason(order *model.GoodsOrder) (string, error) { + return "", nil +} + +// 取消美团外卖理由转使用三方配送 +func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, reasonCode, detailContent, appPoiCode, orderId string) error { + return nil +}