From 88b54772dbcf5ecab1e2316e4e4626ac901b8908 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期二, 22 一月 2019 15:58:24 +0800
Subject: [PATCH] 邀请码添加返回状态

---
 fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java |  162 ++++++++++++++++++++++++------------------------------
 1 files changed, 72 insertions(+), 90 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 2507ddf..2811216 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
@@ -31,6 +31,7 @@
 import org.w3c.dom.NodeList;
 import org.yeshi.utils.HttpUtil;
 import org.yeshi.utils.NumberUtil;
+import org.yeshi.utils.entity.ProxyIP;
 import org.yeshi.utils.taobao.TbImgUtil;
 
 import com.google.gson.Gson;
@@ -683,8 +684,7 @@
 		return list;
 	}
 
-	public static TaoBaoGoodsBriefExtra getTaoBaoGoodsBriefExtra(TaoBaoGoodsBrief tb, String proportion,
-			String fcRateStr, String pid) {
+	public static TaoBaoGoodsBriefExtra getTaoBaoGoodsBriefExtra(TaoBaoGoodsBrief tb, String proportion, String pid) {
 		TaoBaoGoodsBriefExtra tg = new TaoBaoGoodsBriefExtra();
 		tg.setId(tb.getId());
 		tg.setAuctionId(tb.getAuctionId());
@@ -715,17 +715,6 @@
 			tg.setTaoBaoQuanInfo(quanInfo);
 		}
 		TaoBaoHongBaoInfo hongBaoInfo = new TaoBaoHongBaoInfo();
-		BigDecimal fcRate = BigDecimal.valueOf(1);
-		String eventRate = tb.getEventRate();
-		BigDecimal rate = BigDecimal.valueOf(0);
-		if (eventRate == null) {
-			rate = tb.getTkRate();
-		} else {
-			rate = new BigDecimal(eventRate);
-			if (fcRateStr != null) {
-				fcRate = (new BigDecimal(fcRateStr).divide(BigDecimal.valueOf(100)));
-			}
-		}
 
 		hongBaoInfo.setRate("鏈�楂�40%");
 
@@ -940,12 +929,14 @@
 		tg.setId(tb.getId());
 		tg.setAuctionId(tb.getAuctionId());
 		tg.setBiz30day(tb.getBiz30day());
+		tg.setSalesCount(TaoBaoUtil.getSaleCount(tb.getBiz30day()));
 		tg.setTitle(tb.getTitle());
-		tg.setPictUrl(tb.getPictUrl() + "_200x200");
+		tg.setPictUrl(tb.getPictUrl());
 		tg.setZkPrice(tb.getZkPrice());
 		tg.setAuctionUrl(tb.getAuctionUrl());
 		tg.setReservePrice(tb.getReservePrice());
 		tg.setUserType(tb.getUserType());
+		tg.setImgList(tb.getImgList());
 
 		if (tb.getCouponAmount().compareTo(BigDecimal.valueOf(0)) == 1) {
 			TaoBaoQuanInfo quanInfo = new TaoBaoQuanInfo();
@@ -965,19 +956,8 @@
 			tg.setTaoBaoQuanInfo(quanInfo);
 		}
 
-		Map<String, String> convertMap = taoBaoUtil.manageService.convertMap();
-		String proportion = convertMap.get("hongbao_goods_proportion");
-		String fcRateStr = convertMap.get("hongbao_fc_ratio");
+		BigDecimal proportion = taoBaoUtil.manageService.getFanLiRate();
 		TaoBaoHongBaoInfo hongBaoInfo = new TaoBaoHongBaoInfo();
-		String eventRate = tb.getEventRate();
-		BigDecimal rate = BigDecimal.valueOf(0);
-		if (eventRate != null) {
-			rate = new BigDecimal(eventRate);
-		} else {
-			rate = tb.getTkRate();
-		}
-		BigDecimal fcRate = new BigDecimal(fcRateStr);
-
 		String tkMktStatus = tb.getTkMktStatus();
 		if ("1".equals(tkMktStatus)) {
 			hongBaoInfo.setType(1);
@@ -985,7 +965,7 @@
 
 		hongBaoInfo.setRate("鏈�楂�40%");
 
-		String hongbao = getGoodsHongBaoInfo(tb, new BigDecimal(proportion));
+		String hongbao = getGoodsHongBaoInfo(tb, proportion);
 		if (!hongbao.contains("鏈�楂�"))
 			hongBaoInfo.setHongbao(new BigDecimal(hongbao.replace("楼", "")));
 		else
@@ -1060,7 +1040,6 @@
 		}
 		return tb;
 	}
-
 
 	public static ScanHistory getScanHistory(TaoBaoGoodsBrief tb) {
 		ScanHistory sh = new ScanHistory();
@@ -1266,10 +1245,7 @@
 			}
 			return parsePhoneTmAndTb(id);
 		} catch (Exception e) {
-			try {
-				LogHelper.errorDetailInfo(e, "鏃犳硶瑙f瀽鍒版窐瀹濆晢鍝両D", burl);
-			} catch (Exception e1) {
-			}
+			LogHelper.error("鏃犳硶瑙f瀽鍒版窐瀹濆晢鍝両D:"+burl);
 			return null;
 		}
 
@@ -1367,8 +1343,6 @@
 		return taoBaoGoodsBrief;
 	}
 
-
-
 	/**
 	 * 鑾峰彇鍟嗗搧鐨勭敤鎴峰垎鎴愭瘮渚�
 	 * 
@@ -1379,17 +1353,21 @@
 	 * @return
 	 */
 	public static String getGoodsHongBaoInfo(TaoBaoGoodsBrief goodsBrief, BigDecimal rate) {
-		// 钀ラ攢璁″垝
-		// if ("1".equalsIgnoreCase(goodsBrief.getTkMktStatus())) {
-		// return "鏈�楂�40%";
-		// } else {
-		// 璁$畻杩斿埄
-		// 鏃犲埜
+		return "楼" + getGoodsHongBaoMoney(goodsBrief, rate).toString();
+	}
+
+	/**
+	 * 鑾峰彇娣樺疂鍟嗗搧璇ヨ幏寰楀灏戜剑閲�
+	 * 
+	 * @param goodsBrief
+	 * @param rate
+	 * @return
+	 */
+	public static BigDecimal getGoodsHongBaoMoney(TaoBaoGoodsBrief goodsBrief, BigDecimal rate) {
 		if (StringUtil.isNullOrEmpty(goodsBrief.getCouponInfo())
 				|| goodsBrief.getCouponInfo().trim().equalsIgnoreCase("鏃�")) {
-			return "楼" + goodsBrief.getZkPrice().multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000))
-					.multiply(rate).setScale(2, BigDecimal.ROUND_DOWN);
-
+			return goodsBrief.getZkPrice().multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000)).multiply(rate)
+					.setScale(2, BigDecimal.ROUND_DOWN);
 		} else// 鏈夊埜
 		{
 			List<BigDecimal> list = TaoBaoCouponUtil.getCouponInfo(goodsBrief.getCouponInfo());
@@ -1398,15 +1376,15 @@
 			if (startFee.compareTo(goodsBrief.getZkPrice()) <= 0
 					&& goodsBrief.getZkPrice().compareTo(couponAccount) > 0) {
 				BigDecimal finalPrice = goodsBrief.getZkPrice().subtract(couponAccount);
-				return "楼" + finalPrice.multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000)).multiply(rate)
+				return finalPrice.multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000)).multiply(rate)
 						.setScale(2, BigDecimal.ROUND_DOWN);
-
 			} else {// 涓嶈兘鐢ㄥ埜
-				return "楼" + goodsBrief.getZkPrice().multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000))
+				return goodsBrief.getZkPrice().multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000))
 						.multiply(rate).setScale(2, BigDecimal.ROUND_DOWN);
 			}
 		}
 	}
+
 	// }
 
 	// 鑾峰彇鍒哥殑绾㈠寘鏄剧ず
@@ -1572,34 +1550,30 @@
 
 		long startTime = System.currentTimeMillis();
 		JSONObject data = new JSONObject();
-		data.put("itemNumId", auctionId + "");
+		data.put("id", auctionId + "");
 		String url = "";
 		try {
 			url = String.format(
-					"https://acs.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/?data=%s&qq-pf-to=pcqq.group",
-					URLEncoder.encode(data.toString(), "UTF-8"));
+					"https://h5api.m.taobao.com/h5/mtop.taobao.detail.getdesc/6.0/?data=%s&callback=GoodsLogic.showTuwen&_=%s",
+					URLEncoder.encode(data.toString(), "UTF-8"), System.currentTimeMillis() + "");
 		} catch (UnsupportedEncodingException e) {
 			e.printStackTrace();
 		}
 		String result = HttpUtil.get(url);
+		result = result.replace("GoodsLogic.showTuwen(", "").replace(")", "");
 		data = JSONObject.fromObject(result);
-		String moduleDescUrl = data.optJSONObject("data").optJSONObject("item").optString("moduleDescUrl");
-		if (!StringUtil.isNullOrEmpty(moduleDescUrl)) {
+		String pcDescContent = data.optJSONObject("data").optString("pcDescContent");
+		System.out.println(pcDescContent);
+		if (!StringUtil.isNullOrEmpty(pcDescContent)) {
 			try {
-				result = HttpUtil.get("http:" + moduleDescUrl);
-				JSONObject resultJSON = JSONObject.fromObject(result);
-				JSONArray itemsArray = resultJSON.optJSONObject("data").optJSONArray("children");
-				for (int i = 0; i < itemsArray.size(); i++) {
-					// picUrl
-					JSONObject params = itemsArray.optJSONObject(i).optJSONObject("params");
-					if (params.keySet().contains("picUrl")) {
-						String pictureUrl = params.optString("picUrl");
-						JSONObject sizeJSON = params.optJSONObject("size");
-						int width = sizeJSON.optInt("width");
-						int height = sizeJSON.optInt("height");
-
-						if (!StringUtil.isNullOrEmpty(pictureUrl))
-							imgList.add(new ImageInfo(pictureUrl, width, height));
+				Document doc = Jsoup.parse(pcDescContent);
+				Elements eles = doc.getElementsByTag("img");
+				for (int i = 0; i < eles.size(); i++) {
+					String imgSrc = eles.get(i).attr("src");
+					if (imgSrc.endsWith(".jpg")) {
+						if (!imgSrc.startsWith("http"))
+							imgSrc = "https:" + imgSrc;
+						imgList.add(new ImageInfo(imgSrc, 0, 0));
 					}
 				}
 			} catch (Exception e) {
@@ -1615,36 +1589,44 @@
 	 * @return
 	 */
 
-	public static List<ImageInfo> getTBDetailImageWithSizev2(Long auctionId) {
+	public static List<ImageInfo> getTBDetailImageWithSizev2(Long auctionId, ProxyIP ip) {
 		List<ImageInfo> imgList = new ArrayList<>();
 		try {
+			Map<String, String> headers = new HashMap<>();
+			headers.put("User-Agent",
+					"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1");
+			headers.put("Referer", "https://detail.tmall.com/item.htm?id=" + auctionId);
 			String url = String.format("https://hws.m.taobao.com/cache/desc/5.0?id=" + auctionId);
-			String result = HttpUtil.get(url);
-			JSONObject data = JSONObject.fromObject(result);
+			String result = HttpUtil.get(url, headers, ip);
+			if (!StringUtil.isNullOrEmpty(result)) {
+				JSONObject data = JSONObject.fromObject(result);
 
-			JSONArray array = data.optJSONObject("wdescContent").optJSONArray("pages");
-			if (array != null) {
-				String html = "";
-				for (int i = 0; i < array.size(); i++) {
-					String itemStr = array.optString(i).replace("<img", "<a").replace("</img>", "<a>");
-					html += itemStr;
-				}
-				Document doc = Jsoup.parse(html);
-				Elements items = doc.getElementsByTag("a");
-				for (int i = 0; i < items.size(); i++) {
-					ImageInfo img = new ImageInfo();
-					Element item = items.get(i);
-					if (StringUtil.isNullOrEmpty(item.ownText()))
-						continue;
-					if (!StringUtil.isNullOrEmpty(item.attr("size"))) {
-						img.setWidth(Integer.parseInt(item.attr("size").split("x")[0]));
-						img.setHeight(Integer.parseInt(item.attr("size").split("x")[1]));
+				JSONArray array = data.optJSONObject("wdescContent").optJSONArray("pages");
+				if (array != null) {
+					String html = "";
+					for (int i = 0; i < array.size(); i++) {
+						String itemStr = array.optString(i).replace("<img", "<a").replace("</img>", "<a>");
+						html += itemStr;
 					}
-					if (item.ownText().startsWith("http"))
-						img.setPicture(item.ownText().trim());
-					else
-						img.setPicture("http:" + item.ownText().trim());
-					imgList.add(img);
+					Document doc = Jsoup.parse(html);
+					Elements items = doc.getElementsByTag("a");
+					for (int i = 0; i < items.size(); i++) {
+						ImageInfo img = new ImageInfo();
+						Element item = items.get(i);
+						if (StringUtil.isNullOrEmpty(item.ownText()))
+							continue;
+						if (!StringUtil.isNullOrEmpty(item.attr("size"))) {
+							img.setWidth(Integer.parseInt(item.attr("size").split("x")[0]));
+							img.setHeight(Integer.parseInt(item.attr("size").split("x")[1]));
+						}
+						if (item.ownText().startsWith("http"))
+							img.setPicture(item.ownText().trim());
+						else
+							img.setPicture("http:" + item.ownText().trim());
+						if (img != null && img.getPicture() != null && img.getPicture().endsWith(".jpg"))
+							imgList.add(img);
+					}
+
 				}
 			}
 

--
Gitblit v1.8.0