From 9b4bf99c1a30f3a7c2bdd6faba7589ff4f7e48e5 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 22 五月 2019 10:28:31 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 150 insertions(+), 1 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java index e02f9d1..cc0aee6 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java @@ -1,36 +1,185 @@ package com.yeshi.fanli.util.dataoke; +import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.select.Elements; import org.yeshi.utils.HttpUtil; import com.google.gson.Gson; import com.yeshi.fanli.dto.dataoke.DaTaoKeApiResult; +import com.yeshi.fanli.dto.taobao.TaoBaoShopDTO; +import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail; +import com.yeshi.fanli.util.MoneyBigDecimalUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class DaTaoKeApiUtil { final static String API_KEY = "a083abb893"; + final static String API_KEY_2 = "b7a5ea2cd9"; static Gson gson = new Gson(); public static DaTaoKeApiResult goodsList(int page) { List<DaTaoKeDetail> list = new ArrayList<>(); String url = String.format("http://api.dataoke.com/index.php?r=Port/index&type=total&appkey=%s&v=2&page=%s", - API_KEY, page + ""); + Math.random() > 0.5 ? API_KEY : API_KEY_2, page + ""); String result = HttpUtil.get(url); JSONObject resultJson = JSONObject.fromObject(result); + System.out.println(resultJson); JSONArray array = resultJson.optJSONArray("result"); for (int i = 0; i < array.size(); i++) { list.add(gson.fromJson(array.optJSONObject(i).toString(), DaTaoKeDetail.class)); } + + for (DaTaoKeDetail dt : list) + if (!dt.getPic().startsWith("http")) + dt.setPic("https:" + dt.getPic()); + return new DaTaoKeApiResult(resultJson.optJSONObject("data").optInt("total_num"), resultJson.optJSONObject("data").optString("update_time"), list); } + /** + * 鑾峰彇澶ф窐瀹㈠搧鐗屼紭閫� 鍝佺墝id + * + * @return + */ + public static List<String> getBrandIdList() { + List<String> listId = null; + try { + Document doc = Jsoup.connect("http://www.dataoke.com/brandFeature").get(); + Elements els = doc.getElementsByTag("script"); + for (int i = 0; i < els.size(); i++) { + if (els.get(i).html().contains("var brandData")) { + + JSONObject data = JSONObject + .fromObject(els.get(i).html().replace("var brandData =", "").trim().split("};")[0] + "}"); + listId = convertList(data); + break; + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + return listId; + } + + public static List<String> convertList(JSONObject data) { + List<String> listId = new ArrayList<String>(); + + // 钀岃叮鏂扮敓鍔� 澶忔棩濂介鍏夋爮鐩� + JSONArray arrayActs = data.optJSONObject("acts").optJSONArray("list"); + for (int i = 0; i < arrayActs.size(); i++) { + JSONObject item = arrayActs.optJSONObject(i); + listId.add(item.optString("brand_id")); + } + + // 鐑帹鐖嗘 + JSONArray arrayPushs = data.optJSONObject("pushs").optJSONArray("list"); + for (int i = 0; i < arrayPushs.size(); i++) { + JSONObject item = arrayPushs.optJSONObject(i); + listId.add(item.optString("brand_id")); + } + + // 鐑攢鍝佺墝姒� + JSONArray arrayRanks = data.optJSONObject("ranks").optJSONArray("list"); + for (int i = 0; i < arrayRanks.size(); i++) { + JSONObject item = arrayRanks.optJSONObject(i); + // long id = item.optLong("id"); + // String title =item.optString("title"); + JSONArray goods = item.optJSONArray("goods"); + for (int j = 0; j < goods.size(); j++) { + JSONObject good = goods.optJSONObject(j); + listId.add(good.optString("brand_id")); + } + } + return listId; + } + + /** + * 鑾峰彇搴楅摵涓嬪墠4涓晢鍝併�佸簵閾轰粙缁� + * + * @param brandId + * @return + */ + public static TaoBaoShopDTO getDynamicShopInfo(String brandId) { + if (brandId == null) { + return null; + } + TaoBaoShopDTO taoBaoShopDTO = null; + + Document doc; + try { + doc = Jsoup.connect("http://www.dataoke.com/brandSingle?id=" + brandId).get(); + Elements els = doc.getElementsByTag("script"); + for (int i = 0; i < els.size(); i++) { + if (els.get(i).html().contains("var brandData")) { + + JSONObject data = JSONObject + .fromObject(els.get(i).html().replace("var brandData =", "").trim().split("};")[0] + "}"); + taoBaoShopDTO = convertTaoBaoShopDTO(data); + break; + } + } + } catch (IOException e) { + e.printStackTrace(); + } + return taoBaoShopDTO; + + } + + public static TaoBaoShopDTO convertTaoBaoShopDTO(JSONObject data) { + TaoBaoShopDTO taoBaoShopDTO = new TaoBaoShopDTO(); + JSONObject item = data.optJSONObject("act"); + taoBaoShopDTO.setSellerId(item.optLong("seller_id")); + taoBaoShopDTO.setBrandId(item.optString("brand_id")); + taoBaoShopDTO.setBrandDes(item.optString("brand_des")); + int userType = 0; + + List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>(); + JSONArray arrayGoods = data.optJSONArray("goods"); + for (int i = 0; i < arrayGoods.size(); i++) { + if (i >= 2) { + break; + } + JSONObject itemGoods = arrayGoods.optJSONObject(i); + TaoBaoGoodsBrief taoBaoGoods = new TaoBaoGoodsBrief(); + taoBaoGoods.setAuctionId(itemGoods.optLong("goodsid")); + taoBaoGoods.setBiz30day(itemGoods.optInt("xiaoliang")); + taoBaoGoods.setCouponAmount(new BigDecimal(itemGoods.optString("quan_jine"))); + taoBaoGoods.setCouponInfo(String.format("婊�%s鍏冨噺%s鍏�", itemGoods.optString("quan_tiaojian"), + MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(itemGoods.optString("quan_jine"))))); + taoBaoGoods.setCouponLeftCount(itemGoods.optInt("quan_num")); + taoBaoGoods.setCouponStartFee(new BigDecimal(itemGoods.optString("quan_tiaojian"))); + taoBaoGoods.setCouponTotalCount(itemGoods.optInt("quan_num")); + taoBaoGoods.setPictUrl(itemGoods.optString("pic")); + taoBaoGoods.setPictUrlWhite(itemGoods.optString("pic")); + taoBaoGoods.setSellerId(itemGoods.optLong("seller_id")); + taoBaoGoods.setShopTitle(""); + taoBaoGoods.setTitle(itemGoods.optString("title")); + taoBaoGoods.setUserType(itemGoods.optInt("istmall")); + taoBaoGoods.setZkPrice(new BigDecimal(itemGoods.optString("yuanjia"))); + taoBaoGoods.setTkRate(new BigDecimal(itemGoods.optString("yongjin"))); + taoBaoGoods.setTkCommFee(new BigDecimal("0")); + taoBaoGoods.setState(0); + + listGoods.add(taoBaoGoods); + + userType = itemGoods.optInt("istmall"); + } + taoBaoShopDTO.setListGoods(listGoods); + taoBaoShopDTO.setUserType(userType); + return taoBaoShopDTO; + } + class DaTaoKeResult { Date updateTime; List<DaTaoKeDetail> dataList; -- Gitblit v1.8.0