admin
2018-12-10 5f01b1bf63bd3dd242fc29e012e15c37fc03a190
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
@@ -18,9 +18,6 @@
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
import org.jsoup.Connection;
@@ -32,13 +29,15 @@
import org.springframework.stereotype.Component;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.NodeList;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.NumberUtil;
import org.yeshi.utils.taobao.TbImgUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.entity.bus.user.CollectionGoods;
import com.yeshi.fanli.entity.bus.user.UserInfo;
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;
@@ -53,7 +52,6 @@
import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.goods.CommonGoods;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.goods.TaoBaoLinkService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
@@ -62,9 +60,9 @@
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoHttpUtil;
import com.yeshi.fanli.util.TimeUtil;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.NumberUtil;
import org.yeshi.utils.taobao.TbImgUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Component
public class TaoBaoUtil {
@@ -685,8 +683,7 @@
      return list;
   }
   public static TaoBaoGoodsBriefExtra getTaoBaoGoodsBriefExtra(TaoBaoGoodsBrief tb, String proportion,
         String fcRateStr, String pid) {
   public static TaoBaoGoodsBriefExtra getTaoBaoGoodsBriefExtra(TaoBaoGoodsBrief tb, String proportion, String pid) {
      TaoBaoGoodsBriefExtra tg = new TaoBaoGoodsBriefExtra();
      tg.setId(tb.getId());
      tg.setAuctionId(tb.getAuctionId());
@@ -699,6 +696,7 @@
      tg.setReservePrice(tb.getReservePrice());
      tg.setUserType(tb.getUserType());
      tg.setShopTitle(tb.getShopTitle());
      tg.setState(tb.getState()); // 状态:2018-12-03
      if (tb.getCouponAmount().compareTo(BigDecimal.valueOf(0)) == 1) {
         TaoBaoQuanInfo quanInfo = new TaoBaoQuanInfo();
         quanInfo.setCouponAmount(tb.getCouponAmount());
@@ -716,17 +714,6 @@
         tg.setTaoBaoQuanInfo(quanInfo);
      }
      TaoBaoHongBaoInfo hongBaoInfo = new TaoBaoHongBaoInfo();
      BigDecimal fcRate = BigDecimal.valueOf(1);
      String eventRate = tb.getEventRate();
      BigDecimal rate = BigDecimal.valueOf(0);
      if (eventRate == null) {
         rate = tb.getTkRate();
      } else {
         rate = new BigDecimal(eventRate);
         if (fcRateStr != null) {
            fcRate = (new BigDecimal(fcRateStr).divide(BigDecimal.valueOf(100)));
         }
      }
      hongBaoInfo.setRate("最高40%");
@@ -966,19 +953,8 @@
         tg.setTaoBaoQuanInfo(quanInfo);
      }
      Map<String, String> convertMap = taoBaoUtil.manageService.convertMap();
      String proportion = convertMap.get("hongbao_goods_proportion");
      String fcRateStr = convertMap.get("hongbao_fc_ratio");
      BigDecimal proportion = taoBaoUtil.manageService.getFanLiRate();
      TaoBaoHongBaoInfo hongBaoInfo = new TaoBaoHongBaoInfo();
      String eventRate = tb.getEventRate();
      BigDecimal rate = BigDecimal.valueOf(0);
      if (eventRate != null) {
         rate = new BigDecimal(eventRate);
      } else {
         rate = tb.getTkRate();
      }
      BigDecimal fcRate = new BigDecimal(fcRateStr);
      String tkMktStatus = tb.getTkMktStatus();
      if ("1".equals(tkMktStatus)) {
         hongBaoInfo.setType(1);
@@ -986,7 +962,7 @@
      hongBaoInfo.setRate("最高40%");
      String hongbao = getGoodsHongBaoInfo(tb, new BigDecimal(proportion));
      String hongbao = getGoodsHongBaoInfo(tb, proportion);
      if (!hongbao.contains("最高"))
         hongBaoInfo.setHongbao(new BigDecimal(hongbao.replace("¥", "")));
      else
@@ -1050,31 +1026,6 @@
               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 TaoBaoGoodsBrief getTaoBaoGoodsBrief(CollectionGoods 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())) {
                  if (!"createtime".equalsIgnoreCase(field.getName()))
                     field.set(tb, target.get(sh));
                  break;
               }
            }
@@ -1392,38 +1343,6 @@
      return taoBaoGoodsBrief;
   }
   public static CollectionGoods getCollectionGoods(long auctionId, UserInfo userInfo) {
      TaoBaoGoodsBrief taoBaoGoodsBrief = null;
      try {
         taoBaoGoodsBrief = TaoKeApiUtil.searchGoodsDetail(auctionId);
      } catch (TaobaoGoodsDownException e1) {
         e1.printStackTrace();
      }
      CollectionGoods collectionGoods = new CollectionGoods();
      Field[] fields = taoBaoGoodsBrief.getClass().getDeclaredFields();
      Field[] shFields = collectionGoods.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())) {
                  if (!field.getName().equalsIgnoreCase("createTime"))
                     target.set(collectionGoods, field.get(taoBaoGoodsBrief));
                  break;
               }
            }
         } catch (IllegalArgumentException e) {
            e.printStackTrace();
         } catch (IllegalAccessException e) {
            e.printStackTrace();
         }
      }
      collectionGoods.setUserInfo(userInfo);
      return collectionGoods;
   }
   /**
    * 获取商品的用户分成比例
    * 
@@ -1434,17 +1353,21 @@
    * @return
    */
   public static String getGoodsHongBaoInfo(TaoBaoGoodsBrief goodsBrief, BigDecimal rate) {
      // 营销计划
      // if ("1".equalsIgnoreCase(goodsBrief.getTkMktStatus())) {
      // return "最高40%";
      // } else {
      // 计算返利
      // 无券
      return "¥" + getGoodsHongBaoMoney(goodsBrief, rate).toString();
   }
   /**
    * 获取淘宝商品该获得多少佣金
    *
    * @param goodsBrief
    * @param rate
    * @return
    */
   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 goodsBrief.getZkPrice().multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000)).multiply(rate)
               .setScale(2, BigDecimal.ROUND_DOWN);
      } else// 有券
      {
         List<BigDecimal> list = TaoBaoCouponUtil.getCouponInfo(goodsBrief.getCouponInfo());
@@ -1453,15 +1376,15 @@
         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)
            return finalPrice.multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000)).multiply(rate)
                  .setScale(2, BigDecimal.ROUND_DOWN);
         } else {// 不能用券
            return "¥" + goodsBrief.getZkPrice().multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000))
            return goodsBrief.getZkPrice().multiply(goodsBrief.getTkRate()).divide(new BigDecimal(10000))
                  .multiply(rate).setScale(2, BigDecimal.ROUND_DOWN);
         }
      }
   }
   // }
   // 获取券的红包显示