From cdd852f8e8eff7eb2e8f7c3fceaa955b9fc3f9d3 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期一, 29 七月 2019 10:46:32 +0800 Subject: [PATCH] 订单商品类型处理 --- fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java | 87 ++++++++++++++++++++++++------------------- 1 files changed, 48 insertions(+), 39 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java index 4c74dc1..42260ef 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java @@ -5,13 +5,19 @@ import java.math.BigDecimal; import java.net.URLEncoder; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; + +import javax.script.Invocable; +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; +import com.yeshi.fanli.dto.dataoke.DingDongQiangDTO; import com.yeshi.fanli.entity.bus.clazz.GoodsClass; import com.yeshi.fanli.entity.taobao.TaoBaoCoupon; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; @@ -364,28 +370,45 @@ * * @return */ - public static List<DaTaoKeDetail> getDingDongQiang() { - List<DaTaoKeDetail> goodsList = new ArrayList<>(); + public static List<DingDongQiangDTO> getDingDongQiang() { + List<DingDongQiangDTO> list = new ArrayList<>(); + Document doc = null; try { - Document doc = Jsoup.connect("http://www.dataoke.com/ddq") - .userAgent( - "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Mobile Safari/537.36") - .get(); - Elements items = doc.getElementsByClass("main").get(0).getElementsByClass("clearfix").get(0) - .getElementsByTag("li"); - for (int i = 0; i < items.size(); i++) { - DaTaoKeDetail detail = new DaTaoKeDetail(); - String id = items.get(i).getElementsByTag("a").get(0).attr("href").split("\\?")[1].replace("id=", ""); - detail.setId(Long.parseLong(id)); - goodsList.add(detail); - } - } catch (Exception e) { - + doc = Jsoup.connect("http://www.dataoke.com/ddq").get(); + } catch (IOException e1) { + e1.printStackTrace(); } - return goodsList; + Elements els = doc.getElementsByTag("script"); + for (int i = 0; i < els.size(); i++) { + String content = els.get(i).html(); + if (content.indexOf("var dataDef") > -1) { + ScriptEngineManager manager = new ScriptEngineManager(); + ScriptEngine engine = manager.getEngineByName("javascript"); + try { + String js = "function getData(){return JSON.stringify(dataDef);}" + content; + engine.eval(js); + if (engine instanceof Invocable) { + Invocable in = (Invocable) engine; + String data = in.invokeFunction("getData").toString(); + System.out.println(data); + JSONObject dataJson = JSONObject.fromObject(data); + for (Iterator<String> its = dataJson.keys(); its.hasNext();) { + String key = its.next(); + JSONArray array = dataJson.optJSONArray(key); + List<DaTaoKeDetail> detailList = new ArrayList<>(); + for (int n = 0; n < array.size(); n++) { + detailList.add(new DaTaoKeDetail(array.optJSONObject(n).optLong("id"))); + } + list.add(new DingDongQiangDTO(key, detailList)); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + return list; } - - // public static List<TaoBaoCoupon> getRecommendCouple() { List<TaoBaoCoupon> couponList = new ArrayList<>(); @@ -518,35 +541,21 @@ } public static TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods, DaTaoKeDetail detail) { - if (detail != null) { + if (detail != null && goods != null) { // 閲嶆柊璁剧疆鏍囬涓庡埜浠锋牸 goods.setTitle(detail.getdTitle()); - if (goods.getCouponAmount() != null && detail.getQuanPrice() != null - && goods.getCouponAmount().compareTo(detail.getQuanPrice()) < 0) - goods.setCouponAmount(detail.getQuanPrice()); - goods.setZkPrice(detail.getOrgPrice()); - if (new BigDecimal(detail.getQuanCondition()).compareTo(new BigDecimal(0)) > 0) - goods.setCouponInfo(String.format("婊�%s鍏冨噺%s鍏�", detail.getQuanCondition(), - MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()).toString())); - else - goods.setCouponInfo(String.format("%s鍏冩棤鏉′欢鍒�", goods.getCouponAmount())); + if (!StringUtil.isNullOrEmpty(detail.getPic())) + goods.setPictUrlWhite(detail.getPic()); } return goods; } public static TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods, DaTaoKeDetailV2 detail) { - if (detail != null) { + if (detail != null && goods != null) { // 閲嶆柊璁剧疆鏍囬涓庡埜浠锋牸 goods.setTitle(detail.getDtitle()); - if (goods.getCouponAmount() != null && detail.getCouponPrice() != null - && goods.getCouponAmount().compareTo(detail.getCouponPrice()) < 0) - goods.setCouponAmount(detail.getCouponPrice()); - goods.setZkPrice(detail.getOriginalPrice()); - if (new BigDecimal(detail.getCouponConditions()).compareTo(new BigDecimal(0)) > 0) - goods.setCouponInfo(String.format("婊�%s鍏冨噺%s鍏�", detail.getCouponConditions(), - MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()).toString())); - else - goods.setCouponInfo(String.format("%s鍏冩棤鏉′欢鍒�", goods.getCouponAmount())); + if (!StringUtil.isNullOrEmpty(detail.getMainPic())) + goods.setPictUrlWhite(detail.getMainPic()); } return goods; } -- Gitblit v1.8.0