diff --git a/platformapi/tiktok_shop/sdk-golang/api/order_logisticsEdit/request/order_logisticsEdit_request.go b/platformapi/tiktok_shop/sdk-golang/api/order_logisticsEdit/request/order_logisticsEdit_request.go index 18faa5ee..7b064f3f 100644 --- a/platformapi/tiktok_shop/sdk-golang/api/order_logisticsEdit/request/order_logisticsEdit_request.go +++ b/platformapi/tiktok_shop/sdk-golang/api/order_logisticsEdit/request/order_logisticsEdit_request.go @@ -2,6 +2,8 @@ package order_logisticsEdit_request import ( "encoding/json" + order_logisticsEdit_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_logisticsEdit/response" + doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core" ) type OrderLogisticsEditRequest struct { diff --git a/platformapi/tiktok_shop/sdk-golang/api/order_logisticsEdit/response/order_logisticsEdit_response.go b/platformapi/tiktok_shop/sdk-golang/api/order_logisticsEdit/response/order_logisticsEdit_response.go index 9edbea71..9b07570e 100644 --- a/platformapi/tiktok_shop/sdk-golang/api/order_logisticsEdit/response/order_logisticsEdit_response.go +++ b/platformapi/tiktok_shop/sdk-golang/api/order_logisticsEdit/response/order_logisticsEdit_response.go @@ -1,5 +1,7 @@ package order_logisticsEdit_response +import doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core" + type OrderLogisticsEditResponse struct { doudian_sdk.BaseDoudianOpApiResponse Data *OrderLogisticsEditData `json:"data"` diff --git a/platformapi/tiktok_shop/tiktok_api/api_test.go b/platformapi/tiktok_shop/tiktok_api/api_test.go index 01a4b31f..4d4f5c42 100644 --- a/platformapi/tiktok_shop/tiktok_api/api_test.go +++ b/platformapi/tiktok_shop/tiktok_api/api_test.go @@ -97,7 +97,7 @@ func TestOrderStatusAndPsInfo(t *testing.T) { OpCode: TiktokLogisticsDELIVERED, } - a.OrderStatusAndPsInfoNew(utils.Struct2MapByJson(riderInfo)) + a.OrderStatusAndPsInfoNew(utils.Struct2MapByJson(riderInfo), "") } // diff --git a/platformapi/tiktok_shop/tiktok_api/logistics_express.go b/platformapi/tiktok_shop/tiktok_api/logistics_express.go index e9aabdc0..6a202fba 100644 --- a/platformapi/tiktok_shop/tiktok_api/logistics_express.go +++ b/platformapi/tiktok_shop/tiktok_api/logistics_express.go @@ -5,6 +5,7 @@ import ( "errors" instantShopping_notifyDeliveryStatus_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/instantShopping_notifyDeliveryStatus/request" logistics_indTrackPush_reqeust "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/logistics_indTrackPush/request" + order_logisticsEdit_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_logisticsEdit/request" token_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/token_create/request" token_create_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/token_create/response" doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core" @@ -169,8 +170,7 @@ func (a *APIExpress) OrderStatusAndPsInfoOld(param map[string]interface{}) error // OrderStatusAndPsInfoNew 三方配送同步骑手位置信息(新版本的运力回传) // 抖音物流信息和抖音小时达完全区分开(这边的appKey和APPSecret完全不同于小时达) // 新版本舍弃了物流链接平台的 appKey -//func (a *APIExpress) OrderStatusAndPsInfoNew(param map[string]interface{}) error { -func (a *API) OrderStatusAndPsInfoNew(param map[string]interface{}) error { +func (a *API) OrderStatusAndPsInfoNew(param map[string]interface{}, vendorStoreId string) error { // 组合参数 request := instantShopping_notifyDeliveryStatus_request.New() request.Param = &instantShopping_notifyDeliveryStatus_request.InstantShoppingNotifyDeliveryStatusParam{ @@ -186,25 +186,36 @@ func (a *API) OrderStatusAndPsInfoNew(param map[string]interface{}) error { request.Param.RiderPhone = utils.String2Pointer(param["courier_phone"].(string)) } - switch param["logistics_provider_code"].(string) { - case utils.DaDaCode: - request.Param.DistributionCode = TiktokDeliveryTypeDaDa - case utils.FnPsCode: - request.Param.DistributionCode = TiktokDeliveryTypeFengNiao - case utils.UUPTCode: - request.Param.DistributionCode = TiktokDeliveryTypeUU - case utils.SFPSCode: - request.Param.DistributionCode = TiktokDeliveryTypeSF - case utils.MTPsCode: - request.Param.DistributionCode = TiktokDeliveryTypeMeiTuan - case utils.MyselfPsCode: - request.Param.DistributionCode = TiktokDeliveryTypeMerchant - } + request.Param.DistributionCode = JxLogistics2Tiktok(param["logistics_provider_code"].(string)) request.Param.RiderLatitude = utils.String2Pointer(param["latitude"].(string)) request.Param.RiderLongitude = utils.String2Pointer(param["longitude"].(string)) request.Param.DistributionDeliveryId = param["third_carrier_order_id"].(string) + switch param["opcode"].(string) { case TiktokLogisticsStatusCALLRIDER: + // 已发货订单更换物流 + orderDetail, err := a.GetTiktokOrderDetail(param["order_id"].(string)) + if err != nil { + globals.SugarLogger.Debugf("TiktokLogisticsStatusCALLRIDER ERR=== %v", err) + return err + } + if orderDetail.OrderStatus >= CreateOrderStatusDelivery { + logisticsEdit := order_logisticsEdit_request.New() + logisticsEdit.Param = &order_logisticsEdit_request.OrderLogisticsEditParam{ + OrderId: param["order_id"].(string), + CompanyCode: JxLogistics2Tiktok(param["logistics_provider_code"].(string)), + LogisticsCode: param["third_carrier_order_id"].(string), + StoreId: utils.Str2Int64(vendorStoreId), + } + logisticsData, err := logisticsEdit.Execute(a.accessTokenObj) + if err != nil { + return err + } + if logisticsData.Code != RequestSuccessCode { + return errors.New("logisticsData err :" + request.Param.ShopOrderId + ":" + logisticsData.SubMsg + ":" + logisticsData.LogId) + } + } + request.Param.Status = 101 case TiktokLogisticsORDERRECEIVED: request.Param.Status = 102 @@ -229,3 +240,22 @@ func (a *API) OrderStatusAndPsInfoNew(param map[string]interface{}) error { } return nil } + +func JxLogistics2Tiktok(code string) string { + switch code { + case utils.DaDaCode, TiktokDeliveryTypeDaDa: + return TiktokDeliveryTypeDaDa + case utils.FnPsCode, TiktokDeliveryTypeFengNiao: + return TiktokDeliveryTypeFengNiao + case utils.UUPTCode, TiktokDeliveryTypeUU: + return TiktokDeliveryTypeUU + case utils.SFPSCode, TiktokDeliveryTypeSF: + return TiktokDeliveryTypeSF + case utils.MTPsCode, TiktokDeliveryTypeMeiTuan: + return TiktokDeliveryTypeMeiTuan + case utils.MyselfPsCode, TiktokDeliveryTypeMerchant: + return TiktokDeliveryTypeMerchant + default: + return TiktokDeliveryTypeMerchant + } +} diff --git a/platformapi/tiktok_shop/tiktok_api/settl_bill_detail_test.go b/platformapi/tiktok_shop/tiktok_api/settl_bill_detail_test.go index e3d9b8c2..b701b494 100644 --- a/platformapi/tiktok_shop/tiktok_api/settl_bill_detail_test.go +++ b/platformapi/tiktok_shop/tiktok_api/settl_bill_detail_test.go @@ -3,12 +3,14 @@ package tiktok_api import ( "fmt" order_getSettleBillDetailV3_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_getSettleBillDetailV3/request" + "io/ioutil" + "net/http" "strings" "testing" ) func TestBillDetail(t *testing.T) { - orderDetail, err := a.GetTiktokOrderDetail("6924377919564027693") + orderDetail, err := a.GetTiktokOrderDetail("6924475525382739211") if err != nil { fmt.Println(err) } @@ -29,7 +31,27 @@ func TestBillDetail(t *testing.T) { } func TestLen(t *testing.T) { - fmt.Println((57 & 1) != 0) - fmt.Println((57 & 64) != 0) - fmt.Println((0 & 8)) + url := "https://www.jxc4.com/v2/store/sku/UpdateStoresSkus" + + param := `` + payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"storeIDs\"\r\n\r\n[" + param + "]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"payload\"\r\n\r\n[{\"nameID\":8461,\"unitPrice\":2600},{\"nameID\":9325,\"unitPrice\":1800},{\"nameID\":15045,\"unitPrice\":500},{\"nameID\":15026,\"unitPrice\":450},{\"nameID\":15007,\"unitPrice\":220},{\"nameID\":15019,\"unitPrice\":700},{\"nameID\":8075561,\"unitPrice\":350},{\"nameID\":10247,\"unitPrice\":600},{\"nameID\":15055,\"unitPrice\":900},{\"nameID\":11044,\"unitPrice\":580},{\"nameID\":15021,\"unitPrice\":300},{\"nameID\":15042,\"unitPrice\":650},{\"nameID\":11479,\"unitPrice\":2600},{\"nameID\":8779,\"unitPrice\":1200},{\"nameID\":15066,\"unitPrice\":700},{\"nameID\":8077377,\"unitPrice\":2200},{\"nameID\":14984,\"unitPrice\":800},{\"nameID\":14993,\"unitPrice\":500},{\"nameID\":15095,\"unitPrice\":750},{\"nameID\":9105,\"unitPrice\":1100},{\"nameID\":15005,\"unitPrice\":300},{\"nameID\":15107,\"unitPrice\":500},{\"nameID\":15029,\"unitPrice\":520},{\"nameID\":15027,\"unitPrice\":1100}]\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"causeFlag\"\r\n\r\n16\r\n-----011000010111000001101001--\r\n\r\n") + + req, _ := http.NewRequest("PUT", url, payload) + + req.Header.Add("token", "TOKEN.V2.2452A93EEB9111EC9B06525400E86DC0.20231208-110713.localpass.E252DAB0957611EE96A5525400E86DC0.[18981810340]") + req.Header.Add("content-type", "multipart/form-data; boundary=---011000010111000001101001") + + res, _ := http.DefaultClient.Do(req) + + defer res.Body.Close() + body, _ := ioutil.ReadAll(res.Body) + + fmt.Println(res) + fmt.Println(string(body)) +} + +func TestName(t *testing.T) { + a := 1 + a = a | 1 + fmt.Println(a) }