From 30cba46c3a27a307f5658f1078f927f6b7100e00 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期二, 17 十二月 2019 10:22:04 +0800
Subject: [PATCH] 兼容京东领券链接

---
 fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 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 cb97e00..51bdc18 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
@@ -655,6 +655,51 @@
 		return null;
 	}
 	
+
+	/**
+	 * 鏍规嵁 u.jd鐭繛鎺ヨ幏鍙栫湡瀹炵殑鍟嗗搧id
+	 * @param url
+	 * @return
+	 */
+	public static String getJDGoodsIdByUJD(String url) {
+		try {
+			String body =  HttpUtil.get(url);
+			Document doc = Jsoup.parse(body);
+			Elements els = doc.getElementsByTag("script");
+			for (int i = 0; i < els.size(); i++) {
+				String content = els.get(i).html();
+				if (content.indexOf("var hrl") > -1) {
+					ScriptEngineManager manager = new ScriptEngineManager();
+					ScriptEngine engine = manager.getEngineByName("javascript");
+					
+					int indexOf = content.indexOf("var hrl");
+					content = content.substring(indexOf, content.length());
+					
+					int indexOf2 = content.indexOf(";");
+					content = content.substring(0, indexOf2+1);
+					
+					String js = "function getData(){return  JSON.stringify(hrl);}" + content;
+						
+					engine.eval(js);
+					if (engine instanceof Invocable) {
+						Invocable in = (Invocable) engine;
+						String data = in.invokeFunction("getData").toString();
+						String link = data.substring(1, data.length()-1);
+						
+						String realLink = HttpUtil.getLocation(link);
+						realLink = realLink.substring(realLink.indexOf("sku=") + 4, realLink.length());
+						return realLink.substring(0, realLink.indexOf("&"));
+					}
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+	
+	
+	
 	/**
 	 * 鏌ヨ澶╃尗鍟嗗搧鍥剧墖銆佹爣棰�
 	 * 
@@ -844,5 +889,9 @@
 		}
 		return getShowCouponInfo(goods.getCouponInfoList(), price);
 	}
+	
+	
+	
+	
 
 }

--
Gitblit v1.8.0