From c6f32fd5fd0cf1cf0758765a697c9e9ad5bbba13 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期二, 30 七月 2019 17:30:46 +0800
Subject: [PATCH] 分享bug
---
fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java | 83 ++++++++++++++++++++++++-----------------
1 files changed, 48 insertions(+), 35 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 d52d0f7..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,31 +541,21 @@
}
public static TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods, DaTaoKeDetail detail) {
- if (detail != null) {
+ if (detail != null && goods != null) {
// 閲嶆柊璁剧疆鏍囬涓庡埜浠锋牸
goods.setTitle(detail.getdTitle());
- 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(detail.getQuanPrice()).toString()));
- else
- goods.setCouponInfo(String.format("%s鍏冩棤鏉′欢鍒�", detail.getQuanPrice()));
+ 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());
- 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(detail.getCouponPrice()).toString()));
- else
- goods.setCouponInfo(String.format("%s鍏冩棤鏉′欢鍒�", detail.getCouponPrice()));
+ if (!StringUtil.isNullOrEmpty(detail.getMainPic()))
+ goods.setPictUrlWhite(detail.getMainPic());
}
return goods;
}
--
Gitblit v1.8.0