- 标准化jdapi.QuerySkuInfos和QueryListBySkuIds

This commit is contained in:
gazebo
2019-07-31 18:11:04 +08:00
parent 58bd31a996
commit d28c352b3e
2 changed files with 73 additions and 34 deletions

View File

@@ -68,9 +68,9 @@ const (
)
const (
SkuFixedStatusOnline = 1
SkuFixedStatusOffline = 2
SkuFixedStatusDeleted = 4
SkuFixedStatusOnline = 1 // 上架
SkuFixedStatusOffline = 2 // 下架
SkuFixedStatusDeleted = 4 // 删除
)
const (
@@ -79,6 +79,10 @@ const (
CreateSpuResultFailed = 3
)
const (
IsFilterDelTrue = "0" // 0代表不查已删除商品
)
const (
MaxSkuNameCharCount = 45 // skuname最长字符数
SaleAttrIDBase = 1001
@@ -131,13 +135,57 @@ type CreateByUpcPair struct {
SkuId int64
}
type QuerySkuParam struct {
SkuName string `json:"skuName,omitempty"`
UpcCode string `json:"upcCode,omitempty"`
SkuID int64 `json:"skuId,omitempty"`
IsFilterDel string `json:"isFilterDel,omitempty"` // 是否查询出已删除的上传商品(0代表不查已删除商品,不填则查出全部商品)
PageNo int `json:"pageNo,omitempty"`
PageSize int `json:"pageSize,omitempty"`
}
type SkuMain struct {
SuperID int64 `json:"superId"`
SkuID int64 `json:"skuId"`
OutSkuID string `json:"outSkuId"`
CategoryID int64 `json:"categoryId"`
BrandID int64 `json:"brandId"`
ShopCategories []int64 `json:"shopCategories"`
SkuName string `json:"skuName"`
FixedStatus int `json:"fixedStatus"` // 商家商品上下架状态(1:上架;2:下架;4:删除;)
FixedUpTime string `json:"fixedUpTime"`
OrgCode int `json:"orgCode"`
SellCities []int64 `json:"sellCities"`
SkuPrice int `json:"skuPrice"`
Weight float64 `json:"weight"`
}
type QueryListBySkuIdsParam struct {
SkuIDs []int64 `json:"skuIds"`
ImgType int `json:"imgType,omitempty"`
HandleStatus []int `json:"handleStatus,omitempty"`
}
type ImgHandleQueryResult struct {
ID string `json:"id"`
SkuID int64 `json:"skuId"`
IsMain int `json:"isMain"`
ImgType int `json:"imgType"`
SourceImgURL string `json:"sourceImgUrl"`
SkuImgSort int `json:"skuImgSort"`
HandleStatus int `json:"handleStatus"`
HandleStatusStr string `json:"handleStatusStr"`
HandleRemark string `json:"handleRemark"`
HandleErrLog string `json:"handleErrLog"`
}
var (
skuExistReg = regexp.MustCompile(`商家skuId已存在:(\d+)`)
)
// 分页查询商品品牌信息接口
// https://opendj.jd.com/staticnew/widgets/resources.html?groupid=180&apiid=1ca07a3e767649a7a44fc6ea7e9ed8dd
func (a *API) QueryPageBrandInfo(pageNo, pageSize, brandId int, brandName string) (brandList []*BrandInfo, totalCount int, err error) {
func (a *API) QueryPageBrandInfo(pageNo, pageSize int, brandId int64, brandName string) (brandList []*BrandInfo, totalCount int, err error) {
if pageNo <= 0 {
pageNo = 1
}
@@ -320,44 +368,28 @@ func (a *API) BatchUpdateOutSkuId(skuInfoList []*SkuIDPair) (retVal interface{},
// 查询商家已上传商品信息列表接口
// https://opendj.jd.com/staticnew/widgets/resources.html?groupid=180&apiid=e433b95f74524dab91718432c0358977
// pageNo 从1开始
func (a *API) QuerySkuInfos(skuName string, skuId int64, pageNo, pageSize int, isFilterDel bool) (retVal []map[string]interface{}, totalCount int, err error) {
if pageNo <= 0 {
pageNo = 1
func (a *API) QuerySkuInfos(queryParam *QuerySkuParam) (skuList []*SkuMain, totalCount int, err error) {
if queryParam.PageNo <= 0 {
queryParam.PageNo = 1
}
if pageSize == 0 {
pageSize = 50
if queryParam.PageSize == 0 {
queryParam.PageSize = 50
}
params := map[string]interface{}{
KeyPageNo: pageNo, // pageNo好像必须要有值否则一直不返回
KeyPageSize: pageSize,
}
if skuName != "" {
params[KeySkuName] = skuName
}
if skuId != 0 {
params[KeySkuId] = skuId
}
if isFilterDel {
params[KeyIsFilterDel] = "1"
} else {
params[KeyIsFilterDel] = "0"
}
result, totalCount, err := a.AccessAPIHavePage("pms/querySkuInfos", params, nil, nil, nil)
result, totalCount, err := a.AccessAPIHavePage("pms/querySkuInfos", utils.Struct2MapByJson(queryParam), nil, nil, nil)
if err == nil {
return utils.Slice2MapSlice(result), totalCount, nil
err = utils.Map2StructByJson(result, &skuList, false)
}
return nil, 0, err
return skuList, totalCount, err
}
// 查询商品图片处理结果接口
// https://opendj.jd.com/staticnew/widgets/resources.html?groupid=180&apiid=17506653e03542f9a49023711780c30d
func (a *API) QueryListBySkuIds(skuIds []int64, addParams map[string]interface{}) (retVal []map[string]interface{}, err error) {
result, err := a.AccessAPINoPage("order/queryListBySkuIds", utils.MergeMaps(addParams, utils.Params2Map("skuIds", skuIds)), nil, nil, nil)
func (a *API) QueryListBySkuIds(queryParam *QueryListBySkuIdsParam) (imgList []*ImgHandleQueryResult, err error) {
result, err := a.AccessAPINoPage("order/queryListBySkuIds", utils.Struct2MapByJson(queryParam), nil, nil, nil)
if err == nil {
return utils.Slice2MapSlice(result.([]interface{})), nil
err = utils.Map2StructByJson(result, &imgList, false)
}
return nil, err
return imgList, err
}
// 分页查询京东到家商品前缀库接口

View File

@@ -58,7 +58,11 @@ func TestBatchUpdateOutSkuId(t *testing.T) {
func TestQuerySkuInfos(t *testing.T) {
pageSize := 20
result, totalCount, err := api.QuerySkuInfos("一个高级商品", 0, 0, pageSize, true)
result, totalCount, err := api.QuerySkuInfos(&QuerySkuParam{
IsFilterDel: IsFilterDelTrue,
})
t.Log(utils.Format4Output(result, false))
t.Log(totalCount)
if err != nil {
t.Fatal(err)
}
@@ -73,7 +77,10 @@ func TestQueryListBySkuIds(t *testing.T) {
2018806493,
2018805873,
}
result, err := api.QueryListBySkuIds(ids, nil)
result, err := api.QueryListBySkuIds(&QueryListBySkuIdsParam{
SkuIDs: ids,
})
t.Log(utils.Format4Output(result, false))
if err != nil {
t.Fatal(err)
}