admin
2019-10-10 e19ce4be094d93f68bdb6ee1c28e9caa502bf2c4
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
@@ -14,6 +14,9 @@
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;
@@ -57,15 +60,15 @@
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;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -705,6 +708,8 @@
      tg.setReservePrice(tb.getReservePrice());
      tg.setUserType(tb.getUserType());
      tg.setShopTitle(tb.getShopTitle());
      tg.setTkRate(tb.getTkRate());
      tg.setSellerId(tb.getSellerId());
      tg.setState(tb.getState()); // 状态:2018-12-03
      if (tb.getCouponAmount().compareTo(BigDecimal.valueOf(0)) > 0) {
@@ -1688,7 +1693,8 @@
            MoneyBigDecimalUtil.getWithNoZera(detail.getQuanPrice())));
      taoBaoGoods.setCouponLeftCount(detail.getQuanSurplus());
      taoBaoGoods.setCouponStartFee(new BigDecimal(detail.getQuanCondition()));
      taoBaoGoods.setCouponTotalCount(detail.getQuanSurplus());
      if (detail.getQuanReceive() != null)
         taoBaoGoods.setCouponTotalCount(detail.getQuanSurplus() + detail.getQuanReceive());
      taoBaoGoods.setPictUrl(detail.getPic());
      taoBaoGoods.setPictUrlWhite(detail.getPic());
      taoBaoGoods.setSellerId(detail.getSellerId());
@@ -1896,10 +1902,95 @@
      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>", "");
                  content += ";function getData(){ var json={title:_DATA_Mdskip.item.title,pictUrl:_DATA_Mdskip.item.videoDetail.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;
   }
   /**
    * 淘口令过滤
    *
    * @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;
   }
}