diff --git a/platformapi/tiktok_shop/sdk-golang/api/warehouse_getFences/request/warehouse_getFences_request.go b/platformapi/tiktok_shop/sdk-golang/api/warehouse_getFences/request/warehouse_getFences_request.go new file mode 100644 index 00000000..66952dcc --- /dev/null +++ b/platformapi/tiktok_shop/sdk-golang/api/warehouse_getFences/request/warehouse_getFences_request.go @@ -0,0 +1,50 @@ +package warehouse_getFences_request + +import ( + "encoding/json" + warehouse_getFences_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_getFences/response" + doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core" +) + +type WarehouseGetFencesRequest struct { + doudian_sdk.BaseDoudianOpApiRequest + Param *WarehouseGetFencesParam +} + +func (c *WarehouseGetFencesRequest) GetUrlPath() string { + return "/warehouse/getFences" +} + +func New() *WarehouseGetFencesRequest { + request := &WarehouseGetFencesRequest{ + Param: &WarehouseGetFencesParam{}, + } + request.SetConfig(doudian_sdk.GlobalConfig) + request.SetClient(doudian_sdk.DefaultDoudianOpApiClient) + return request + +} + +func (c *WarehouseGetFencesRequest) Execute(accessToken *doudian_sdk.AccessToken) (*warehouse_getFences_response.WarehouseGetFencesResponse, error) { + responseJson, err := c.GetClient().Request(c, accessToken) + if err != nil { + return nil, err + } + response := &warehouse_getFences_response.WarehouseGetFencesResponse{} + _ = json.Unmarshal([]byte(responseJson), response) + return response, nil + +} + +func (c *WarehouseGetFencesRequest) GetParamObject() interface{} { + return c.Param +} + +func (c *WarehouseGetFencesRequest) GetParams() *WarehouseGetFencesParam { + return c.Param +} + +type WarehouseGetFencesParam struct { + // 外部围栏id列表,不填则查全部 + OutFenceIdList []string `json:"out_fence_id_list"` +} diff --git a/platformapi/tiktok_shop/sdk-golang/api/warehouse_getFences/response/warehouse_getFences_response.go b/platformapi/tiktok_shop/sdk-golang/api/warehouse_getFences/response/warehouse_getFences_response.go new file mode 100644 index 00000000..6cb54ae1 --- /dev/null +++ b/platformapi/tiktok_shop/sdk-golang/api/warehouse_getFences/response/warehouse_getFences_response.go @@ -0,0 +1,82 @@ +package warehouse_getFences_response + +import ( + doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core" +) + +type WarehouseGetFencesResponse struct { + doudian_sdk.BaseDoudianOpApiResponse + Data *WarehouseGetFencesData `json:"data"` +} +type InnerItem struct { + // 经纬度列表,内圈为顺时针 + Vertices []VerticesItem_5_5 `json:"vertices"` +} +type InnerItem_4_4 struct { + // 经纬度列表,内圈为顺时针 + Vertices []VerticesItem `json:"vertices"` +} +type FencesItem struct { + // 外部围栏id + OutFenceId string `json:"out_fence_id"` + // 内部围栏id + FenceId int64 `json:"fence_id"` + // 形状 1. 圆 2:多边形 3:带洞多边形(兼容普通多边形 + Shape int32 `json:"shape"` + // 形状为圆的经纬度信息 + Circular *Circular `json:"circular"` + // 普通多边形 + Polygon *Polygon `json:"polygon"` + // 带洞多边形,可兼容普通多边形 + PolygonNew *PolygonNew `json:"polygon_new"` + // 多个多边形 + MultiPolygons []MultiPolygonsItem `json:"multi_polygons"` +} +type Center struct { + // 经度 + Longitude float64 `json:"longitude"` + // 纬度 + Latitude float64 `json:"latitude"` +} +type VerticesItem struct { + // 经度 + Longitude float64 `json:"longitude"` + // 纬度 + Latitude float64 `json:"latitude"` +} +type Outer struct { + // 经纬度列表,外圈为逆时针 + Vertices []VerticesItem `json:"vertices"` +} +type VerticesItem_5_5 struct { + // 经度 + Longitude string `json:"longitude"` + // 纬度 + Latitude string `json:"latitude"` +} +type PolygonNew struct { + // 带洞多边形的外圈数据 + Outer *Outer `json:"outer"` + // 带洞多边形的内圈数据,空表示普通多边形 + Inner []InnerItem `json:"inner"` +} +type MultiPolygonsItem struct { + // 带洞多边形的外圈数据 + Outer *Outer `json:"outer"` + // 带洞多边形的内圈数据,空表示普通多边形 + Inner []InnerItem_4_4 `json:"inner"` +} +type WarehouseGetFencesData struct { + // 围栏信息列表 + Fences []FencesItem `json:"fences"` +} +type Circular struct { + // 圆的中心经纬度 + Center *Center `json:"center"` + // 半径,单位 米 + Radius float64 `json:"radius"` +} +type Polygon struct { + // 多边形顶点的经纬度:逆时针 + Vertices []VerticesItem `json:"vertices"` +} diff --git a/platformapi/tiktok_shop/sdk-golang/api/warehouse_getWarehouseByStore/request/warehouse_getWarehouseByStore_request.go b/platformapi/tiktok_shop/sdk-golang/api/warehouse_getWarehouseByStore/request/warehouse_getWarehouseByStore_request.go new file mode 100644 index 00000000..8bb31e30 --- /dev/null +++ b/platformapi/tiktok_shop/sdk-golang/api/warehouse_getWarehouseByStore/request/warehouse_getWarehouseByStore_request.go @@ -0,0 +1,50 @@ +package warehouse_getWarehouseByStore_request + +import ( + "encoding/json" + warehouse_getWarehouseByStore_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_getWarehouseByStore/response" + doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core" +) + +type WarehouseGetWarehouseByStoreRequest struct { + doudian_sdk.BaseDoudianOpApiRequest + Param *WarehouseGetWarehouseByStoreParam +} + +func (c *WarehouseGetWarehouseByStoreRequest) GetUrlPath() string { + return "/warehouse/getWarehouseByStore" +} + +func New() *WarehouseGetWarehouseByStoreRequest { + request := &WarehouseGetWarehouseByStoreRequest{ + Param: &WarehouseGetWarehouseByStoreParam{}, + } + request.SetConfig(doudian_sdk.GlobalConfig) + request.SetClient(doudian_sdk.DefaultDoudianOpApiClient) + return request + +} + +func (c *WarehouseGetWarehouseByStoreRequest) Execute(accessToken *doudian_sdk.AccessToken) (*warehouse_getWarehouseByStore_response.WarehouseGetWarehouseByStoreResponse, error) { + responseJson, err := c.GetClient().Request(c, accessToken) + if err != nil { + return nil, err + } + response := &warehouse_getWarehouseByStore_response.WarehouseGetWarehouseByStoreResponse{} + _ = json.Unmarshal([]byte(responseJson), response) + return response, nil + +} + +func (c *WarehouseGetWarehouseByStoreRequest) GetParamObject() interface{} { + return c.Param +} + +func (c *WarehouseGetWarehouseByStoreRequest) GetParams() *WarehouseGetWarehouseByStoreParam { + return c.Param +} + +type WarehouseGetWarehouseByStoreParam struct { + // 门店id列表 + StoreIds []int64 `json:"store_ids"` +} diff --git a/platformapi/tiktok_shop/sdk-golang/api/warehouse_getWarehouseByStore/response/warehouse_getWarehouseByStore_response.go b/platformapi/tiktok_shop/sdk-golang/api/warehouse_getWarehouseByStore/response/warehouse_getWarehouseByStore_response.go new file mode 100644 index 00000000..d29cf3e5 --- /dev/null +++ b/platformapi/tiktok_shop/sdk-golang/api/warehouse_getWarehouseByStore/response/warehouse_getWarehouseByStore_response.go @@ -0,0 +1,56 @@ +package warehouse_getWarehouseByStore_response + +import ( + doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core" +) + +type WarehouseGetWarehouseByStoreResponse struct { + doudian_sdk.BaseDoudianOpApiResponse + Data *WarehouseGetWarehouseByStoreData `json:"data"` +} +type WarehouseGetWarehouseByStoreData struct { + // 仓信息map + WarehouseInfoMap map[int64][]WarehouseInfoMapItem `json:"warehouse_info_map"` +} +type WarehouseLocation struct { + // 一级地址ID + AddressId1 int64 `json:"address_id1"` + // 二级地址ID + AddressId2 int64 `json:"address_id2"` + // 三级地址ID + AddressId3 int64 `json:"address_id3"` + // 四级地址ID + AddressId4 int64 `json:"address_id4"` + // 一级地址名称 + AddressName1 string `json:"address_name1"` + // 二级地址名称 + AddressName2 string `json:"address_name2"` + // 三级地址名称 + AddressName3 string `json:"address_name3"` + // 四级地址名称 + AddressName4 string `json:"address_name4"` +} +type WarehouseInfoMapItem struct { + // 仓id + WarehouseId int64 `json:"warehouse_id"` + // 外部仓id + OutWarehouseId string `json:"out_warehouse_id"` + // 仓名称 + Name string `json:"name"` + // 仓介绍 + Introduction string `json:"introduction"` + // 仓地址信息 + WarehouseLocation *WarehouseLocation `json:"warehouse_location"` + // 详细地址 + AddressDetail string `json:"address_detail"` + // 更新时间 + UpdateTime int64 `json:"update_time"` + // 创建时间 + CreateTime int64 `json:"create_time"` + // 店铺id + ShopId int64 `json:"shop_id"` + // 仓类型 + WarehouseType int64 `json:"warehouse_type"` + // 绑定的外部围栏ID列表 + OutFenceIds []string `json:"out_fence_ids"` +} diff --git a/platformapi/tiktok_shop/tiktok_api/store.go b/platformapi/tiktok_shop/tiktok_api/store.go index e603aa27..f1710055 100644 --- a/platformapi/tiktok_shop/tiktok_api/store.go +++ b/platformapi/tiktok_shop/tiktok_api/store.go @@ -2,6 +2,7 @@ package tiktok_api import ( "errors" + "fmt" address_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_create/request" address_create_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_create/response" address_getAreasByProvince_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_getAreasByProvince/request" @@ -42,6 +43,8 @@ import ( warehouse_createBatch_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_createBatch/response" warehouse_createFence_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_createFence/request" warehouse_createFence_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_createFence/response" + warehouse_getWarehouseByStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_getWarehouseByStore/request" + warehouse_getWarehouseByStore_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_getWarehouseByStore/response" warehouse_list_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_list/request" warehouse_list_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_list/response" warehouse_setFence_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_setFence/request" @@ -172,17 +175,13 @@ func (a *API) StoreQuerySaleLimitTemp(storeId int64) (int64, error) { if err != nil { return 0, err } - if result.Code != RequestSuccessCode { return 0, errors.New(result.SubMsg) } - if result.Data == nil || len(result.Data.StoreSaleLimits) == 0 { return 0, errors.New("未绑定限售模板,请先绑定") } - return result.Data.StoreSaleLimits[0].SaleLimitId, nil - } // 创建运费模板 @@ -194,7 +193,7 @@ func (a *API) FreightTemplateCreate(param *freightTemplate_create_request.Freigh return nil, err } if response.Code != RequestSuccessCode { - return nil, errors.New(response.SubMsg) + return nil, errors.New(response.Msg + "," + response.SubMsg) } return response.Data, nil } @@ -291,7 +290,7 @@ func (a *API) CreateWarehouse(param *warehouse_create_request.WarehouseCreatePar return nil, err } if response.Code != RequestSuccessCode { - return nil, errors.New(response.SubMsg) + return nil, errors.New(response.Msg + "," + response.SubMsg) } return response.Data, nil } @@ -310,6 +309,23 @@ func (a *API) StoreBindWarehouse(param *warehouse_bindStore_request.WarehouseBin return response.Data, nil } +//获取门店绑定的仓库信息 +func (a *API) GetWarehouseByStore(storeID int64) (map[int64][]warehouse_getWarehouseByStore_response.WarehouseInfoMapItem, error) { + request := warehouse_getWarehouseByStore_request.New() + request.Param.StoreIds = append(request.Param.StoreIds, storeID) + response, err := request.Execute(a.accessTokenObj) + if err != nil { + return nil, err + } + if response.Code != RequestSuccessCode { + return nil, errors.New(response.Msg + "," + response.SubMsg) + } + if len(response.Data.WarehouseInfoMap) == 0 { + return nil, errors.New(fmt.Sprintf("门店%d 暂时未绑定仓库,请进行绑定!", storeID)) + } + return response.Data.WarehouseInfoMap, nil +} + //创建电子围栏 func (a *API) CreateFence(param *warehouse_createFence_request.WarehouseCreateFenceParam) (*warehouse_createFence_response.WarehouseCreateFenceData, error) { request := warehouse_createFence_request.New() @@ -366,8 +382,12 @@ func (a *API) WarehouseBindFence(param *warehouse_bindFences_request.WarehouseBi return nil } -//address +// 获取仓库(即门店)绑定电子围栏 +func (a *API) GetFence(warehouseID int) { +} + +//address //门店新增查询发货地址 func (a *API) AddressCreate(param *address_create_request.AddressCreateParam) (*address_create_response.AddressCreateData, error) { request := address_create_request.New()