yujian
2019-12-19 626d711cb15896055c13fe344eb7fcc824589715
fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java
@@ -29,6 +29,7 @@
import org.yeshi.utils.HttpUtil;
import com.yeshi.fanli.dto.GoodsClassDTO;
import com.yeshi.fanli.dto.douyin.DouYinGoods;
import com.yeshi.fanli.dto.jd.JDCommissionInfo;
import com.yeshi.fanli.dto.jd.JDCouponInfo;
import com.yeshi.fanli.dto.jd.JDPingouInfo;
@@ -625,6 +626,80 @@
      return null;
   }
   /**
    * 通过链接id
    * @param url
    * @return
    */
   public static String getJDGoodsIdByWeiXin(String url) {
      if (StringUtil.isNullOrEmpty(url))
         return null;
      try {
         String id = null;
         int indexOf = url.indexOf("?");
         url = url.substring(indexOf + 1, url.length()-1);
         String[] temp = url.split("&");
         for (int i =0; i < temp.length; i ++) {
             String content = temp[i];
            if (content.startsWith("sku")) {
               id = content.split("=")[content.split("=").length-1];
               break;
            }
         }
         return id;
      } catch (Exception e) {
         e.printStackTrace();
      }
      return null;
   }
   /**
    * 根据 u.jd短连接获取真实的商品id
    * @param url
    * @return
    */
   public static String getJDGoodsIdByUJD(String url) {
      try {
         String body =  HttpUtil.get(url);
         Document doc = Jsoup.parse(body);
         Elements els = doc.getElementsByTag("script");
         for (int i = 0; i < els.size(); i++) {
            String content = els.get(i).html();
            if (content.indexOf("var hrl") > -1) {
               ScriptEngineManager manager = new ScriptEngineManager();
               ScriptEngine engine = manager.getEngineByName("javascript");
               int indexOf = content.indexOf("var hrl");
               content = content.substring(indexOf, content.length());
               int indexOf2 = content.indexOf(";");
               content = content.substring(0, indexOf2+1);
               String js = "function getData(){return  JSON.stringify(hrl);}" + content;
               engine.eval(js);
               if (engine instanceof Invocable) {
                  Invocable in = (Invocable) engine;
                  String data = in.invokeFunction("getData").toString();
                  String link = data.substring(1, data.length()-1);
                  String realLink = HttpUtil.getLocation(link);
                  realLink = realLink.substring(realLink.indexOf("sku=") + 4, realLink.length());
                  return realLink.substring(0, realLink.indexOf("&"));
               }
            }
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
      return null;
   }
   /**
    * 查询天猫商品图片、标题
    * 
@@ -814,5 +889,9 @@
      }
      return getShowCouponInfo(goods.getCouponInfoList(), price);
   }
}