yujian
2019-04-22 b6c37e4bc38db88a360d0f2c6099183f9bb75bdc
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
@@ -39,7 +39,6 @@
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.entity.common.ImageInfo;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.taobao.ScanHistory;
import com.yeshi.fanli.entity.taobao.SearchFilter;
import com.yeshi.fanli.entity.taobao.TaoBaoCoupon;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -693,7 +692,10 @@
      tg.setBiz30day(tb.getBiz30day());
      tg.setSalesCount(TaoBaoUtil.getSaleCount(tb.getBiz30day()));
      tg.setTitle(tb.getTitle());
      tg.setPictUrl(TbImgUtil.getTBSize320Img(tb.getPictUrl()));
      if (!StringUtil.isNullOrEmpty(tb.getPictUrlWhite()))
         tg.setPictUrl(TbImgUtil.getTBSize320Img(tb.getPictUrlWhite()));
      else
         tg.setPictUrl(TbImgUtil.getTBSize320Img(tb.getPictUrl()));
      tg.setZkPrice(tb.getZkPrice());
      tg.setAuctionUrl(tb.getAuctionUrl());
      tg.setReservePrice(tb.getReservePrice());
@@ -1019,53 +1021,6 @@
         return null;
   }
   public static TaoBaoGoodsBrief getTaoBaoGoodsBrief(ScanHistory sh) {
      TaoBaoGoodsBrief tb = new TaoBaoGoodsBrief();
      Field[] fields = tb.getClass().getDeclaredFields();
      Field[] shFields = sh.getClass().getDeclaredFields();
      for (int i = 0; i < fields.length; i++) {
         Field field = fields[i];
         field.setAccessible(true);
         try {
            for (Field target : shFields) {
               target.setAccessible(true);
               if (target.getName().equalsIgnoreCase(field.getName())) {
                  field.set(tb, target.get(sh));
                  break;
               }
            }
         } catch (IllegalArgumentException e) {
            e.printStackTrace();
         } catch (IllegalAccessException e) {
            e.printStackTrace();
         }
      }
      return tb;
   }
   public static ScanHistory getScanHistory(TaoBaoGoodsBrief tb) {
      ScanHistory sh = new ScanHistory();
      Field[] fields = tb.getClass().getDeclaredFields();
      Field[] shFields = sh.getClass().getDeclaredFields();
      for (int i = 0; i < fields.length; i++) {
         Field field = fields[i];
         field.setAccessible(true);
         try {
            for (Field target : shFields) {
               target.setAccessible(true);
               if (target.getName().equalsIgnoreCase(field.getName())) {
                  target.set(sh, field.get(tb));
                  break;
               }
            }
         } catch (IllegalArgumentException e) {
         } catch (IllegalAccessException e) {
         }
      }
      return sh;
   }
   public static List<String> getSuguestSearch(String key) {
      try {
         String url = String.format("https://suggest.taobao.com/sug?code=utf-8&q=%s&_=1486720576511",
@@ -1354,8 +1309,11 @@
    *            用户再次分成比例(0-100)
    * @return
    */
   public static String getGoodsHongBaoInfo(TaoBaoGoodsBrief goodsBrief, BigDecimal rate) {
      return "¥" + getGoodsHongBaoMoney(goodsBrief, rate).toString();
   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();
   }
   /**
@@ -1368,8 +1326,10 @@
   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 MoneyBigDecimalUtil.mul(
               MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(goodsBrief.getZkPrice(), goodsBrief.getTkRate()),
                     new BigDecimal("0.01")),
               MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
      } else// 有券
      {
         List<BigDecimal> list = TaoBaoCouponUtil.getCouponInfo(goodsBrief.getCouponInfo());
@@ -1378,11 +1338,14 @@
         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)
                  .setScale(2, BigDecimal.ROUND_DOWN);
            return MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil
                  .mul(MoneyBigDecimalUtil.mul(finalPrice, goodsBrief.getTkRate()), new BigDecimal("0.01")),
                  MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
         } else {// 不能用券
            return goodsBrief.getZkPrice().multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000))
                  .multiply(rate).setScale(2, BigDecimal.ROUND_DOWN);
            return MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.mul(
                  MoneyBigDecimalUtil.mul(goodsBrief.getZkPrice(), goodsBrief.getTkRate()),
                  new BigDecimal("0.01")), MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
         }
      }
   }
@@ -1757,12 +1720,17 @@
         TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief();
         goods.setAuctionId(item.optLong("itemId"));
         goods.setTitle(item.optString("title"));
         if (item.optJSONArray("images") != null && item.optJSONArray("images").size() > 0)
         {
            String picture=item.optJSONArray("images").optString(0);
            goods.setPictUrl(picture.startsWith("http")?picture:"https:"+picture);
         if (item.optJSONArray("images") != null && item.optJSONArray("images").size() > 0) {
            String picture = item.optJSONArray("images").optString(0);
            goods.setPictUrl(picture.startsWith("http") ? picture : "https:" + picture);
         }
            goods.setSellerId(seller.optLong("shopId"));
         goods.setSellerId(seller.optLong("shopId"));
         String shopType = seller.optString("shopType");
         if ("B".equalsIgnoreCase(shopType)) {
            goods.setUserType(1);
         } else
            goods.setUserType(0);
         goods.setShopTitle(seller.optString("shopName"));
         return goods;
      }