diff --git a/platformapi/jdapi/store_page.go b/platformapi/jdapi/store_page.go index a18269fe..41a818c6 100644 --- a/platformapi/jdapi/store_page.go +++ b/platformapi/jdapi/store_page.go @@ -227,6 +227,23 @@ type StoreUserInfo struct { UserCode string `json:"userCode"` } +type ProductInfo struct { + OriginalName string `json:"originalName"` + OriginalSpec string `json:"originalSpec"` + Name string `json:"name"` + Img string `json:"img"` + ImgList []string `json:"imgList"` + SpecQuality int `json:"specQuality"` + SpecUnit string `json:"specUnit"` + Unit string `json:"unit"` + Weight float32 `json:"weight"` + Price int `json:"price"` + Categories []string `json:"categories"` + ManName string `json:"manName"` // 生产商 + BrandName string `json:"brandName"` + UpcCode string `json:"upcCode"` +} + const ( QualifyTypeCompany = "25" // 营业执照 QualifyTypePerson = "22" // 身份证,个体工商户要求填 @@ -366,6 +383,9 @@ func (a *API) AccessStorePage2(fullURL string, params map[string]interface{}, is code, ok := jsonResult1["code"].(string) if !ok { if statusMap, ok := jsonResult1["status"].(map[string]interface{}); !ok { + if jsonResult1["operTag"] != nil { + return platformapi.ErrLevelSuccess, nil + } return platformapi.ErrLevelGeneralFail, utils.NewErrorCode(utils.Format4Output(jsonResult1, true), "999") } else { code = utils.Int64ToStr(utils.ForceInterface2Int64(statusMap["errorCode"])) @@ -761,31 +781,40 @@ func (a *API) GetJdStoreLevel(vendorOrgCode, vendorStoreID string) (level string // 根据商品名,查找京东商品upc编码 // https://pms-store.jddj.com/product/searchProductStd -func (a *API) GetJdUpcCodeByName(name string, pageNo, pageSize int) (jdSkus []*JdSkus, totalCount int, err error) { +func (a *API) GetJdUpcCodeByName(name, upcCode string, pageNo, pageSize int) (productInfos []*ProductInfo, err error) { jdParams := map[string]interface{}{ "searchType": 1, "firstCategoryId": 0, "currentPage": pageNo, "pageSize": pageSize, "productName": name, + "upcCode": upcCode, + } + result, err := a.AccessStorePage2("https://pms-store.jddj.com/product/searchProductStd", jdParams, true, "") + if err != nil { + return nil, err } - result, _ := a.AccessStorePage2("https://pms-store.jddj.com/product/searchProductStd", jdParams, true, "") data := result.(map[string]interface{}) - totalCount = int(utils.Interface2Int64WithDefault(data["total"], 0)) + // totalCount = int(utils.Interface2Int64WithDefault(data["total"], 0)) + if data["rows"] == nil { + return productInfos, err + } for _, v := range data["rows"].([]interface{}) { - var ImgList []string - ImgStr := v.(map[string]interface{})["productImageList"].([]interface{}) - for _, vv := range ImgStr { - ImgList = append(ImgList, "http://img20.360buyimg.com/vc/"+vv.(string)) - } if v.(map[string]interface{})["upcCode"].(string) != "" { - jdSku := &JdSkus{ - Name: v.(map[string]interface{})["name"].(string), - UpcCode: v.(map[string]interface{})["upcCode"].(string), - ImgList: ImgList, + var ImgList []string + ImgStr := v.(map[string]interface{})["productImageList"].([]interface{}) + for _, vv := range ImgStr { + ImgList = append(ImgList, "http://img20.360buyimg.com/vc/"+vv.(string)) } - jdSkus = append(jdSkus, jdSku) + productInfo := &ProductInfo{ + OriginalName: v.(map[string]interface{})["name"].(string), + Name: v.(map[string]interface{})["name"].(string), + UpcCode: v.(map[string]interface{})["upcCode"].(string), + Weight: float32(utils.Interface2Float64WithDefault(v.(map[string]interface{})["weight"], 0)), + ImgList: ImgList, + } + productInfos = append(productInfos, productInfo) } } - return jdSkus, totalCount, err + return productInfos, err } diff --git a/platformapi/jdapi/store_page_test.go b/platformapi/jdapi/store_page_test.go index 2f9609cb..a17097f4 100644 --- a/platformapi/jdapi/store_page_test.go +++ b/platformapi/jdapi/store_page_test.go @@ -232,5 +232,5 @@ func TestGetJdStoreLevel(t *testing.T) { } func TestGetJdUpcCodeByName(t *testing.T) { - api.GetJdUpcCodeByName("大米", 1, 5) + api.GetJdUpcCodeByName("", "6952395700895", 2, 5) }