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