125 lines
6.8 KiB
Go
125 lines
6.8 KiB
Go
package jdshopapi
|
||
|
||
import (
|
||
"fmt"
|
||
|
||
"git.rosy.net.cn/baseapi/utils"
|
||
)
|
||
|
||
type CreateEntityStoreParam struct {
|
||
Name string `json:"name"` //是 门店名称
|
||
AddCode int `json:"addCode"` //是 门店三级标准地址编码(京东)
|
||
AddCodeName string `json:"addCodeName"` //否 门店三级标准地址名称(京东)
|
||
AddName string `json:"addName"` //是 标准地址加扩展地址以@!分隔 必填 例:北京大兴区亦庄经济开发区@!京东大厦
|
||
Coordinate string `json:"coordinate"` //是 门店坐标 纬度在前,经度在后 例:39.786683,116.563075
|
||
Phone string `json:"phone"` //是 门店电话
|
||
// Item []int `json:"item"` //否 门店组ID
|
||
CustomerID string `json:"customerId"` //否 商家门店Id,商家维度不可重复
|
||
CategoryName string `json:"categoryName"` //否 门店扩展属性类目名称固定填为:popmendianSelfdelivery
|
||
ExtendJSON string `json:"extendJson"` //是 扩展属性JSON如:{name1:'value1',name2:'value2'},营业时间必传固定json格式:{\'businessBeginTime\':\'09:00\',\'businessEndTime\':\'22:00\'}' ,可将中间的时间变更
|
||
ImageFile string `json:"imageFile"` //否 门店图片,图片二进制文件流,允许png、jpg、gif、jpeg、bmp图片格式,1M以内。
|
||
}
|
||
|
||
type UpdateEntityStoreParam struct {
|
||
StoreID int `json:"storeId"` //门店ID(京东)
|
||
Name string `json:"name,omitempty"` //是 门店名称
|
||
AddCode int `json:"addCode,omitempty"` //是 门店三级标准地址编码(京东)
|
||
AddCodeName string `json:"addCodeName,omitempty"` //否 门店三级标准地址名称(京东)
|
||
AddName string `json:"addName,omitempty"` //是 标准地址加扩展地址以@!分隔 必填 例:北京大兴区亦庄经济开发区@!京东大厦
|
||
Coordinate string `json:"coordinate,omitempty"` //是 门店坐标 纬度在前,经度在后 例:39.786683,116.563075
|
||
Phone string `json:"phone,omitempty"` //是 门店电话
|
||
ExtendJSON string `json:"extendJson,omitempty"` //是 扩展属性JSON如:{name1:'value1',name2:'value2'},营业时间必传固定json格式:{\'businessBeginTime\':\'09:00\',\'businessEndTime\':\'22:00\'}' ,可将中间的时间变更
|
||
ImageFile string `json:"imageFile,omitempty"` //否 门店图片,图片二进制文件流,允许png、jpg、gif、jpeg、bmp图片格式,1M以内。
|
||
CustomerID string `json:"customerId"` //否 商家门店Id,商家维度不可重复
|
||
}
|
||
|
||
type GetAddressCodeResult struct {
|
||
ParentID int `json:"parentId"`
|
||
Level int `json:"level"`
|
||
AreaName string `json:"areaName"`
|
||
Status int `json:"status"`
|
||
AreaID int `json:"areaId"`
|
||
}
|
||
|
||
//创建门店
|
||
//https://open.jd.com/home/home#/doc/api?apiCateId=351&apiId=2224&apiName=jingdong.createEntityStore
|
||
func (a *API) CreateEntityStore(createEntityStoreParam *CreateEntityStoreParam) (vendorStoreID string, err error) {
|
||
result, err := a.AccessAPI("jingdong.createEntityStore", prodURL, utils.Struct2FlatMap(createEntityStoreParam))
|
||
if err == nil {
|
||
if !result["jingdong_createEntityStore_responce"].(map[string]interface{})["createentitystore_result"].(map[string]interface{})["success"].(bool) {
|
||
return vendorStoreID, fmt.Errorf(result["jingdong_createEntityStore_responce"].(map[string]interface{})["createentitystore_result"].(map[string]interface{})["message"].(string))
|
||
}
|
||
return result["jingdong_createEntityStore_responce"].(map[string]interface{})["createentitystore_result"].(map[string]interface{})["result"].(map[string]interface{})["name"].(string), err
|
||
}
|
||
return vendorStoreID, err
|
||
}
|
||
|
||
//修改门店
|
||
//https://open.jd.com/home/home#/doc/api?apiCateId=55&apiId=2221&apiName=jingdong.updateEntityStore
|
||
func (a *API) UpdateEntityStore(updateEntityStoreParam *UpdateEntityStoreParam) (err error) {
|
||
result, err := a.AccessAPI("jingdong.updateEntityStore", prodURL, utils.Struct2FlatMap(updateEntityStoreParam))
|
||
if err == nil {
|
||
if !result["jingdong_updateEntityStore_responce"].(map[string]interface{})["updateentitystore_result"].(map[string]interface{})["success"].(bool) {
|
||
return fmt.Errorf(result["jingdong_updateEntityStore_responce"].(map[string]interface{})["updateentitystore_result"].(map[string]interface{})["message"].(string))
|
||
}
|
||
}
|
||
return err
|
||
}
|
||
|
||
//删除门店
|
||
//https://open.jd.com/home/home#/doc/api?apiCateId=55&apiId=2222&apiName=jingdong.deleteStoresById
|
||
func (a *API) DeleteStoresByID(storeId int) (err error) {
|
||
_, err = a.AccessAPI("jingdong.deleteStoresById", prodURL, map[string]interface{}{
|
||
"storeId": storeId,
|
||
})
|
||
return err
|
||
}
|
||
|
||
//获取省地址信息et
|
||
//https://jos.jd.com/api/detail.htm?apiName=jingdong.areas.province.get&id=1011
|
||
func (a *API) GetProvince() (getAddressCodeResult []*GetAddressCodeResult, err error) {
|
||
result, err := a.AccessAPI("jingdong.areas.province.get", prodURL, nil)
|
||
if err == nil {
|
||
utils.Map2StructByJson(result["jingdong_areas_province_get_responce"].(map[string]interface{})["baseAreaServiceResponse"].(map[string]interface{})["data"], &getAddressCodeResult, false)
|
||
}
|
||
return getAddressCodeResult, err
|
||
}
|
||
|
||
//获取市地址信息et
|
||
//https://jos.jd.com/api/detail.htm?apiName=jingdong.areas.city.get&id=1014
|
||
func (a *API) GetCity(parentID int) (getAddressCodeResult []*GetAddressCodeResult, err error) {
|
||
result, err := a.AccessAPI("jingdong.areas.city.get", prodURL, map[string]interface{}{
|
||
"parent_id": parentID,
|
||
})
|
||
if err == nil {
|
||
utils.Map2StructByJson(result["jingdong_areas_city_get_responce"].(map[string]interface{})["baseAreaServiceResponse"].(map[string]interface{})["data"], &getAddressCodeResult, false)
|
||
}
|
||
return getAddressCodeResult, err
|
||
}
|
||
|
||
//获取区地址信息et
|
||
//https://jos.jd.com/api/detail.htm?apiName=jingdong.areas.county.get&id=1012
|
||
func (a *API) GetCounty(parentID int) (getAddressCodeResult []*GetAddressCodeResult, err error) {
|
||
result, err := a.AccessAPI("jingdong.areas.county.get", prodURL, map[string]interface{}{
|
||
"parent_id": parentID,
|
||
})
|
||
if err == nil {
|
||
utils.Map2StructByJson(result["jingdong_areas_county_get_responce"].(map[string]interface{})["baseAreaServiceResponse"].(map[string]interface{})["data"], &getAddressCodeResult, false)
|
||
}
|
||
return getAddressCodeResult, err
|
||
}
|
||
|
||
//查询门店库存
|
||
//https://open.jd.com/home/home#/doc/api?apiCateId=48&apiId=2983&apiName=jingdong.stock.read.findSkuSiteStock
|
||
func (a *API) FindSkuSiteStock(siteId int, skuId int64) (getAddressCodeResult []*GetAddressCodeResult, err error) {
|
||
result, err := a.AccessAPI("jingdong.stock.read.findSkuSiteStock", prodURL, map[string]interface{}{
|
||
"siteId": siteId,
|
||
"skuId": skuId,
|
||
"venderSource": 4,
|
||
})
|
||
if err == nil {
|
||
utils.Map2StructByJson(result["jingdong_areas_county_get_responce"].(map[string]interface{})["baseAreaServiceResponse"].(map[string]interface{})["data"], &getAddressCodeResult, false)
|
||
}
|
||
return getAddressCodeResult, err
|
||
}
|