1
This commit is contained in:
@@ -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 { // 因为有些平台设置配送中后,不会发送订单在配送中消息过来,所以成功后就强制设置状态为配送中
|
||||
|
||||
@@ -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))
|
||||
})
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user