From e4fc1901b5d0fe1a01d2444085fcc8cb5431f768 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 11 Sep 2019 14:45:29 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E9=A5=BF=E7=99=BE=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=8B=89=E5=8F=96=E6=96=B9=E6=B3=95=E8=B0=83=E6=95=B4GetStoreL?= =?UTF-8?q?ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformapi/ebaiapi/store_page.go | 39 ++++++++++++++++++++------ platformapi/ebaiapi/store_page_test.go | 4 +-- 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/platformapi/ebaiapi/store_page.go b/platformapi/ebaiapi/store_page.go index e3ddfa4f..6743c2db 100644 --- a/platformapi/ebaiapi/store_page.go +++ b/platformapi/ebaiapi/store_page.go @@ -515,22 +515,45 @@ func (a *API) PageGetCustomCatList(baiduShopID int64) (catList []map[string]inte return nil, err } -func (a *API) GetStoreList(lng string, lat string) (retVal map[string]interface{}, err error) { +func (a *API) GetStoreList(lng string, lat string, pageNo, pageSize int) (shopListInfo *PageListInfo, err error) { + if pageNo <= 0 { + pageNo = 1 + } + if pageSize > 20 || pageSize <= 0 { + pageSize = 20 + } params := map[string]interface{}{ "channel": "kitchen", - "pn": 1, - "rn": 999, + "rn": pageSize, + "pn": pageNo, "lng": lng, "lat": lat, } - retVal, err = a.AccessStorePageNoCookie("/newretail/main/shoplist", params) - return retVal, err + result, err := a.AccessStorePageNoCookie("newretail/main/shoplist", params) + if err == nil && result != nil { + err = utils.Map2StructByJson(result, &shopListInfo, true) + } + return shopListInfo, err } func (a *API) GetStoreList2(lng float64, lat float64) (shopListInfo *PageListInfo, err error) { - retVal, err := a.GetStoreList(fmt.Sprintf("%.6f", lng), fmt.Sprintf("%.6f", lat)) - if err == nil { - err = utils.Map2StructByJson(retVal, &shopListInfo, true) + pageSize := 20 + pageNo := 1 + for { + retVal, err2 := a.GetStoreList(fmt.Sprintf("%.6f", lng), fmt.Sprintf("%.6f", lat), pageNo, pageSize) + if err = err2; err == nil { + if shopListInfo == nil { + shopListInfo = retVal + } else { + shopListInfo.ShopList = append(shopListInfo.ShopList, retVal.ShopList...) + if len(retVal.ShopList) < pageSize { + break + } + } + pageNo++ + } else { + break + } } return shopListInfo, err } diff --git a/platformapi/ebaiapi/store_page_test.go b/platformapi/ebaiapi/store_page_test.go index ca6bc4b4..7537fe8f 100644 --- a/platformapi/ebaiapi/store_page_test.go +++ b/platformapi/ebaiapi/store_page_test.go @@ -107,7 +107,7 @@ func TestGetShopHealthByDetail(t *testing.T) { } func TestGetStoreList(t *testing.T) { - result, err := api.GetStoreList("104.057218", "30.6949") + result, err := api.GetStoreList("104.057218", "30.6949", 0, 0) if err != nil { t.Fatal(err) } @@ -115,7 +115,7 @@ func TestGetStoreList(t *testing.T) { } func TestGetStoreList2(t *testing.T) { - result, err := api.GetStoreList2(120.074911, 29.306863) + result, err := api.GetStoreList2(104.010554, 30.637072) if err != nil { t.Fatal(err) }