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/taobao/DaTaoKeUtil.java |  151 ++++++++++++++++++++++++++------------------------
 1 files changed, 78 insertions(+), 73 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 7349511..a93d81d 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,25 +5,29 @@
 import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.util.ArrayList;
-import java.util.Collections;
 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;
 import com.yeshi.fanli.entity.taobao.TaoBaoHead;
 import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
 import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail;
+import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
 import com.yeshi.fanli.tag.PageEntity;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.TimeUtil;
 
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -366,67 +370,45 @@
 	 * 
 	 * @return
 	 */
-	public static List<TaoBaoGoodsBrief> getDingDongQiang() {
-		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+	public static List<DingDongQiangDTO> getDingDongQiang() {
+		List<DingDongQiangDTO> list = new ArrayList<>();
+		Document doc = null;
 		try {
-			Document doc = Jsoup.connect("http://dataoke.yeshitv.com/index.php?r=ddq/wap")
-					.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 els = doc.getElementsByTag("script");
-			for (int i = 0; i < els.size(); i++) {
-				Element item = els.get(i);
-				if (item.toString().length() > 5000) {
-					String html = item.html();
-					int endIndex = html.indexOf("} ;") + 1;
-					int startIndex = html.indexOf("data =");
-					String json = html.substring(startIndex + "data =".length(), endIndex).trim();
-					JSONObject root = JSONObject.fromObject(json);
-					Iterator<String> keys = root.keySet().iterator();
-					List<String> ids = new ArrayList<>();
-					while (keys.hasNext()) {
-						String key = keys.next();
-						JSONArray array = root.optJSONObject(key).optJSONArray("list");
-						for (int j = 0; j < array.size(); j++) {
-							if (TimeUtil.convertToTimeTemp(array.optJSONObject(j).optString("paiqi"),
-									"yyyy-MM-dd HH:mm:ss") < System.currentTimeMillis())
-								ids.add(array.optJSONObject(j).optString("id"));
+			doc = Jsoup.connect("http://www.dataoke.com/ddq").get();
+		} catch (IOException e1) {
+			e1.printStackTrace();
+		}
+		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));
 						}
 					}
-					Collections.shuffle(ids);
-					List<Long> goodsIdList = new ArrayList<>();
-					ids.parallelStream().forEach(id -> {
-						try {
-							long auctionId = getAuctionId(Long.parseLong(id));
-							goodsIdList.add(auctionId);
-						} catch (Exception e) {
-						}
-					});
-
-					goodsIdList.parallelStream().forEach(goods -> {
-						try {
-							TaoBaoGoodsBrief gds = TaoKeApiUtil.searchGoodsDetail(goods);
-							if (gds != null)
-								goodsList.add(gds);
-						} catch (Exception e) {
-
-						}
-
-					});
-
+				} catch (Exception e) {
+					e.printStackTrace();
 				}
-
 			}
-
-		} catch (IOException e) {
-			e.printStackTrace();
 		}
-
-		return goodsList;
-
+		return list;
 	}
-
-	//
 
 	public static List<TaoBaoCoupon> getRecommendCouple() {
 		List<TaoBaoCoupon> couponList = new ArrayList<>();
@@ -536,38 +518,61 @@
 		// 鏍囬+鍒稿悗浠�+鍖呴偖+鎻忚堪
 		String desc = detail.getdTitle();
 		desc += "\n";
-		desc += String.format("鍒稿悗浠�%s銆�%s鍏冦�戝寘閭鏉� ",Math.random()>0.5?"馃挵":"", MoneyBigDecimalUtil.getWithNoZera(detail.getPrice()).toString())
-				+ (Math.random()>0.5?getRandomCommonEmoji():"");
+		desc += String.format("鍒稿悗浠�%s銆�%s鍏冦�戝寘閭鏉� ", Math.random() > 0.5 ? "馃挵" : "",
+				MoneyBigDecimalUtil.getWithNoZera(detail.getPrice()).toString())
+				+ (Math.random() > 0.5 ? getRandomCommonEmoji() : "");
 		desc += "\n";
-//		desc += detail.getIntroduce();
-		String introduce = detail.getIntroduce().replace("锛�", ",").replace("銆�", ",").replace("锛�", ",")
-				.replace(",", ",");
-		introduce=introduce.replace(",,,", ",").replace(",,", ",");
-		
+		// desc += detail.getIntroduce();
+		String introduce = detail.getIntroduce().replace("锛�", ",").replace("銆�", ",").replace("锛�", ",").replace(",",
+				",");
+		introduce = introduce.replace(",,,", ",").replace(",,", ",");
+
 		String[] sts = introduce.split(",");
 		introduce = "";
 		for (int i = 0; i < sts.length; i++) {
 			if (i % 2 == 1) {// 闇�瑕佹崲琛�
-				introduce += sts[i] + (Math.random()>0.5?getRandomCommonEmoji():i==sts.length-1?"":"锛�") + "\n";
+				introduce += sts[i] + (Math.random() > 0.5 ? getRandomCommonEmoji() : i == sts.length - 1 ? "" : "锛�")
+						+ "\n";
 			} else
-				introduce += sts[i] + (Math.random()>0.5?getRandomCommonEmoji():i==sts.length-1?"":"锛�");
+				introduce += sts[i] + (Math.random() > 0.5 ? getRandomCommonEmoji() : i == sts.length - 1 ? "" : "锛�");
 		}
-		desc+=introduce;
+		desc += introduce;
 		return desc;
 	}
 
 	public static TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods, DaTaoKeDetail detail) {
-		if (detail != null) {
+		if (detail != null && goods != null) {
 			// 閲嶆柊璁剧疆鏍囬涓庡埜浠锋牸
 			goods.setTitle(detail.getdTitle());
-			goods.setCouponAmount(detail.getQuanPrice());
-			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 && goods != null) {
+			// 閲嶆柊璁剧疆鏍囬涓庡埜浠锋牸
+			goods.setTitle(detail.getDtitle());
+			if (!StringUtil.isNullOrEmpty(detail.getMainPic()))
+				goods.setPictUrlWhite(detail.getMainPic());
+		}
+		return goods;
+	}
+
+	public static DaTaoKeDetail filterDaTaoKe(TaoBaoGoodsBrief goods, DaTaoKeDetail detail) {
+		if (goods != null) {
+			BigDecimal price = TaoBaoUtil.getAfterUseCouplePrice(goods);
+			detail.setOrgPrice(goods.getZkPrice());
+			detail.setPrice(price);
+			if (goods.getCouponStartFee() != null)
+				detail.setQuanCondition(goods.getCouponStartFee() + "");
+			detail.setQuanId(goods.getCouponActivityId());
+			detail.setQuanPrice(goods.getCouponAmount());
+			return detail;
+		}
+
+		return detail;
+	}
+
 }

--
Gitblit v1.8.0