admin
2019-11-23 51a4ff5d777028d52a19c314a99f796334cb7b51
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java
@@ -330,52 +330,60 @@
   @Override
   public List<TaoBaoGoodsBrief> filterImportantTaoBaoGoods(List<TaoBaoGoodsBrief> goodsList) {
      Map<Long, TaoBaoGoodsBrief> finalMap = new HashMap<>();
      // 原始数据全覆盖
      for (TaoBaoGoodsBrief goods : goodsList) {
         finalMap.put(goods.getAuctionId(), goods);
      }
      List<TaoBaoGoodsBrief> tempGoodsList = new ArrayList<>();
      tempGoodsList.addAll(goodsList);
      // 先从redis里面取覆盖
      for (int i = 0; i < tempGoodsList.size(); i++) {
         TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(tempGoodsList.get(i).getAuctionId());
         if (goods != null) {
      // 商品过滤不允许出错
      try {
         Map<Long, TaoBaoGoodsBrief> finalMap = new HashMap<>();
         // 原始数据全覆盖
         for (TaoBaoGoodsBrief goods : goodsList) {
            finalMap.put(goods.getAuctionId(), goods);
            tempGoodsList.remove(i--);
         }
      }
      // 再从mongodb中取覆盖
      List<Long> auctionIds = new ArrayList<>();
      for (TaoBaoGoodsBrief goods : tempGoodsList) {
         auctionIds.add(goods.getAuctionId());
      }
      List<TaoBaoGoodsBrief> mList = taoBaoGoodsUpdateDao.listByAuctionIds(auctionIds);
      if (mList != null)
         for (TaoBaoGoodsBrief goods : mList) {
            if (goods.getUpdatetime().getTime() > System.currentTimeMillis() - 1000 * 60 * 60 * 24L)// 在1天内更新的数据才参与过滤
         List<TaoBaoGoodsBrief> tempGoodsList = new ArrayList<>();
         tempGoodsList.addAll(goodsList);
         // 先从redis里面取覆盖
         for (int i = 0; i < tempGoodsList.size(); i++) {
            TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil
                  .getCommonTaoBaoGoodsInfo(tempGoodsList.get(i).getAuctionId());
            if (goods != null) {
               finalMap.put(goods.getAuctionId(), goods);
               tempGoodsList.remove(i--);
            }
         }
      List<TaoBaoGoodsBrief> finalList = new ArrayList<>();
      for (TaoBaoGoodsBrief goods : goodsList) {
         TaoBaoGoodsBrief newGoods = finalMap.get(goods.getAuctionId());
         // 过滤价格,返利比例,券信息
         goods.setZkPrice(newGoods.getZkPrice());
         goods.setTkRate(newGoods.getTkRate());
         goods.setCouponAmount(goods.getCouponAmount());
         goods.setCouponActivityId(newGoods.getCouponActivityId());
         goods.setCouponEffectiveEndTime(newGoods.getCouponEffectiveEndTime());
         goods.setCouponEffectiveStartTime(newGoods.getCouponEffectiveStartTime());
         goods.setCouponStartFee(newGoods.getCouponStartFee());
         goods.setCouponTotalCount(newGoods.getCouponTotalCount());
         goods.setCouponLeftCount(newGoods.getCouponLeftCount());
         // 再从mongodb中取覆盖
         List<Long> auctionIds = new ArrayList<>();
         for (TaoBaoGoodsBrief goods : tempGoodsList) {
            auctionIds.add(goods.getAuctionId());
         }
         List<TaoBaoGoodsBrief> mList = taoBaoGoodsUpdateDao.listByAuctionIds(auctionIds);
         if (mList != null)
            for (TaoBaoGoodsBrief goods : mList) {
               if (goods.getUpdatetime().getTime() > System.currentTimeMillis() - 1000 * 60 * 60 * 24L)// 在1天内更新的数据才参与过滤
                  finalMap.put(goods.getAuctionId(), goods);
            }
         finalList.add(goods);
         List<TaoBaoGoodsBrief> finalList = new ArrayList<>();
         for (TaoBaoGoodsBrief goods : goodsList) {
            TaoBaoGoodsBrief newGoods = finalMap.get(goods.getAuctionId());
            // 过滤价格,返利比例,券信息
            goods.setZkPrice(newGoods.getZkPrice());
            goods.setTkRate(newGoods.getTkRate());
            goods.setCouponAmount(newGoods.getCouponAmount());
            goods.setCouponActivityId(newGoods.getCouponActivityId());
            goods.setCouponEffectiveEndTime(newGoods.getCouponEffectiveEndTime());
            goods.setCouponEffectiveStartTime(newGoods.getCouponEffectiveStartTime());
            goods.setCouponStartFee(newGoods.getCouponStartFee());
            goods.setCouponTotalCount(newGoods.getCouponTotalCount());
            goods.setCouponLeftCount(newGoods.getCouponLeftCount());
            finalList.add(goods);
         }
         return finalList;
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
      }
      return finalList;
      return goodsList;
   }
   @Override