diff --git a/platform/jdapi/jdapi.go b/platform/jdapi/jdapi.go index cbd21583..9236e80e 100644 --- a/platform/jdapi/jdapi.go +++ b/platform/jdapi/jdapi.go @@ -244,7 +244,7 @@ func (j JDAPI) accessJDQueryNoPage(apiStr string, jdParams map[string]string, ke } } -func (j JDAPI) accessJDQueryHavePage(apiStr string, jdParams map[string]string, keyToRemove, keyToKeep []string, pageNo, pageSize int, pageResultParser PageResultParser) (interface{}, error) { +func (j JDAPI) accessJDQueryHavePage(apiStr string, jdParams map[string]string, keyToRemove, keyToKeep []string, pageResultParser PageResultParser) ([]interface{}, error) { normalJDQueryHavePageResultParser := func(data map[string]interface{}, totalCount int) ([]interface{}, int) { var result map[string]interface{} var retVal []interface{} @@ -297,19 +297,29 @@ func (j JDAPI) accessJDQueryHavePage(apiStr string, jdParams map[string]string, pageResultParser = normalJDQueryHavePageResultParser } - totalCount := 0 - curPage := pageNo - if curPage == AllPage { - curPage = 1 - } - - retVal := make([]interface{}, 0) localJdParams := make(map[string]string) if jdParams != nil && len(jdParams) > 0 { for k, v := range jdParams { localJdParams[k] = v } } + + totalCount := 0 + pageNo := AllPage + pageSize := DefaultPageSize + if tempPageNo, ok := localJdParams["pageNo"]; ok { + pageNo, _ = strconv.Atoi(tempPageNo) + } + if tempPageSize, ok := localJdParams["pageSize"]; ok { + pageSize, _ = strconv.Atoi(tempPageSize) + } + + curPage := pageNo + if curPage == AllPage { + curPage = 1 + } + + retVal := make([]interface{}, 0) for { localJdParams["pageNo"] = strconv.FormatInt(int64(curPage), 10) localJdParams["pageSize"] = strconv.FormatInt(int64(pageSize), 10) diff --git a/platform/jdapi/jdapi_test.go b/platform/jdapi/jdapi_test.go index 691c3284..f52300ed 100644 --- a/platform/jdapi/jdapi_test.go +++ b/platform/jdapi/jdapi_test.go @@ -53,11 +53,15 @@ func TestAccessJDQueryNoPage(t *testing.T) { } func TestAccessJDQueryHavePage(t *testing.T) { - result, err := jdapi.accessJDQueryHavePage("pms/querySkuInfos", nil, nil, []string{"skuName", "skuId"}, 1, 50, nil) + jdParams := map[string]string{ + "pageNo": "1", + "pageSize": "20", + } + skuInfo, err := jdapi.accessJDQueryHavePage("pms/querySkuInfos", jdParams, nil, []string{"skuName", "skuId"}, nil) if err != nil { t.Fatalf("accessJDQueryHavePage return error:%v", err) } - skuInfo := result.([]interface{}) + if len(skuInfo) == 0 { t.Fatal("sku info is empty") } @@ -83,3 +87,28 @@ func TestGenGetURL(t *testing.T) { } defer response.Body.Close() } + +func TestOrderQuery(t *testing.T) { + jdParams := map[string]string{ + "orderId": "813452298000322", + } + result, err := jdapi.OrderQuery(jdParams) + if err != nil { + t.Fatalf("OrderQuery return error:%v", err) + } + + if len(result) == 0 { + t.Fatal("OrderQuery return empty data") + } + buyerCityOk := false + orderInfo, _ := result[0].(map[string]interface{}) + if buyerCity1, ok := orderInfo["buyerCity"]; ok { + if buyerCity, ok := buyerCity1.(string); ok && buyerCity == "1930" { + buyerCityOk = true + } + } + + if !buyerCityOk { + t.Fatal("OrderQuery get data wrong") + } +} diff --git a/platform/jdapi/order.go b/platform/jdapi/order.go new file mode 100644 index 00000000..501d64c4 --- /dev/null +++ b/platform/jdapi/order.go @@ -0,0 +1,5 @@ +package jdapi + +func (j JDAPI) OrderQuery(jdParams map[string]string) ([]interface{}, error) { + return j.accessJDQueryHavePage("order/es/query", jdParams, nil, nil, nil) +}