From ca3e865a9e3c22fc24c7ca4b67ad8c25d3f2ef18 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 12 十一月 2019 11:01:31 +0800
Subject: [PATCH] 口令过期消息队列

---
 fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java |  147 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 139 insertions(+), 8 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
index da901df..2cdc138 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
@@ -3,6 +3,7 @@
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
+import java.net.URLDecoder;
 import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -21,7 +22,9 @@
 import javax.xml.parsers.DocumentBuilderFactory;
 
 import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
 import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.params.HttpMethodParams;
 import org.jsoup.Connection;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
@@ -69,6 +72,7 @@
 import com.yeshi.fanli.util.TaoBaoConstant;
 import com.yeshi.fanli.util.TaoBaoHttpUtil;
 import com.yeshi.fanli.util.TimeUtil;
+import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
 
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -779,7 +783,41 @@
 		// labels.add(new ClientTextStyleVO("鏍囩鍐呭", "#00FF00"));
 		// tg.setLabels(labels);
 		// }
-		return tg;
+		return loadYuShouInfo(tg, tb);
+	}
+
+	private static TaoBaoGoodsBriefExtra loadYuShouInfo(TaoBaoGoodsBriefExtra extra, TaoBaoGoodsBrief goods) {
+		if (goods != null && extra != null) {
+			if (isYUShou(goods)) {// 棰勫敭鍟嗗搧
+//				extra.setZkPrice(new BigDecimal(goods.getPresaleDeposit()));
+				// 棰勫敭
+				if (extra.getLabels() == null)
+					extra.setLabels(new ArrayList<>());
+				extra.getLabels().add(new ClientTextStyleVO("棰勫敭", "#FF2B4E"));
+			}
+		}
+		return extra;
+	}
+
+	/**
+	 * 鏄惁涓洪鍞晢鍝�
+	 * 
+	 * @param goods
+	 * @return
+	 */
+	public static boolean isYUShou(TaoBaoGoodsBrief goods) {
+		if (!StringUtil.isNullOrEmpty(goods.getPresaleDeposit())
+				&& !StringUtil.isNullOrEmpty(goods.getPresaleStartTime())
+				&& !StringUtil.isNullOrEmpty(goods.getPresaleEndTime())) {
+			long startTime = Long.parseLong(goods.getPresaleStartTime());
+			long endTime = Long.parseLong(goods.getPresaleEndTime());
+			long now = System.currentTimeMillis();
+			if (now >= startTime && now < endTime) {
+				return true;
+			}
+		}
+
+		return false;
 	}
 
 	/**
@@ -1334,6 +1372,41 @@
 		return taoBaoGoodsBrief;
 	}
 
+	public static String getGoodsIdByPhoneShareUrl(String burl) {
+		try {
+			Connection connect = Jsoup.connect(burl);
+			Document document = connect.get();
+			org.jsoup.nodes.Element element = document.getElementsByTag("head").get(0).getElementsByTag("Script")
+					.get(1);
+			String html = element.toString();
+			int index = html.indexOf("var url = ");
+			int endIndex = html.lastIndexOf("'");
+			html = html.substring(index, endIndex);
+			int index2 = html.indexOf("'");
+			html = html.substring(index2 + 1);
+			int indexId = html.indexOf("id=");
+			String id = "";
+			if (html.contains("a.m.taobao.com")) {
+				indexId = html.indexOf("com/i");
+				html = html.substring(indexId);
+				html = html.substring(5, html.indexOf("."));
+				id = html;
+			} else {
+				String reg = "[?|&]{1}[i]{1}[d]{1}[=]{1}\\d+[&]?";
+				Pattern p = Pattern.compile(reg);
+				Matcher matcher = p.matcher(html);
+				if (matcher.find()) {
+					id = matcher.group();
+				}
+				id = id.substring(id.indexOf("=") + 1, id.lastIndexOf("&"));
+			}
+			return id;
+		} catch (Exception e) {
+			LogHelper.error("鏃犳硶瑙f瀽鍒版窐瀹濆晢鍝両D:" + burl);
+			return null;
+		}
+	}
+
 	/**
 	 * 鑾峰彇鍟嗗搧鐨勭敤鎴峰垎鎴愭瘮渚�
 	 * 
@@ -1360,7 +1433,6 @@
 	 */
 	public static BigDecimal getGoodsHongBaoMoney(TaoBaoGoodsBrief goodsBrief, BigDecimal rate) {
 		BigDecimal money = null;
-
 		if (StringUtil.isNullOrEmpty(goodsBrief.getCouponInfo())
 				|| goodsBrief.getCouponInfo().trim().equalsIgnoreCase("鏃�")) {
 			money = MoneyBigDecimalUtil.mul(
@@ -1939,7 +2011,12 @@
 					if (content.contains("var _DATA_Mdskip")) {
 						content = content.replace("<script>", "");
 						content = content.replace("</script>", "");
-						content += ";function getData(){ var json={title:_DATA_Mdskip.item.title,pictUrl:_DATA_Mdskip.item.videoDetail.videoThumbnailURL};   return JSON.stringify(json);}";
+
+						if (content.contains("videoDetail")) {
+							content += ";function getData(){ var json={title:_DATA_Mdskip.item.title,pictUrl:_DATA_Mdskip.item.videoDetail.videoThumbnailURL};   return JSON.stringify(json);}";
+						} else {
+							content += ";function getData(){ var json={title:_DATA_Mdskip.item.title,pictUrl:_DATA_Mdskip.item.videos[0].videoThumbnailURL};   return JSON.stringify(json);}";
+						}
 
 						ScriptEngineManager manager = new ScriptEngineManager();
 						ScriptEngine engine = manager.getEngineByName("javascript");
@@ -1966,6 +2043,38 @@
 	}
 
 	/**
+	 * 鎶栭煶杩斿埄local 鑾峰彇鐪熷疄娣樺疂閾炬帴
+	 * 
+	 * @param url
+	 *            https://s.click.taobao.com/t?e=m%3D2%26s%
+	 *            3DT9DFpHQCT7Rw4vFB6t2Z2ueEDrYVVa64XoO8tOebS+dRAdhuF14FMR8
+	 * @return
+	 */
+	public static String getRealUrl(String url) {
+		if (StringUtil.isNullOrEmpty(url))
+			return null;
+
+		try {
+			HttpClient client = new HttpClient(new MultiThreadedHttpConnectionManager());
+			client.getHttpConnectionManager().getParams().setConnectionTimeout(10000);
+			client.getParams().setParameter(HttpMethodParams.USER_AGENT,
+					"Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"); // 璁╂湇鍔″櫒璁や负鏄疘E
+			GetMethod get = new GetMethod(url);
+			get.setFollowRedirects(false); // 绂佹鑷姩閲嶅畾鍚�
+			int iGetResultCode = client.executeMethod(get);
+			String location = get.getResponseHeader("location").getValue(); // 鎵撳嵃鍦板潃
+			GetMethod get2 = new GetMethod(URLDecoder.decode(location.split("tu=")[1]));
+			get2.addRequestHeader("Referer", location);
+			get2.setFollowRedirects(false); // 绂佹鑷姩閲嶅畾鍚�
+			int iGetResultCode2 = client.executeMethod(get2);
+			return get2.getResponseHeader("location").getValue(); // 鐪熷疄鍦板潃
+		} catch (Exception ex) {
+			ex.printStackTrace();
+		}
+		return null;
+	}
+
+	/**
 	 * 娣樺彛浠よ繃婊�
 	 * 
 	 * @param token
@@ -1974,10 +2083,10 @@
 	public static String filterTaoToken(String token) {
 		if (StringUtil.isNullOrEmpty(token))
 			return token;
-		if (token.contains("锟�")||token.contains("鈧�")) {
+		if (token.contains("锟�") || token.contains("鈧�")) {
 			String newToken = "";
 			for (int i = 0; i < token.length(); i++) {
-				if (token.charAt(i) == '锟�'||token.charAt(i) == '鈧�') {
+				if (token.charAt(i) == '锟�' || token.charAt(i) == '鈧�') {
 					if (!newToken.contains("("))
 						newToken += "(";
 					else
@@ -1989,8 +2098,30 @@
 		}
 		return token;
 	}
-	
-	
-	
+
+	/**
+	 * 鎻愬彇鑷湁鏍煎紡鐨勬窐鍙d护
+	 * 
+	 * @param str
+	 * @return
+	 */
+	public static String parseSystemTaoToken(String str) {
+		String pattern = "(\\({1}[A-Za-z0-9]+\\){1})";
+		Pattern r = Pattern.compile(pattern);
+		Matcher m = r.matcher(str);
+		while (m.find()) {
+			String group = m.group(0);
+			if (!StringUtil.isNullOrEmpty(group))
+				return group;
+		}
+		return null;
+	}
+
+	public static boolean isSpecialGoods(Integer materialLibType) {
+		if (materialLibType != null && materialLibType == 1)
+			return true;
+		else
+			return false;
+	}
 
 }

--
Gitblit v1.8.0