diff --git a/platformapi/jdshopapi/store.go b/platformapi/jdshopapi/store.go index c66a108e..265db187 100644 --- a/platformapi/jdshopapi/store.go +++ b/platformapi/jdshopapi/store.go @@ -5,17 +5,30 @@ import ( ) 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,商家维度不可重复 + 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 []byte `json:"imageFile"` //否 门店图片,图片二进制文件流,允许png、jpg、gif、jpeg、bmp图片格式,1M以内。 + 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(京东) + CreateEntityStoreParam +} + +type GetAddressCodeResult struct { + ParentID int `json:"parentId"` + Level int `json:"level"` + AreaName string `json:"areaName"` + Status int `json:"status"` + AreaID int `json:"areaId"` } //创建门店 @@ -24,3 +37,53 @@ func (a *API) CreateEntityStore(createEntityStoreParam *CreateEntityStoreParam) _, err = a.AccessAPI("jingdong.createEntityStore", prodURL, utils.Struct2FlatMap(createEntityStoreParam)) return err } + +//修改门店 +//https://open.jd.com/home/home#/doc/api?apiCateId=55&apiId=2221&apiName=jingdong.updateEntityStore +func (a *API) UpdateEntityStore(updateEntityStoreParam *UpdateEntityStoreParam) (err error) { + _, err = a.AccessAPI("jingdong.updateEntityStore", prodURL, utils.Struct2FlatMap(updateEntityStoreParam)) + 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 +} diff --git a/platformapi/jdshopapi/store_test.go b/platformapi/jdshopapi/store_test.go index 1f89d84e..4798aa52 100644 --- a/platformapi/jdshopapi/store_test.go +++ b/platformapi/jdshopapi/store_test.go @@ -1,11 +1,52 @@ package jdshopapi -import "testing" +import ( + "encoding/base64" + "testing" + + "git.rosy.net.cn/baseapi/utils" +) func TestCreateEntityStore(t *testing.T) { - err := api.CreateEntityStore(&CreateEntityStoreParam{}) + data, _, err := DownloadFileByURL("http://image.jxc4.com/image/b90ae8585e8cf2f3871f6e8318bde1dc.tem.png") + err = api.CreateEntityStore(&CreateEntityStoreParam{ + Name: "京西菜市门店1", + AddCode: 50946, + AddCodeName: "金牛区", + AddName: "成都金牛区@!加州湾v派", + Coordinate: "29.707870,115.980868", + Phone: "18160030913", + ExtendJSON: `{"businessBeginTime":"09:00","businessEndTime":"22:00"}`, + ImageFile: base64.StdEncoding.EncodeToString(data), + CategoryName: "pop-mendian-Selfdelivery", + CustomerID: "666934", + }) if err != nil { t.Fatal(err) } // t.Log(utils.Format4Output(result, false)) } + +func TestGetProvince(t *testing.T) { + result, err := api.GetProvince() + if err != nil { + t.Fatal(err) + } + t.Log(utils.Format4Output(result, false)) +} + +func TestGetCity(t *testing.T) { + result, err := api.GetCity(22) + if err != nil { + t.Fatal(err) + } + t.Log(utils.Format4Output(result, false)) +} + +func TestGetCounty(t *testing.T) { + result, err := api.GetCounty(1930) + if err != nil { + t.Fatal(err) + } + t.Log(utils.Format4Output(result, false)) +}