admin
2019-05-16 4114e871bcb3dce771b6aed64a1027d0bbb95ca6
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
@@ -1,7 +1,6 @@
package com.yeshi.fanli.util.taobao;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.net.URLEncoder;
@@ -50,7 +49,9 @@
import com.yeshi.fanli.entity.taobao.TaoBaoQuanInfo;
import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav;
import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
import com.yeshi.fanli.entity.taobao.TaoBaoShop;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.goods.TaoBaoLinkService;
@@ -62,6 +63,7 @@
import com.yeshi.fanli.util.StringUtil;
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;
@@ -702,7 +704,10 @@
      tg.setUserType(tb.getUserType());
      tg.setShopTitle(tb.getShopTitle());
      tg.setState(tb.getState()); // 状态:2018-12-03
      if (tb.getCouponAmount().compareTo(BigDecimal.valueOf(0)) == 1) {
      if (tb.getCouponAmount().compareTo(BigDecimal.valueOf(0)) > 0) {
         tg.setCoupon(true);// 有券
         TaoBaoQuanInfo quanInfo = new TaoBaoQuanInfo();
         quanInfo.setCouponAmount(tb.getCouponAmount());
         String couponEffectiveEndTime = tb.getCouponEffectiveEndTime();
@@ -756,6 +761,14 @@
      tg.setTaoBaoHongBaoInfo(hongBaoInfo);
      tg.setMoneyType(1);
      tg.setSalesType(1);
      // 测试使用
      // tg.setSalesType(Math.random() > 0.5 ? tg.getSalesType() : 3);
       List<ClientTextStyleVO> labels = new ArrayList<>();
       labels.add(new ClientTextStyleVO("标签内容", "#F14242"));
       labels.add(new ClientTextStyleVO("标签内容", "#00FF00"));
       tg.setLabels(labels);
      return tg;
   }
@@ -998,6 +1011,17 @@
         }
      }
      tg.setTaoBaoHongBaoInfo(hongBaoInfo);
      tg.setMoneyType(1);
      tg.setSalesType(1);
      // 测试使用
      // tg.setMoneyType(Math.random() > 0.5 ? 1 : 2);
      // tg.setSalesType(Math.random() > 0.5 ? 1 : 2);
      // tg.setSalesType(Math.random() > 0.5 ? tg.getSalesType() : 3);
       List<ClientTextStyleVO> labels = new ArrayList<>();
       labels.add(new ClientTextStyleVO("标签内容", "#F14242"));
       labels.add(new ClientTextStyleVO("标签内容", "#000000"));
       tg.setLabels(labels);
      return tg;
   }
@@ -1310,10 +1334,11 @@
    * @return
    */
   public static String getGoodsHongBaoInfo(TaoBaoGoodsBrief goodsBrief, BigDecimal rate) {
      if (goodsBrief != null && goodsBrief.getMaterialLibType() != null && goodsBrief.getMaterialLibType() == 0)
         return "¥0.00";
      else
         return "¥" + getGoodsHongBaoMoney(goodsBrief, rate).toString();
      // if (goodsBrief != null && goodsBrief.getMaterialLibType() != null &&
      // goodsBrief.getMaterialLibType() == 0)
      // return "¥0.00";
      // else
      return "¥" + getGoodsHongBaoMoney(goodsBrief, rate).toString();
   }
   /**
@@ -1669,6 +1694,29 @@
      return taoBaoGoods;
   }
   public static TaoBaoGoodsBrief convert(DaTaoKeDetail detail) {
      TaoBaoGoodsBrief taoBaoGoods = new TaoBaoGoodsBrief();
      taoBaoGoods.setAuctionId(detail.getGoodsId());
      taoBaoGoods.setBiz30day(detail.getSalesNum());
      taoBaoGoods.setCouponAmount(detail.getQuanPrice());
      taoBaoGoods.setCouponInfo(String.format("满%s元减%s元", detail.getQuanCondition(),
            MoneyBigDecimalUtil.getWithNoZera(detail.getQuanPrice())));
      taoBaoGoods.setCouponLeftCount(detail.getQuanSurplus());
      taoBaoGoods.setCouponStartFee(new BigDecimal(detail.getQuanCondition()));
      taoBaoGoods.setCouponTotalCount(detail.getQuanSurplus());
      taoBaoGoods.setPictUrl(detail.getPic());
      taoBaoGoods.setPictUrlWhite(detail.getPic());
      taoBaoGoods.setSellerId(detail.getSellerId());
      taoBaoGoods.setShopTitle("");
      taoBaoGoods.setTitle(detail.getdTitle());
      taoBaoGoods.setUserType(detail.getIsTmall());
      taoBaoGoods.setZkPrice(detail.getOrgPrice());
      taoBaoGoods.setTkRate(detail.getCommission());
      taoBaoGoods.setTkCommFee(new BigDecimal("0"));
      taoBaoGoods.setState(0);
      return taoBaoGoods;
   }
   /**
    * 获取淘宝联盟的授权链接
    * 
@@ -1737,6 +1785,70 @@
      return null;
   }
   /**
    * 根据商品ID获取店铺详情
    *
    * @param auctionId
    * @return
    */
   public static TaoBaoShop getTaoBaoShopDetailByAuctionId(Long auctionId) {
      JSONObject data = new JSONObject();
      data.put("itemNumId", auctionId + "");
      String url = "";
      try {
         url = String.format("https://acs.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/?data=%s",
               URLEncoder.encode(data.toString(), "UTF-8"));
      } catch (UnsupportedEncodingException e) {
         e.printStackTrace();
      }
      String result = HttpUtil.get(url);
      JSONObject resultJson = JSONObject.fromObject(result);
      JSONObject dataJson = resultJson.optJSONObject("data");
      JSONObject sellerJson = dataJson.optJSONObject("seller");
      TaoBaoShop shop = new TaoBaoShop();
      shop.setGoodRatePercentage(new BigDecimal(sellerJson.optString("goodRatePercentage").replace("%", "")));
      shop.setId(sellerJson.optLong("userId"));
      JSONArray array = sellerJson.optJSONArray("evaluates");
      for (int i = 0; i < array.size(); i++) {
         JSONObject item = array.optJSONObject(i);
         if ("宝贝描述".equalsIgnoreCase(item.optString("title").trim())) {
            shop.setScoreGoods(new BigDecimal(item.optString("score").trim()));
            shop.setScoreGoodsD(new BigDecimal(item.optString("level").trim()));
         } else if ("卖家服务".equalsIgnoreCase(item.optString("title").trim())) {
            shop.setScoreSeller(new BigDecimal(item.optString("score").trim()));
            shop.setScoreSellerD(new BigDecimal(item.optString("level").trim()));
         } else if ("物流服务".equalsIgnoreCase(item.optString("title").trim())) {
            shop.setScoreLogistics(new BigDecimal(item.optString("score").trim()));
            shop.setScoreLogisticsD(new BigDecimal(item.optString("level").trim()));
         }
      }
      shop.setSellerNick(sellerJson.optString("sellerNick"));
      shop.setShopIcon("https:" + sellerJson.optString("shopIcon"));
      shop.setShopId(sellerJson.optLong("shopId"));
      shop.setShopName(sellerJson.optString("shopName"));
      if ("B".equalsIgnoreCase(sellerJson.optString("sellerType")))
         shop.setUserType(1);
      else
         shop.setUserType(0);
      shop.setShopLink(TaoBaoUtil.getShopLink(shop.getId()));
      return shop;
   }
   /**
    * 根据卖家id获取店铺链接
    *
    * @param sellerId
    * @return
    */
   public static String getShopLink(Long sellerId) {
      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);