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

This commit is contained in:
richboo111
2023-11-29 17:50:23 +08:00
17 changed files with 196 additions and 327 deletions

View File

@@ -83,10 +83,10 @@ func (c *DeliveryHandler) OnWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap
func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaapi.CallbackResponse) {
order, goodsOrder := c.callbackMsg2Waybill(msg)
store, _ := dao.GetStoreDetail(dao.GetDB(), goodsOrder.JxStoreID, goodsOrder.VendorID, goodsOrder.VendorOrgCode)
switch msg.OrderStatus {
case dadaapi.OrderStatusWaitingForAccept:
dadaOrder, err := api.DadaAPI.QueryOrderInfo(msg.OrderID)
if err == nil {
if dadaOrder, err2 := api.DadaAPI.QueryOrderInfo(msg.OrderID); err2 == nil {
order.ActualFee = jxutils.StandardPrice2Int(dadaOrder.ActualFee)
order.DesiredFee = jxutils.StandardPrice2Int(dadaOrder.DeliveryFee) + int64(store.FreightMarkup)
}
@@ -94,7 +94,7 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap
case dadaapi.OrderStatusAccepted:
order.Status = model.WaybillStatusCourierAssigned
order.Remark = order.CourierName + "" + order.CourierMobile
if dadaOrder, err := api.DadaAPI.QueryOrderInfo(msg.OrderID); err == nil {
if dadaOrder, err2 := api.DadaAPI.QueryOrderInfo(msg.OrderID); err2 == nil {
order.ActualFee = jxutils.StandardPrice2Int(dadaOrder.ActualFee)
order.DesiredFee = jxutils.StandardPrice2Int(dadaOrder.DeliveryFee) + int64(store.FreightMarkup)
}
@@ -116,7 +116,8 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap
switch order.OrderVendorID {
case model.VendorIDDD:
tiktokStatusPush(order, msg.OrderStatus)
Lng, Lat, _ := partner.GetRidderPositionGetter(order.WaybillVendorID).GetRidderPosition(nil, order.VendorOrderID, order.VendorOrderID, order.VendorWaybillID, order.VendorWaybillID2)
tiktokStatusPush(order, msg.OrderStatus, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat))
case model.VendorIDMTWM, model.VendorIDTaoVegetable:
delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新
if goodsOrder.VendorID == model.VendorIDTaoVegetable && msg.OrderStatus == dadaapi.OrderStatusAccepted {
@@ -128,15 +129,17 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap
}
// 抖音订单状态回传
func tiktokStatusPush(order *model.Waybill, status int) {
func tiktokStatusPush(order *model.Waybill, status int, lng, lat string) {
result := &utils.RiderInfo{
OrderId: order.VendorOrderID,
ThirdCarrierOrderId: order.VendorOrderID,
ThirdCarrierOrderId: order.VendorWaybillID,
CourierName: order.CourierName,
CourierPhone: order.CourierMobile,
LogisticsStatus: order.Status,
OpCode: "",
LogisticsProviderCode: utils.DaDaCode,
Longitude: lng,
Latitude: lat,
}
switch status {

View File

@@ -310,7 +310,8 @@ func OnWaybillMsg(msg *fnpsapi.OrderStatusNottify, resultParam *fnpsapi.ShortSta
switch order.OrderVendorID {
case model.VendorIDDD:
tiktokStatusPush(order, orderStatus)
Lng, Lat, _ := partner.GetRidderPositionGetter(order.WaybillVendorID).GetRidderPosition(nil, order.VendorOrderID, order.VendorOrderID, order.VendorWaybillID, order.VendorWaybillID2)
tiktokStatusPush(order, orderStatus, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat))
case model.VendorIDMTWM, model.VendorIDTaoVegetable:
delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新
if good.VendorID == model.VendorIDTaoVegetable && cc.OrderStatus == fnpsapi.OrderStatusAssigned {
@@ -321,15 +322,17 @@ func OnWaybillMsg(msg *fnpsapi.OrderStatusNottify, resultParam *fnpsapi.ShortSta
}
// 抖音订单状态回传
func tiktokStatusPush(order *model.Waybill, orderStatus int64) {
func tiktokStatusPush(order *model.Waybill, orderStatus int64, lng, lat string) {
result := &utils.RiderInfo{
OrderId: order.VendorOrderID,
ThirdCarrierOrderId: order.VendorOrderID,
ThirdCarrierOrderId: order.VendorWaybillID,
CourierName: order.CourierName,
CourierPhone: order.CourierMobile,
LogisticsStatus: order.Status,
OpCode: "",
LogisticsProviderCode: utils.FnPsCode,
Longitude: lng,
Latitude: lat,
}
switch orderStatus {

View File

@@ -141,7 +141,8 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m
err := mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus)
switch order.OrderVendorID {
case model.VendorIDDD:
pushMTPSToTiktok(msg.Status, order)
Lng, Lat, _ := partner.GetRidderPositionGetter(order.WaybillVendorID).GetRidderPosition(nil, order.VendorOrderID, order.VendorOrderID, order.VendorWaybillID, order.VendorWaybillID2)
pushMTPSToTiktok(msg.Status, order, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat))
case model.VendorIDMTWM, model.VendorIDTaoVegetable:
delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新
if goodsOrder.VendorID == model.VendorIDTaoVegetable && msg.Status == mtpsapi.OrderStatusAccepted {
@@ -152,7 +153,7 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m
return err
}
func pushMTPSToTiktok(msgStatus int, order *model.Waybill) {
func pushMTPSToTiktok(msgStatus int, order *model.Waybill, lng, lat string) {
result := &utils.RiderInfo{
OrderId: order.VendorOrderID,
ThirdCarrierOrderId: order.VendorOrderID,
@@ -161,6 +162,8 @@ func pushMTPSToTiktok(msgStatus int, order *model.Waybill) {
LogisticsProviderCode: utils.MTPsCode,
LogisticsStatus: order.Status,
OpCode: "",
Longitude: lng,
Latitude: lat,
}
switch msgStatus {

View File

@@ -440,7 +440,8 @@ func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackRespons
switch order.OrderVendorID {
case model.VendorIDDD:
tiktokStatusPush(order, orderStatus)
Lng, Lat, _ := partner.GetRidderPositionGetter(order.WaybillVendorID).GetRidderPosition(nil, order.VendorOrderID, order.VendorOrderID, order.VendorWaybillID, order.VendorWaybillID2)
tiktokStatusPush(order, orderStatus, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat))
case model.VendorIDTaoVegetable, model.VendorIDMTWM:
delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新
if good.VendorID == model.VendorIDTaoVegetable && orderStatus == sfps2.OrderStatusTakeOrder {
@@ -450,15 +451,17 @@ func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackRespons
return sfps2.Err2CallbackResponse(nil)
}
func tiktokStatusPush(order *model.Waybill, orderStatus int64) {
func tiktokStatusPush(order *model.Waybill, orderStatus int64, lng, lat string) {
result := &utils.RiderInfo{
OrderId: order.VendorOrderID,
ThirdCarrierOrderId: order.VendorOrderID,
CourierName: order.CourierName,
CourierPhone: order.CourierMobile,
LogisticsProviderCode: "10002",
LogisticsProviderCode: utils.SFPSCode,
LogisticsStatus: order.Status,
OpCode: "",
Latitude: lat,
Longitude: lng,
}
switch orderStatus {
case sfps2.OrderStatusNewOrder:

View File

@@ -414,7 +414,8 @@ func OnWaybillMsg(req *uuptapi.WaybillCallbackParam) (resp *uuptapi.CallbackResp
//推送抖音
switch param.OrderVendorID {
case model.VendorIDDD:
tiktokStatusPush(param, req.State)
Lng, Lat, _ := partner.GetRidderPositionGetter(param.WaybillVendorID).GetRidderPosition(nil, param.VendorOrderID, param.VendorOrderID, param.VendorWaybillID, param.VendorWaybillID2)
tiktokStatusPush(param, req.State, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat))
case model.VendorIDMTWM, model.VendorIDTaoVegetable:
delivery.GetOrderRiderInfoToPlatform(param.VendorOrderID, param.Status) // 骑手位置更新
if good.VendorID == model.VendorIDTaoVegetable && req.State == uuptapi.StateRMGrabsOrder {
@@ -424,15 +425,17 @@ func OnWaybillMsg(req *uuptapi.WaybillCallbackParam) (resp *uuptapi.CallbackResp
return uuptapi.Err2CallbackResponse(nil)
}
func tiktokStatusPush(param *model.Waybill, orderStatus string) {
func tiktokStatusPush(param *model.Waybill, orderStatus string, lng, lat string) {
result := &utils.RiderInfo{
OrderId: param.VendorOrderID,
ThirdCarrierOrderId: param.VendorOrderID,
CourierName: param.CourierName,
CourierPhone: param.CourierMobile,
LogisticsProviderCode: "10002",
LogisticsProviderCode: utils.UUPTCode,
LogisticsStatus: param.Status,
OpCode: "",
Longitude: lng,
Latitude: lat,
}
switch orderStatus {
case uuptapi.StateConfirmSuccess: //下单成功

View File

@@ -665,7 +665,7 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod
ReasonRemarks: reason,
}
refundProductList := make([]*ebaiapi.RefundProductList, 0, 0)
date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
date, _, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
for _, v := range date {
v2 := v.(map[string]interface{})
refundProduct := &ebaiapi.RefundProductList{

View File

@@ -242,7 +242,7 @@ func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *mod
ReasonRemarks: reason,
}
refundProductList := make([]*ebaiapi.RefundProductList, 0, 0)
date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
date, _, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
for _, v := range date {
v2 := v.(map[string]interface{})
refundProduct := &ebaiapi.RefundProductList{
@@ -303,24 +303,19 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
ReasonCode: "",
ReasonRemarks: reason,
}
date, err := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
date, removerAll, err := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
if err != nil {
return err
}
refundProductList := make([]*ebaiapi.RefundProductList, 0, 0)
removerAll := false
if date != nil && len(date) != model.NO {
for k, v := range date {
for _, v := range date {
v2 := v.(map[string]interface{})
refundProduct := &ebaiapi.RefundProductList{
SubBizOrderId: v2["sub_biz_order_id"].(string),
PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)),
}
// 全退
if k == model.NO && utils.MustInterface2Int64(v2["is_refund_all"]) == model.YES {
removerAll = true
}
switch utils.MustInterface2Int64(v2["fund_calculate_type"]) {
case 0:
refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"]))
@@ -359,9 +354,22 @@ func orderSkus2AfsSkus(refundSkuList []*model.OrderSku) (removeSkuList []*ebaiap
func (c *PurchaseHandler) GetOrderAfsInfo(ctx *jxcontext.Context, vendorOrderID, afsOrderID string) (orderAfsInfo *partner.OrderAfsInfo, err error) {
orderAfsInfo = &partner.OrderAfsInfo{}
if result, err := api.EbaiAPI.OrderPartRefundGet(vendorOrderID); err == nil {
result, _, err := api.EbaiAPI.GetReverseOrder(vendorOrderID)
if err == nil {
orderAfsInfo.VendorOrderID = vendorOrderID
orderAfsInfo.AfsTotalShopMoney = utils.MustInterface2Int64(result["shop_fee"])
var afsTotalShopMoney int64 = 0
for _, v := range result {
v2 := v.(map[string]interface{})
afsTotalShopMoney += utils.MustInterface2Int64(v2["refund_user_amount"])
}
orderAfsInfo.AfsTotalShopMoney = afsTotalShopMoney
}
return orderAfsInfo, err
//orderAfsInfo = &partner.OrderAfsInfo{}
//if result, err := api.EbaiAPI.OrderPartRefundGet(vendorOrderID) ;err == nil {
// orderAfsInfo.VendorOrderID = vendorOrderID
// orderAfsInfo.AfsTotalShopMoney = utils.MustInterface2Int64(result["shop_fee"])
//}
//return orderAfsInfo, err
}

View File

@@ -342,8 +342,7 @@ func (p *PurchaseHandler) RefreshAllStoresID(ctx *jxcontext.Context, parentTask
}
}
if globals.EnableEbaiStoreWrite {
fBaiduIDs, fShopIDs, err1 := FilterStoreRel(baiduShopIDs)
globals.SugarLogger.Debugf("RefreshAllStoresID FilterStoreRel fBaiduIDs====%d fShopIDs====%d err====%v", fBaiduIDs, fShopIDs, err1)
fBaiduIDs, fShopIDs, _ := FilterStoreRel(baiduShopIDs)
err = api.EbaiAPI.ShopIDBatchUpdate(fBaiduIDs, fShopIDs)
}
return nil, err

View File

@@ -187,6 +187,10 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in
if globals.EnableEbaiStoreWrite {
if catName, catSeq, isCheck := getCheckExdStoreNameAndSeq(storeID, storeCat); !isCheck {
err = api.EbaiAPI.ShopCategoryUpdate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.VendorCatID, 0), formatCatName(catName), jxCatSeq2Ebai(catSeq))
// 修改分类时错误:自定义分类ID(category_id)不存在(降低api调用错误)
if err != nil && strings.Contains(err.Error(), "自定义分类ID(category_id)不存在") {
dao.SetStoreCategorySyncStatus(dao.GetDB(), model.VendorIDEBAI, []int{storeID}, []int{storeCat.StoreCatID}, 2)
}
}
// todo, 饿百将一个分类重复改名也会报分类名重复错特殊处理一下不过因为GetStoreCategory其实会拉取所有的门店分类是比较耗时的操作
if utils.IsErrMatch(err, "1", []string{"分类名称已经存在"}) {
@@ -231,8 +235,19 @@ func (p *PurchaseHandler) updateStoreSkus(ctx *jxcontext.Context, storeID int, v
_, err = api.EbaiAPI.SkuUpdate(ctx.GetTrackInfo(), strStoreID, utils.Str2Int64(storeSku.VendorSkuID), params)
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品基础信息")
// 本地商品存在饿百商品id,但是平台不存在该商品
if strings.Contains(err.Error(), "sku不存在") {
sql := ` UPDATE store_sku_bind SET ebai_id = 0,ebai_sync_status = 2 WHERE store_id = ? AND sku_id = ?`
param := []interface{}{storeID, storeSku.SkuID}
dao.ExecuteSQL(dao.GetDB(), sql, param...)
} else if strings.Contains(err.Error(), "商品禁止售卖不允许上架,请去商品审核模块进行修改") {
sql := ` UPDATE store_sku_bind SET ebai_sync_status = 0 WHERE store_id = ? AND sku_id = ?`
param := []interface{}{storeID, storeSku.SkuID}
dao.ExecuteSQL(dao.GetDB(), sql, param...)
}
}
if ebaiExSkuCatMap[storeSku.SkuID] == 0 && ebaiExSkuCatMap2[storeSku.SkuID] == 0 && ebaiExSkuCatMap3[storeSku.SkuID] == 0 {
if ebaiExSkuCatMap[storeSku.SkuID] == 0 && ebaiExSkuCatMap2[storeSku.SkuID] == 0 && ebaiExSkuCatMap3[storeSku.SkuID] == 0 && err == nil {
if isNeedMapCat && !isExd {
utils.CallFuncAsync(func() {
api.EbaiAPI.SkuShopCategoryMap(strStoreID, utils.Str2Int64(storeSku.VendorSkuID), "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku))
@@ -315,7 +330,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
vendorSkuIDs := partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDIntList()
if globals.EnableEbaiStoreWrite {
var opResult *ebaiapi.BatchOpResult
if status == model.SkuStatusNormal {
if status == model.SkuStatusNormal { // 可售上架
if len(vendorSkuIDs) > 1 {
opResult, err = api.EbaiAPI.SkuOnline(ctx.GetTrackInfo(), utils.Int2Str(storeID), vendorSkuIDs, nil, nil)
} else if len(vendorSkuIDs) == 1 {
@@ -325,7 +340,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
}
return failedList, err
}
} else {
} else { // 下架
if len(vendorSkuIDs) > 1 {
opResult, err = api.EbaiAPI.SkuOffline(ctx.GetTrackInfo(), utils.Int2Str(storeID), vendorSkuIDs, nil, nil)
} else if len(vendorSkuIDs) == 1 {
@@ -389,6 +404,12 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品库存")
}
// 本地商品存在饿百商品id,但是平台不存在该商品
if err != nil && strings.Contains(err.Error(), "商品不存在") {
sql := ` UPDATE store_sku_bind SET ebai_id = 0,ebai_sync_status = 2 WHERE store_id = ? AND sku_id = ?`
param := []interface{}{storeID, storeSkuList[0].SkuID}
dao.ExecuteSQL(dao.GetDB(), sql, param...)
}
}
err = nil
}
@@ -677,6 +698,12 @@ func SelectStoreSkuListByOpResult(storeSkuList []*partner.StoreSkuInfo, opResult
VendoreName: vendorName,
SyncType: syncType,
}
// 本地商品存在饿百商品id,但是平台不存在该商品
if strings.Contains(opResultMap[utils.Str2Int64(v.VendorSkuID)], "商品不存在") {
sql := ` UPDATE store_sku_bind SET ebai_id = 0,ebai_sync_status = 2 WHERE store_id = ? AND sku_id = ?`
param := []interface{}{storeID, v.SkuID}
dao.ExecuteSQL(dao.GetDB(), sql, param...)
}
selectedStoreSkuList = append(selectedStoreSkuList, opFailed)
}
}

View File

@@ -351,8 +351,9 @@ func Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) {
order.Skus = append(order.Skus, sku)
}
// 包装袋金额设置
store, _ := dao.GetStoreDetail(dao.GetDB(), order.JxStoreID, order.VendorID, order.VendorOrgCode)
store, _ := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), order.VendorStoreID, order.VendorID, order.VendorOrgCode)
order.PackagePrice = store.PackageSetting
order.JxStoreID = store.ID
jxutils.RefreshOrderSkuRelated(order)
return order
}

View File

@@ -460,10 +460,17 @@ func (c *PurchaseHandler) UpdateStoreBoxFee(ctx *jxcontext.Context, vendorOrgCod
}
func (c *PurchaseHandler) UpdateStoreLineStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, lineStatus int) (err error) {
if lineStatus == model.StoreStatusOpened {
err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOnline(vendorStoreID)
} else {
err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOffline(vendorStoreID)
mtwmApi := getAPI(vendorOrgCode, storeID, vendorStoreID)
switch lineStatus {
case model.StoreStatusOpened:
if err = mtwmApi.PoiOnline(vendorStoreID); err != nil {
err = mtwmApi.PoiOpen(vendorStoreID)
}
default:
if err = mtwmApi.PoiOffline(vendorStoreID); err != nil {
err = mtwmApi.PoiClose(vendorStoreID)
}
}
return err
}

View File

@@ -13,6 +13,7 @@ import (
// OnCallbackMsg 淘宝回调接口
func OnCallbackMsg(orderStatus, orderId string, msg interface{}) (response *tao_vegetable.CallBackResult) {
if CurPurchaseHandler != nil {
// return CurPurchaseHandler.onOrderMsg(orderStatus, orderId, msg)
jxutils.CallMsgHandlerAsync(func() {
response = CurPurchaseHandler.onOrderMsg(orderStatus, orderId, msg)
}, jxutils.ComposeUniversalOrderID(orderId, model.VendorIDTaoVegetable))

View File

@@ -587,20 +587,35 @@ func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName s
}
}
}
//转门店自送通知抖音发货
err = api.OrderDelivering(&order_logisticsAdd_request.OrderLogisticsAddParam{
logisticsAdd := &order_logisticsAdd_request.OrderLogisticsAddParam{
OrderId: order.VendorOrderID,
Company: "",
CompanyCode: "chengdouruoxi",
CompanyCode: "",
LogisticsCode: order.VendorOrderID,
IsRefundReject: false,
IsRejectRefund: false,
SerialNumberList: nil,
AddressId: 0,
StoreId: utils.Str2Int64(order.VendorStoreID),
})
return err
}
switch order.WaybillVendorID {
case model.VendorIDDada:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeDaDa
case model.VendorIDMTPS:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeMeiTuan
case model.VendorIDFengNiao:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeFengNiao
case model.VendorIDSFPS:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeSF
case model.VendorIDUUPT:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeUU
case model.VendorJXFakeWL, -1:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeMerchant
default:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeMerchant
}
//转门店自送通知抖音发货
return api.OrderDelivering(logisticsAdd)
}
// Swtich2SelfDelivered 暂无自送完成