This commit is contained in:
richboo111
2022-10-27 18:28:31 +08:00
parent fce03afdc2
commit 09c703f138
5 changed files with 265 additions and 7 deletions

View File

@@ -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"`
}

View File

@@ -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"`
}

View File

@@ -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"`
}

View File

@@ -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"`
}

View File

@@ -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()