From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 18 一月 2020 12:06:27 +0800
Subject: [PATCH] 用户注册信息

---
 fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java |  482 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 381 insertions(+), 101 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 110b1a1..edf39f4 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,8 +3,10 @@
 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.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -14,11 +16,17 @@
 
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
+import javax.script.Invocable;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
 import javax.xml.parsers.DocumentBuilder;
 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.hibernate.cache.spi.NaturalIdCacheKey;
 import org.jsoup.Connection;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
@@ -52,17 +60,17 @@
 import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
 import com.yeshi.fanli.entity.taobao.TaoBaoShop;
 import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
-import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail;
 import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.goods.TaoBaoLinkService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
 import com.yeshi.fanli.tag.PageEntity;
 import com.yeshi.fanli.util.AESUtil;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.StringUtil;
+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;
@@ -769,14 +777,48 @@
 		tg.setSalesType(1);
 		// 娴嬭瘯浣跨敤
 		// tg.setSalesType(Math.random() > 0.5 ? tg.getSalesType() : 3);
-//		if(Constant.IS_TEST)
-//		{
-//		 List<ClientTextStyleVO> labels = new ArrayList<>();
-//		 labels.add(new ClientTextStyleVO("鏍囩鍐呭", "#F14242"));
-//		 labels.add(new ClientTextStyleVO("鏍囩鍐呭", "#00FF00"));
-//		 tg.setLabels(labels);
-//		}
-		return tg;
+		// if(Constant.IS_TEST)
+		// {
+		// List<ClientTextStyleVO> labels = new ArrayList<>();
+		// labels.add(new ClientTextStyleVO("鏍囩鍐呭", "#F14242"));
+		// labels.add(new ClientTextStyleVO("鏍囩鍐呭", "#00FF00"));
+		// tg.setLabels(labels);
+		// }
+		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;
 	}
 
 	/**
@@ -1033,23 +1075,18 @@
 		return tg;
 	}
 
-	public static TaoBaoGoodsBrief getTaoBaoGoodsBrief(String id) {
-		Map<String, String> params = new HashMap<String, String>();
-		params.put("q", String.format("http://item.taobao.com/item.htm?id=%s", id));
-		params.put("_t", System.currentTimeMillis() + "");
-		params.put("auctionTag", "");
-		params.put("perPageSize", 40 + "");
-		params.put("t", System.currentTimeMillis() + "");
-		String result = TaoBaoHttpUtil.get(SEARCH_URL, params);
-		result = result.replace("</span>", "").replace("<span class=H>", "");
-		TaoBaoSearchResult presult = parseTaoBao(result);
-		if (presult != null && presult.getTaoBaoGoodsBriefs().size() > 0) {
-			// TaoBaoGoodsBrief taoBaoGoodsBrief =
-			// presult.getTaoBaoGoodsBriefs().get(0);
-
-			return presult.getTaoBaoGoodsBriefs().get(0);
-		} else
-			return null;
+	/**
+	 * 鑾峰彇鏈弬涓庢帹骞跨殑娣樺疂鍟嗗搧璇︽儏
+	 * @Title: getTaoBaoGoodsBrief
+	 * @Description: 
+	 * @param id
+	 * @return 
+	 * TaoBaoGoodsBrief 鍖呭惈锛堟爣棰樹笌鍥剧墖锛�
+	 * @throws
+	 */
+	public static TaoBaoGoodsBrief getTaoBaoGoodsBriefNotInPub(Long id) {
+		TaoBaoGoodsBrief tb = TaoBaoUtil.getTmallGoodsInfo(id+"");
+		return tb;
 	}
 
 	public static List<String> getSuguestSearch(String key) {
@@ -1331,6 +1368,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;
+		}
+	}
+
 	/**
 	 * 鑾峰彇鍟嗗搧鐨勭敤鎴峰垎鎴愭瘮渚�
 	 * 
@@ -1357,7 +1429,6 @@
 	 */
 	public static BigDecimal getGoodsHongBaoMoney(TaoBaoGoodsBrief goodsBrief, BigDecimal rate) {
 		BigDecimal money = null;
-
 		if (StringUtil.isNullOrEmpty(goodsBrief.getCouponInfo())
 				|| goodsBrief.getCouponInfo().trim().equalsIgnoreCase("鏃�")) {
 			money = MoneyBigDecimalUtil.mul(
@@ -1681,29 +1752,6 @@
 		return taoBaoGoods;
 	}
 
-	public static TaoBaoGoodsBrief convert(DaTaoKeDetail detail) {
-		TaoBaoGoodsBrief taoBaoGoods = new TaoBaoGoodsBrief();
-		taoBaoGoods.setAuctionId(detail.getGoodsId());
-		taoBaoGoods.setBiz30day(detail.getSalesNum());
-		taoBaoGoods.setCouponAmount(detail.getQuanPrice());
-		taoBaoGoods.setCouponInfo(String.format("婊�%s鍏冨噺%s鍏�", detail.getQuanCondition(),
-				MoneyBigDecimalUtil.getWithNoZera(detail.getQuanPrice())));
-		taoBaoGoods.setCouponLeftCount(detail.getQuanSurplus());
-		taoBaoGoods.setCouponStartFee(new BigDecimal(detail.getQuanCondition()));
-		taoBaoGoods.setCouponTotalCount(detail.getQuanSurplus());
-		taoBaoGoods.setPictUrl(detail.getPic());
-		taoBaoGoods.setPictUrlWhite(detail.getPic());
-		taoBaoGoods.setSellerId(detail.getSellerId());
-		taoBaoGoods.setShopTitle("");
-		taoBaoGoods.setTitle(detail.getdTitle());
-		taoBaoGoods.setUserType(detail.getIsTmall());
-		taoBaoGoods.setZkPrice(detail.getOrgPrice());
-		taoBaoGoods.setTkRate(detail.getCommission());
-		taoBaoGoods.setTkCommFee(new BigDecimal("0"));
-		taoBaoGoods.setState(0);
-		return taoBaoGoods;
-	}
-
 	public static TaoBaoGoodsBrief convert(DaTaoKeDetailV2 detail) {
 		TaoBaoGoodsBrief taoBaoGoods = new TaoBaoGoodsBrief();
 		taoBaoGoods.setAuctionId(detail.getGoodsId());
@@ -1766,40 +1814,68 @@
 		return url;
 	}
 
+	/**
+	 * 鑾峰彇娣樺疂鐨勫晢鍝佽鎯�
+	 * 
+	 * @param actionId
+	 * @return
+	 */
 	public static TaoBaoGoodsBrief getSimpleGoodsBrief(Long actionId) {
 		JSONObject data = new JSONObject();
 		data.put("itemNumId", actionId + "");
 
 		String url = "";
 		try {
-			url = String.format("https://acs.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/?data=%s",
+			url = String.format(
+					"http://acs.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/?data=%s&qq-pf-to=pcqq.group",
 					URLEncoder.encode(data.toString(), "UTF-8"));
 		} catch (UnsupportedEncodingException e) {
 			e.printStackTrace();
 		}
 
-		String result = HttpUtil.get(url);
+		String result = null;
+		try {
+			Connection.Response doc = Jsoup.connect(url).ignoreContentType(true).timeout(1000 * 10)
+					.userAgent(
+							"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362")
+					.header("Accept", "text/html, application/xhtml+xml, application/xml; q=0.9, */*; q=0.8")
+					.header("Accept-Language", "zh-CN").header("Host", "acs.m.taobao.com")
+					.header("Upgrade-Insecure-Requests", "1")
+					.header("Cookie",
+							"_cc_=VFC%2FuZ9ajQ%3D%3D; isg=BLu7TvdFYk89dV4DMXO7XNRGU58lEM8SDjV-ja14l7rRDNvuNeBfYtlOJmznNycK; thw=cn; miid=1490566681358073134; x=e%3D1%26p%3D*%26s%3D0%26c%3D0%26f%3D0%26g%3D0%26t%3D0%26__ll%3D-1%26_ato%3D0; cna=ZW8rFCpNP1gCAWpXAiKqMzqi; tracknick=tb23001560; l=cBxbffilq1UJdAFCBOCanurza77OSdAYYuPzaNbMi_5NE6T1BR7Ok6G1vF96VsWdOW8B4NSiTkp9-etkZ3Znq9SpXUJ1.; tg=0; _w_app_lg=19; WAPFDFDTGFG=%2B4cMKKP%2B8PI%2BtNYpkiAuTPLkiJB1kcwi")
+					.execute();
+			result = doc.body();
+		} catch (Exception e1) {
+			e1.printStackTrace();
+		}
+
 		JSONObject resultOBJ = JSONObject.fromObject(result);
 		if (resultOBJ.optJSONObject("data") != null) {
 			data = resultOBJ.optJSONObject("data");
-			JSONObject item = data.optJSONObject("item");
-			JSONObject seller = data.optJSONObject("seller");
-			TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
-			goods.setAuctionId(item.optLong("itemId"));
-			goods.setTitle(item.optString("title"));
-			if (item.optJSONArray("images") != null && item.optJSONArray("images").size() > 0) {
-				String picture = item.optJSONArray("images").optString(0);
-				goods.setPictUrl(picture.startsWith("http") ? picture : "https:" + picture);
+			if (data != null) {
+				JSONObject item = data.optJSONObject("item");
+				if (item != null) {
+					JSONObject seller = data.optJSONObject("seller");
+					TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
+					goods.setTitle(item.optString("title"));
+					goods.setAuctionId(item.optLong("itemId"));
+					goods.setTitle(item.optString("title"));
+					if (item.optJSONArray("images") != null && item.optJSONArray("images").size() > 0) {
+						String picture = item.optJSONArray("images").optString(0);
+						goods.setPictUrl(picture.startsWith("http") ? picture : "https:" + picture);
+					}
+					if (seller != null) {
+						goods.setSellerId(seller.optLong("shopId"));
+						String shopType = seller.optString("shopType");
+						if ("B".equalsIgnoreCase(shopType)) {
+							goods.setUserType(1);
+						} else
+							goods.setUserType(0);
+						goods.setShopTitle(seller.optString("shopName"));
+					}
+					return goods;
+				}
 			}
-			goods.setSellerId(seller.optLong("shopId"));
-			String shopType = seller.optString("shopType");
-			if ("B".equalsIgnoreCase(shopType)) {
-				goods.setUserType(1);
-			} else
-				goods.setUserType(0);
-
-			goods.setShopTitle(seller.optString("shopName"));
-			return goods;
 		}
 		return null;
 	}
@@ -1822,38 +1898,68 @@
 			e.printStackTrace();
 		}
 		String result = HttpUtil.get(url);
-		JSONObject resultJson = JSONObject.fromObject(result);
-		JSONObject dataJson = resultJson.optJSONObject("data");
-		JSONObject sellerJson = dataJson.optJSONObject("seller");
+
 		TaoBaoShop shop = new TaoBaoShop();
-		shop.setGoodRatePercentage(new BigDecimal(sellerJson.optString("goodRatePercentage").replace("%", "")));
-		shop.setId(sellerJson.optLong("userId"));
 
-		JSONArray array = sellerJson.optJSONArray("evaluates");
-		for (int i = 0; i < array.size(); i++) {
-			JSONObject item = array.optJSONObject(i);
-			if ("瀹濊礉鎻忚堪".equalsIgnoreCase(item.optString("title").trim())) {
-				shop.setScoreGoods(new BigDecimal(item.optString("score").trim()));
-				shop.setScoreGoodsD(new BigDecimal(item.optString("level").trim()));
-			} else if ("鍗栧鏈嶅姟".equalsIgnoreCase(item.optString("title").trim())) {
-				shop.setScoreSeller(new BigDecimal(item.optString("score").trim()));
-				shop.setScoreSellerD(new BigDecimal(item.optString("level").trim()));
-			} else if ("鐗╂祦鏈嶅姟".equalsIgnoreCase(item.optString("title").trim())) {
-				shop.setScoreLogistics(new BigDecimal(item.optString("score").trim()));
-				shop.setScoreLogisticsD(new BigDecimal(item.optString("level").trim()));
+		try {
+			JSONObject resultJson = JSONObject.fromObject(result);
+			JSONObject dataJson = resultJson.optJSONObject("data");
+			JSONObject sellerJson = dataJson.optJSONObject("seller");
+
+			shop.setGoodRatePercentage(new BigDecimal(sellerJson.optString("goodRatePercentage").replace("%", "")));
+
+			LogHelper.test("鍗栧淇℃伅:" + result);
+			shop.setId(sellerJson.optLong("userId"));
+			JSONArray array = sellerJson.optJSONArray("evaluates");
+			for (int i = 0; i < array.size(); i++) {
+				JSONObject item = array.optJSONObject(i);
+				if ("瀹濊礉鎻忚堪".equalsIgnoreCase(item.optString("title").trim())) {
+					shop.setScoreGoods(new BigDecimal(item.optString("score").trim()));
+					shop.setScoreGoodsD(new BigDecimal(item.optString("level").trim()));
+				} else if ("鍗栧鏈嶅姟".equalsIgnoreCase(item.optString("title").trim())) {
+					shop.setScoreSeller(new BigDecimal(item.optString("score").trim()));
+					shop.setScoreSellerD(new BigDecimal(item.optString("level").trim()));
+				} else if ("鐗╂祦鏈嶅姟".equalsIgnoreCase(item.optString("title").trim())) {
+					shop.setScoreLogistics(new BigDecimal(item.optString("score").trim()));
+					shop.setScoreLogisticsD(new BigDecimal(item.optString("level").trim()));
+				}
 			}
+
+			shop.setSellerNick(sellerJson.optString("sellerNick"));
+			shop.setShopIcon("https:" + sellerJson.optString("shopIcon"));
+			shop.setShopId(sellerJson.optLong("shopId"));
+			shop.setShopName(sellerJson.optString("shopName"));
+			if ("B".equalsIgnoreCase(sellerJson.optString("sellerType")))
+				shop.setUserType(1);
+			else
+				shop.setUserType(0);
+
+			shop.setShopLink(TaoBaoUtil.getShopLink(shop.getId()));
+		} catch (Exception e) {
+			// if (1 > 0)
+			// return null;
+			try {
+				TaoBaoGoodsBrief goods = TaoKeApiUtil.getSimpleGoodsInfo(auctionId);
+				shop.setId(goods.getSellerId());
+				shop.setShopName(goods.getShopTitle());
+				shop.setUserType(goods.getUserType());
+			} catch (Exception e1) {
+				shop.setId(1L);
+				shop.setShopName("");
+				shop.setUserType(0);
+			}
+
+			shop.setGoodRatePercentage(new BigDecimal(100));
+			shop.setScoreGoods(new BigDecimal("4.9"));
+			shop.setScoreGoodsD(new BigDecimal("0"));
+			shop.setScoreSeller(new BigDecimal("4.9"));
+			shop.setScoreSellerD(new BigDecimal("0"));
+			shop.setScoreLogistics(new BigDecimal("4.9"));
+			shop.setScoreLogisticsD(new BigDecimal("0"));
+			shop.setSellerNick("");
+			shop.setShopIcon("https:");
+			shop.setShopLink(TaoBaoUtil.getShopLink(shop.getId()));
 		}
-
-		shop.setSellerNick(sellerJson.optString("sellerNick"));
-		shop.setShopIcon("https:" + sellerJson.optString("shopIcon"));
-		shop.setShopId(sellerJson.optLong("shopId"));
-		shop.setShopName(sellerJson.optString("shopName"));
-		if ("B".equalsIgnoreCase(sellerJson.optString("sellerType")))
-			shop.setUserType(1);
-		else
-			shop.setUserType(0);
-
-		shop.setShopLink(TaoBaoUtil.getShopLink(shop.getId()));
 
 		return shop;
 	}
@@ -1868,10 +1974,184 @@
 		return "http://store.taobao.com/shop/view_shop.htm?user_number_id=" + sellerId;
 	}
 
-	public static void main(String[] args) {
-		String s = channelMap.get("3");
-		System.out.println(s);
+	/**
+	 * 鏄惁鍙互鍔犲叆娣樼ぜ閲戠殑棰勯�夊晢鍝佸簱
+	 * 
+	 * @param v2
+	 * @return
+	 */
+	public static boolean canAddToTLJBuyGoods(TaoBaoGoodsBrief goods) {
+		BigDecimal tljMoney = getShareGoodsHongBaoInfo(goods, TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE);
+		// 涓嶈兘灏忎簬1鍧�
+		if (tljMoney.compareTo(new BigDecimal(1)) < 0 || tljMoney.compareTo(new BigDecimal(10)) > 0)
+			return false;
 
+		// 鍒稿悗浠蜂笉鑳藉ぇ浜�150
+		if (getAfterUseCouplePrice(goods).compareTo(new BigDecimal(150)) > 0)
+			return false;
+
+		return true;
+	}
+
+	/**
+	 * 鏌ヨ澶╃尗鍟嗗搧鍥剧墖銆佹爣棰�
+	 * 
+	 * @param auctionId
+	 * @return
+	 */
+	public static TaoBaoGoodsBrief getTmallGoodsInfo(String auctionId) {
+		TaoBaoGoodsBrief taoBaoGoodsBrief = null;
+		try {
+			Connection connect = Jsoup.connect(String.format(TM_PHONE_URL, auctionId));
+			Document document = connect.get();
+			Elements elements = document.getElementsByTag("script");
+			if (elements.size() >= 0) {
+				for (int i = 0; i < elements.size(); i++) {
+					String content = elements.get(i).toString();
+					if (content.contains("var _DATA_Mdskip")) {
+						content = content.replace("<script>", "");
+						content = content.replace("</script>", "");
+
+						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");
+						engine.eval(content);
+
+						if (engine instanceof Invocable) {
+							Invocable in = (Invocable) engine;
+							JSONObject json = JSONObject.fromObject(in.invokeFunction("getData"));
+							Object title = json.get("title");
+							Object pictUrl = json.get("pictUrl");
+							taoBaoGoodsBrief = new TaoBaoGoodsBrief();
+							taoBaoGoodsBrief.setTitle(title.toString());
+							taoBaoGoodsBrief.setPictUrl(pictUrl.toString());
+						}
+
+						break;
+					}
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return taoBaoGoodsBrief;
+	}
+
+	/**
+	 * 鎶栭煶杩斿埄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
+	 * @return
+	 */
+	public static String filterTaoToken(String token) {
+		if (StringUtil.isNullOrEmpty(token))
+			return token;
+		if (token.contains("锟�") || token.contains("鈧�")) {
+			String newToken = "";
+			for (int i = 0; i < token.length(); i++) {
+				if (token.charAt(i) == '锟�' || token.charAt(i) == '鈧�') {
+					if (!newToken.contains("("))
+						newToken += "(";
+					else
+						newToken += ")";
+				} else
+					newToken += token.charAt(i) + "";
+			}
+			return newToken;
+		}
+		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) && group.length() >= 10)
+				return group;
+		}
+		return null;
+	}
+
+	public static boolean isSpecialGoods(Integer materialLibType) {
+		if (materialLibType != null && materialLibType == 1)
+			return true;
+		else
+			return false;
+	}
+
+	/**
+	 * 浠庢枃鏈腑鎻愬彇娣樺彛浠�
+	 * @Title: getTokenListFromText
+	 * @Description: 
+	 * @param str
+	 * @return 
+	 * List<String> 杩斿洖绫诲瀷
+	 * @throws
+	 */
+	public static List<String> getTokenListFromText(String str) {
+		String[] marks = new String[] { "鈧�", "楼", "锟�", "鈧�", "\\$", "鈧�", "垄", "鈧�" };
+
+		return getTokenListFromText(str, Arrays.asList(marks));
+	}
+
+	public static List<String> getTokenListFromText(String str, List<String> markList) {
+		List<String> expressList = new ArrayList<>();
+		for (String st : markList) {
+			expressList.add(String.format("(%s{1}[A-Za-z0-9]{11,13}+%s{1})", st, st));
+		}
+		String pattern = StringUtil.concat(expressList, "|");
+		Pattern r = Pattern.compile(pattern);
+		Matcher m = r.matcher(str);
+		List<String> urlList = new ArrayList<>();
+		while (m.find()) {
+			urlList.add(m.group());
+		}
+		return urlList;
 	}
 
 }

--
Gitblit v1.8.0