Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop

This commit is contained in:
richboo111
2023-02-16 10:04:28 +08:00
10 changed files with 181 additions and 91 deletions

View File

@@ -1,6 +1,7 @@
package ebai
import (
"errors"
"fmt"
"math"
"strings"
@@ -387,23 +388,36 @@ func (p *PurchaseHandler) ConfirmReceiveGoods(ctx *jxcontext.Context, order *mod
// 将订单从购物平台配送转为自送
func (p *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) {
if globals.EnableEbaiStoreWrite {
if order.DeliveryType == model.OrderDeliveryTypePlatform {
if err = api.EbaiAPI.OrderSwitchselfdelivery(order.VendorOrderID); err != nil {
if strings.Contains(err.Error(), "301251") {
api.EbaiAPI.OrderCancelDelivery(order.VendorOrderID) // 取消呼叫众包骑手
}
if utils.IsErrMatch(err, "301251", nil) {
if deliveryStatus, err2 := api.EbaiAPI.OrderDeliveryGet(order.VendorOrderID); err2 == nil {
deliveryStatus := utils.Int64ToStr(utils.MustInterface2Int64(deliveryStatus["status"]))
if deliveryStatus == ebaiapi.WaybillStatusSelfDelivery {
err = nil
} else if deliveryStatus == ebaiapi.WaybillStatusDeliveryCancled {
p.trySyncCancelStatus(order.VendorOrderID)
}
}
}
}
deliveryStatusObj, _ := api.EbaiAPI.OrderDeliveryGet(order.VendorOrderID)
deliveryStatus := utils.Int64ToStr(utils.MustInterface2Int64(deliveryStatusObj["status"]))
switch deliveryStatus {
case ebaiapi.WaybillStatusSelfDelivery:
err = nil
case ebaiapi.WaybillStatusDeliveryCancled:
p.trySyncCancelStatus(order.VendorOrderID)
case ebaiapi.WaybillStatusNew, ebaiapi.WaybillStatusRequestDelivery, ebaiapi.WaybillStatusWait4Courier:
err = api.EbaiAPI.OrderCancelDelivery(order.VendorOrderID) // 取消呼叫众包骑手
case ebaiapi.WaybillStatusCourierAccepted:
err = errors.New("骑手已接单,无法转自送")
}
//if order.DeliveryType == model.OrderDeliveryTypePlatform {
// if err = api.EbaiAPI.OrderSwitchselfdelivery(order.VendorOrderID); err != nil {
// if strings.Contains(err.Error(), "301251") {
// api.EbaiAPI.OrderCancelDelivery(order.VendorOrderID) // 取消呼叫众包骑手
// }
// if utils.IsErrMatch(err, "301251", nil) {
// if deliveryStatus, err2 := api.EbaiAPI.OrderDeliveryGet(order.VendorOrderID); err2 == nil {
// deliveryStatus := utils.Int64ToStr(utils.MustInterface2Int64(deliveryStatus["status"]))
// if deliveryStatus == ebaiapi.WaybillStatusSelfDelivery {
// err = nil
// } else if deliveryStatus == ebaiapi.WaybillStatusDeliveryCancled {
// p.trySyncCancelStatus(order.VendorOrderID)
// }
// }
// }
// }
//}
}
if err == nil {
// 饿百不会发送配送中,模拟发送