- GetSkuPageInfo
This commit is contained in:
@@ -56,8 +56,6 @@ const (
|
||||
|
||||
AllPage = 0
|
||||
DefaultPageSize = 50
|
||||
|
||||
storeURL = "http://store.jddj.com"
|
||||
)
|
||||
|
||||
type API struct {
|
||||
|
||||
@@ -14,6 +14,12 @@ const (
|
||||
accessStorePageCookieName = "shop.o2o.jd.com1"
|
||||
)
|
||||
|
||||
type SkuPageImg struct {
|
||||
Big string `json:"big"`
|
||||
Share string `json:"share"`
|
||||
Small string `json:"small"`
|
||||
}
|
||||
|
||||
func (a *API) SetStoreCookie(storeCookie string) {
|
||||
a.locker.Lock()
|
||||
defer a.locker.Unlock()
|
||||
@@ -26,15 +32,13 @@ func (a *API) GetStoreCookie() string {
|
||||
return a.storeCookie
|
||||
}
|
||||
|
||||
func (a *API) AccessStorePage(subURL string) (retVal map[string]interface{}, err error) {
|
||||
func (a *API) AccessStorePage(fullURL string) (retVal map[string]interface{}, err error) {
|
||||
storeCookie := a.GetStoreCookie()
|
||||
if storeCookie == "" {
|
||||
return nil, fmt.Errorf("需要设置Store Cookie才能使用此方法")
|
||||
}
|
||||
err = platformapi.AccessPlatformAPIWithRetry(a.client,
|
||||
func() *http.Request {
|
||||
fullURL := utils.GenerateGetURL(storeURL, subURL, nil)
|
||||
// baseapi.SugarLogger.Debug(fullURL)
|
||||
request, _ := http.NewRequest(http.MethodGet, fullURL, nil)
|
||||
if err != nil {
|
||||
return nil
|
||||
@@ -50,7 +54,7 @@ func (a *API) AccessStorePage(subURL string) (retVal map[string]interface{}, err
|
||||
retVal = jsonResult1
|
||||
code := jsonResult1["code"].(string)
|
||||
if code == ResponseCodeSuccess {
|
||||
retVal = jsonResult1
|
||||
retVal = jsonResult1["result"].(map[string]interface{})
|
||||
return platformapi.ErrLevelSuccess, nil
|
||||
}
|
||||
newErr := utils.NewErrorCode(jsonResult1["msg"].(string), code)
|
||||
@@ -75,14 +79,14 @@ func (a *API) GetRealMobile4Order(orderId, stationNo string) (mobile string, err
|
||||
}
|
||||
|
||||
func (a *API) GetStoreOrderInfo(orderId, stationNo string) (storeOrderInfo map[string]interface{}, err error) {
|
||||
urlStr := "order/newManager/search?pageNo=1&pageSize=1&orderBy=&desc=true¶m=" + orderId
|
||||
urlStr := "http://store.jddj.com/order/newManager/search?pageNo=1&pageSize=1&orderBy=&desc=true¶m=" + orderId
|
||||
if stationNo != "" {
|
||||
urlStr += "&stationNo=" + stationNo
|
||||
}
|
||||
retVal, err := a.AccessStorePage(urlStr)
|
||||
// baseapi.SugarLogger.Debug(utils.Format4Output(retVal, false))
|
||||
if err == nil {
|
||||
newOrderinfoMains := retVal["result"].(map[string]interface{})["newOrderinfoMains"].(map[string]interface{})
|
||||
newOrderinfoMains := retVal["newOrderinfoMains"].(map[string]interface{})
|
||||
resultList := newOrderinfoMains["resultList"].([]interface{})
|
||||
if len(resultList) > 0 {
|
||||
return resultList[0].(map[string]interface{}), nil
|
||||
@@ -95,12 +99,12 @@ func (a *API) GetStoreOrderInfo(orderId, stationNo string) (storeOrderInfo map[s
|
||||
func (a *API) GetStoreOrderInfoList(fromTime, toTime string) (storeOrderList []map[string]interface{}, err error) {
|
||||
pageSize := 100
|
||||
pageNo := 1
|
||||
urlTemplate := "order/newManager/tabQuery/all?o2oOrderType=10000&pageNo=%d&pageSize=%d&orderBy=&desc=true&startTimeQuery=%s&endTimeQuery=%s&stationNo="
|
||||
urlTemplate := "http://store.jddj.com/order/newManager/tabQuery/all?o2oOrderType=10000&pageNo=%d&pageSize=%d&orderBy=&desc=true&startTimeQuery=%s&endTimeQuery=%s&stationNo="
|
||||
for {
|
||||
retVal, err := a.AccessStorePage(fmt.Sprintf(urlTemplate, pageNo, pageSize, url.QueryEscape(fromTime), url.QueryEscape(toTime)))
|
||||
// baseapi.SugarLogger.Debug(utils.Format4Output(retVal, false))
|
||||
if err == nil {
|
||||
newOrderinfoMains := retVal["result"].(map[string]interface{})["newOrderinfoMains"].(map[string]interface{})
|
||||
newOrderinfoMains := retVal["newOrderinfoMains"].(map[string]interface{})
|
||||
resultList := newOrderinfoMains["resultList"].([]interface{})
|
||||
storeOrderList = append(storeOrderList, utils.Slice2MapSlice(resultList)...)
|
||||
if len(storeOrderList) >= int(utils.MustInterface2Int64(newOrderinfoMains["totalCount"])) {
|
||||
@@ -113,3 +117,23 @@ func (a *API) GetStoreOrderInfoList(fromTime, toTime string) (storeOrderList []m
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (a *API) GetSkuPageInfo(skuId int64) (skuPageInfo map[string]interface{}, err error) {
|
||||
skuIDMap := map[string]interface{}{
|
||||
"skuId": utils.Int64ToStr(skuId),
|
||||
"storeId": "0",
|
||||
}
|
||||
skuPageInfo, err = a.AccessStorePage(fmt.Sprintf("https://daojia.jd.com/client?platCode=H5&functionId=product/detailV6_0&body=%s", utils.Format4Output(skuIDMap, true)))
|
||||
if err == nil {
|
||||
baseapi.SugarLogger.Debug(utils.Format4Output(skuPageInfo, false))
|
||||
}
|
||||
return skuPageInfo, err
|
||||
}
|
||||
|
||||
func (a *API) GetSkuPageImageInfo(skuId int64) (imgList []*SkuPageImg, err error) {
|
||||
skuPageInfo, err := a.GetSkuPageInfo(skuId)
|
||||
if err == nil {
|
||||
err = utils.Map2StructByJson(skuPageInfo["image"], &imgList, false)
|
||||
}
|
||||
return imgList, err
|
||||
}
|
||||
|
||||
@@ -8,9 +8,9 @@ import (
|
||||
)
|
||||
|
||||
func TestGetRealMobileNumber4Order(t *testing.T) {
|
||||
orderId := "900658736000042"
|
||||
desiredMobile := "18569035610"
|
||||
mobile, err := api.GetRealMobile4Order(orderId, "11738115")
|
||||
orderId := "910170516000941"
|
||||
desiredMobile := "13398196274"
|
||||
mobile, err := api.GetRealMobile4Order(orderId, "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -21,9 +21,8 @@ func TestGetRealMobileNumber4Order(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestGetStoreOrderInfo(t *testing.T) {
|
||||
orderId := "826309564000021"
|
||||
// desiredMobile := "18569035610"
|
||||
orderInfo, err := api.GetStoreOrderInfo(orderId, "11738115")
|
||||
orderId := "910170516000941"
|
||||
orderInfo, err := api.GetStoreOrderInfo(orderId, "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -39,3 +38,19 @@ func TestGetStoreOrderInfoList(t *testing.T) {
|
||||
baseapi.SugarLogger.Debug(utils.Format4Output(orderInfoList, false))
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetSkuPageInfo(t *testing.T) {
|
||||
skuInfo, err := api.GetSkuPageInfo(2023524346)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
baseapi.SugarLogger.Debug(utils.Format4Output(skuInfo, false))
|
||||
}
|
||||
|
||||
func TestGetSkuPageImageInfo(t *testing.T) {
|
||||
imgList, err := api.GetSkuPageImageInfo(2023524346)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
baseapi.SugarLogger.Debug(utils.Format4Output(imgList, false))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user