yujian
2020-06-09 554de444b87aab5f93cb1593a8095612cf9479a7
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/TaoBaoGoodsBriefServiceImpl.java
@@ -1,11 +1,13 @@
package com.yeshi.fanli.service.impl.goods;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoGoodsBriefMapper;
@@ -14,10 +16,10 @@
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.ShareGoodsException;
import com.yeshi.fanli.exception.share.ShareGoodsException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@@ -41,7 +43,7 @@
   @Override
   public String getGoodsUserHongBao(TaoBaoGoodsBrief goods) {
      BigDecimal rate = hongBaoManageService.getFanLiRate();
      return TaoBaoUtil.getGoodsHongBaoInfo(goods, rate);
      return TaoBaoUtil.getGoodsHongBaoInfo(goods, rate,false);
   }
   @Override
@@ -49,36 +51,28 @@
      BigDecimal rate = hongBaoManageService.getShareRate();
      return TaoBaoUtil.getShareGoodsHongBaoInfo(goods, rate);
   }
   @Override
   public void deleteByPrimaryKey(Long id) {
      taoBaoGoodsBriefMapper.deleteByPrimaryKey(id);
   }
   @Override
   public void deleteBatchByGoodsId(List<Long> list) {
      taoBaoGoodsBriefMapper.deleteBatchByGoodsId(list);
   }
   @Override
   public List<TaoBaoGoodsBrief> queryByAuctionId(Long auctionId) {
      return taoBaoGoodsBriefMapper.queryByAuctionId(auctionId);
   }
   @Override
   public List<Long> listExistById(List<Long> list) {
      if (list != null && list.size() > 0)
         return taoBaoGoodsBriefMapper.listExistById(list);
      else
         return null;
   }
   @Override
   public int insertSelective(TaoBaoGoodsBrief taoBaoGoodsBrief) {
      return taoBaoGoodsBriefMapper.insertSelective(taoBaoGoodsBrief);
   }
   @Override
@@ -200,16 +194,48 @@
      return taoBaoGoodsBrief;
   }
   @Override
   public List<TaoBaoGoodsBrief> listByShopId(long start, int count, Long shopId) {
      return taoBaoGoodsBriefMapper.listByShopId(start, count, shopId);
   }
   @Override
   public long countByShopId(Long shopId) {
      return taoBaoGoodsBriefMapper.countByShopId(shopId);
   }
   @Override
   public List<TaoBaoGoodsBrief> filterOffLineGoods(List<TaoBaoGoodsBrief> goodsList) {
      int page = goodsList.size() % 40 == 0 ? goodsList.size() / 40 -1 : goodsList.size() / 40;
      List<TaoBaoGoodsBrief> flist = new ArrayList<>();
      for (int i = 0; i <= page; i++) {
         List<TaoBaoGoodsBrief> list = goodsList.subList(i * 40,
               i * 40 + 40 > goodsList.size() ?goodsList.size(): i * 40 + 40 );
         String ids = "";
         for (TaoBaoGoodsBrief goods : list) {
            ids += goods.getAuctionId() + ",";
         }
         ids = ids.endsWith(",") ? ids.substring(0, ids.length() - 1) : ids;
         Map<Long, TaoBaoGoodsBrief> goodsMap = new HashMap<>();
         try {
            List<TaoBaoGoodsBrief> finalList = TaoKeApiUtil.getBatchGoodsInfos(ids);
            if (finalList != null)
               for (TaoBaoGoodsBrief ggods : finalList)
                  goodsMap.put(ggods.getAuctionId(), ggods);
            for (int j = 0; j < list.size(); j++) {
               if (goodsMap.get(list.get(j).getAuctionId()) == null) {
                  list.remove(j);
                  j--;
               }
            }
         } catch (TaobaoGoodsDownException e) {
            e.printStackTrace();
         }
         flist.addAll(list);
      }
      return flist;
   }
}