From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 30 七月 2019 09:07:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java | 81 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 78 insertions(+), 3 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java index 51f94a3..cb32794 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java @@ -1,8 +1,12 @@ package com.yeshi.fanli.util.jd; import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.math.BigDecimal; +import java.net.URLEncoder; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.apache.commons.httpclient.HttpClient; @@ -16,10 +20,13 @@ import com.yeshi.fanli.dto.jd.JDCommissionInfo; import com.yeshi.fanli.dto.jd.JDCouponInfo; import com.yeshi.fanli.dto.jd.JDSearchFilter; +import com.yeshi.fanli.dto.jd.JDSearchResult; import com.yeshi.fanli.dto.jd.JDShopInfo; import com.yeshi.fanli.entity.jd.JDGoods; +import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.StringUtil; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JDUtil { @@ -92,7 +99,11 @@ } @SuppressWarnings("deprecation") - public static void searchByKey(JDSearchFilter searchFilter) { + public static JDSearchResult searchByKey(JDSearchFilter searchFilter) { + + JDSearchResult searchResult = new JDSearchResult(); + + List<JDGoods> goodsList = new ArrayList<>(); JSONObject params = new JSONObject(); params.put("pageNo", searchFilter.getPageNo()); params.put("pageSize", searchFilter.getPageSize()); @@ -118,10 +129,42 @@ try { client.executeMethod(pm); String result = pm.getResponseBodyAsString(); + JSONObject json = JSONObject.fromObject(result); + if (json.optInt("code") == 200) { + JSONObject pageJson = json.optJSONObject("data").optJSONObject("page"); + PageEntity entity = new PageEntity(pageJson.optInt("pageNo"), pageJson.optInt("pageSize"), + pageJson.optInt("totalCount")); + searchResult.setPageEntity(entity); + + if (json.optJSONObject("data") != null) { + JSONArray array = json.optJSONObject("data").optJSONArray("unionGoods"); + if (array != null) { + for (int i = 0; i < array.size(); i++) { + goodsList.add(parseGoods(array.optJSONArray(i).optJSONObject(0).toString())); + } + } + } + json.optJSONObject("data").optJSONArray("unionGoods"); + } + System.out.println(result); } catch (Exception e) { e.printStackTrace(); } + + searchResult.setGoodsList(goodsList); + return searchResult; + } + + public static JDGoods getGoodsDetail(Long skuId) { + JDSearchFilter sf = new JDSearchFilter(); + sf.setKey(skuId + ""); + sf.setPageNo(1); + sf.setPageSize(20); + JDSearchResult result = searchByKey(sf); + if (result != null && result.getGoodsList() != null && result.getGoodsList().size() > 0) + return result.getGoodsList().get(0); + return null; } private static JDGoods parseGoods(String data) { @@ -134,14 +177,17 @@ shopInfo.setShopName(json.optString("shopName")); goods.setShopInfo(shopInfo); - goods.setPrice(new BigDecimal(json.optString("finalPrice"))); + if (!StringUtil.isNullOrEmpty(json.optString("wlPrice"))) + goods.setPrice(new BigDecimal(json.optString("wlPrice"))); + else + goods.setPrice(new BigDecimal(json.optString("finalPrice"))); goods.setGoodCommentsShare(new BigDecimal(json.optString("goodCommentsShare"))); goods.setInOrderCount30Days(json.optLong("inOrderCount30Days")); if (json.optInt("isZY") == 1) goods.setOwner("g"); else goods.setOwner("p"); - goods.setMaterialUrl(json.optString("materialUrl")); + goods.setMaterialUrl("http://img14.360buyimg.com/n1/" + json.optString("materialUrl")); JDCommissionInfo commission = new JDCommissionInfo(); commission.setCommission(new BigDecimal(json.optString("wlCommission"))); commission.setCommissionShare(new BigDecimal(json.optString("wlCommissionRatio"))); @@ -162,4 +208,33 @@ return goods; } + public static List<String> suggestSearch(String key) { + List<String> list = new ArrayList<>(); + if (StringUtil.isNullOrEmpty(key)) + return list; + String url = null; + try { + url = String.format( + "https://wq.jd.com/bases/searchdropdown/getdropdown?terminal=m&zip=1&key=%s&newjson=1&_=%s&sceneval=2", + URLEncoder.encode(key, "UTF-8"), System.currentTimeMillis() + ""); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + if (url == null) + return list; + try { + String result = HttpUtil.get(url); + result = result.replace("callback(", "").replace(")", ""); + JSONArray array = JSONArray.fromObject(result); + for (int i = 0; i < array.size(); i++) { + String sk = array.optJSONObject(i).optString("key"); + if (!StringUtil.isNullOrEmpty(sk)) + list.add(sk); + } + } catch (Exception e) { + } + return list; + } + } -- Gitblit v1.8.0