yujian
2019-05-14 bbe1a381f99d957d003f48b68dfd5bf0e401f5f0
fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityFactoryServiceImpl.java
@@ -8,16 +8,15 @@
import java.util.Map;
import javax.annotation.Resource;
import javax.transaction.Transactional;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dao.mybatis.TaoBaoClassRelationMapper;
import com.yeshi.fanli.dao.mybatis.lable.LabelGoodsMapper;
import com.yeshi.fanli.dao.mybatis.lable.QualityFactoryMapper;
import com.yeshi.fanli.dao.mybatis.lable.QualityFlashSaleMapper;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoGoodsBriefMapper;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoGoodsBriefRecordMapper;
import com.yeshi.fanli.entity.bus.clazz.TaoBaoClassRelation;
import com.yeshi.fanli.entity.bus.lable.BoutiqueAutoRule;
import com.yeshi.fanli.entity.bus.lable.Label;
@@ -60,8 +59,6 @@
   private TaoBaoGoodsBriefMapper taoBaoGoodsBriefMapper;
   @Resource
   private TaoBaoUnionConfigService taoBaoUnionConfigService;
   @Resource
   private TaoBaoGoodsBriefRecordMapper taoBaoGoodsBriefRecordMapper;
   @Resource
   private TaoBaoClassRelationMapper taoBaoClassRelationMapper;
   @Resource
@@ -201,98 +198,44 @@
   @Override
   @Transactional
   public void addBatch(List<Long> auctionIdList, String lableNames, AdminUser admin) throws Exception {
   public void addBatchTaoBaoGoods(List<TaoBaoGoodsBrief> listTaoBaoGoods, String lableNames, AdminUser admin)
         throws Exception {
      List<Label> listLabs = new ArrayList<Label>();
      if (!StringUtil.isNullOrEmpty(lableNames)) {
         // 空格隔开
         String[] arrtitles = lableNames.split("\\s+");
         for (String title : arrtitles) {
            /* 遍历标签名称:查询数据库中是否已存在 */
            List<Label> labels = labelService.selectByTitle(title.trim());
            if (labels != null && labels.size() > 0) {
               Label label = labels.get(0);
               listLabs.add(label);
            } else {
               // 新增
               Label label = new Label();
               label.setTitle(title);// 名称
               label.setEntrymode(Label.MODE_SYSTEM); // 批量录入
               label.setCreatetime(new Date());
               label.setUpdatetime(new Date());
               label.setCreateUser(admin);
               label.setIosClick(0l);
               label.setAndroidClick(0l);
               labelService.insertSelective(label);
               listLabs.add(label);
            }
         }
      if (listTaoBaoGoods == null || listTaoBaoGoods.size() == 0) {
         throw new Exception("未找到匹配的商品");
      }
      List<TaoBaoGoodsBrief> existList = taoBaoGoodsBriefRecordMapper.queryByAuctionIdList(auctionIdList);
      // 创建标签
      List<Label> listLabel = labelService.addBatchByNames(lableNames, admin);
      List<QualityFactory> addList = new ArrayList<QualityFactory>();
      List<LabelGoods> addLabelList = new ArrayList<LabelGoods>();
      List<QualityFactory> listQuality = new ArrayList<QualityFactory>();
      List<LabelGoods> listLabelGoods = new ArrayList<LabelGoods>();
      for (Long auctionId : auctionIdList) {
      for (TaoBaoGoodsBrief goodsBrief : listTaoBaoGoods) {
         boolean process = false;
         TaoBaoGoodsBrief goodsBrief = null;
         // 本地是否已存在此商品
         List<TaoBaoGoodsBrief> hasList = taoBaoGoodsBriefService.queryByAuctionId(goodsBrief.getAuctionId());
         if (existList != null && existList.size() > 0) {
            for (TaoBaoGoodsBrief taoBaoGoodsBrief : existList) {
               Long aId = taoBaoGoodsBrief.getAuctionId();
               if (auctionId.equals(aId)) {
                  goodsBrief = taoBaoGoodsBrief;
                  goodsBrief.setId(null);
                  process = true;
               }
            }
         }
         if (!process) {
            /* 根据auctionId 获取淘宝商品 */
            goodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
         }
         if (goodsBrief == null)
            continue;
         /* 判断商品 是否已经存在数据库 */
         List<TaoBaoGoodsBrief> taoBaoGoodsBriefList = taoBaoGoodsBriefService.queryByAuctionId(auctionId);
         if (taoBaoGoodsBriefList != null && taoBaoGoodsBriefList.size() > 0) {
            TaoBaoGoodsBrief currentGoodsBrief = taoBaoGoodsBriefList.get(0);
         if (hasList != null && hasList.size() > 0) {
            TaoBaoGoodsBrief currentGoodsBrief = hasList.get(0);
            goodsBrief.setId(currentGoodsBrief.getId());
            // 更新商品最新信息
            taoBaoGoodsUpdateService.updateTaoBaoGoods(goodsBrief);
         } else {
            // 插入本地数据库
            goodsBrief.setId(null);
            goodsBrief.setState(0);
            goodsBrief.setCreatetime(new Date());
            goodsBrief.setUpdatetime(new Date());
            // 非空项 处理
            // 非空项 设置默认值
            setTaoBaoGoodsBriefDefault(goodsBrief);
            // 保存至本地
            taoBaoGoodsBriefService.insertSelective(goodsBrief);
         }
         // 是否已入库
         Long id = goodsBrief.getId();
         List<QualityFactory> selectionList = qualityFactoryMapper.queryByGoodsId(id);
         List<QualityFactory> selectionList = qualityFactoryMapper.queryByGoodsId(goodsBrief.getId());
         /* 进入精选商品库 */
         if (selectionList == null || selectionList.size() == 0) {
            // 添加至精选商品库
            QualityFactory selectionGoods = new QualityFactory();
@@ -307,7 +250,7 @@
            selectionGoods.setEntryMode(QualityFactory.MODE_MANUAL);// 人工筛选
            selectionGoods.setGoodsSource(QualityFactory.SOURCE_TAOBAO);// 来源淘宝
            addList.add(selectionGoods);
            listQuality.add(selectionGoods);
         } else {
            // 更新商品
            QualityFactory selectionGoods = selectionList.get(0);
@@ -315,10 +258,10 @@
            qualityFactoryMapper.updateByPrimaryKeySelective(selectionGoods);
         }
         if (listLabs.size() > 0) {
            for (Label label : listLabs) {
         if (listLabel != null && listLabel.size() > 0) {
            for (Label label : listLabel) {
               /* 贴上标签 : 已贴不处理则 */
               Long existence = labelGoodsMapper.isExistence(id, label.getId());
               Long existence = labelGoodsMapper.isExistence(goodsBrief.getId(), label.getId());
               // 该商品不存在此标签则添加, 反之不做处理
               if (existence == null || existence == 0l) {
@@ -328,19 +271,19 @@
                  lg.setCreateUser(admin);
                  lg.setCreatetime(new Date());
                  lg.setTaoBaoGoodsBrief(goodsBrief);
                  addLabelList.add(lg);
                  listLabelGoods.add(lg);
               }
            }
         }
      }
      if (addList.size() > 0) {
         qualityFactoryMapper.insertBatch(addList);
      if (listQuality.size() > 0) {
         qualityFactoryMapper.insertBatch(listQuality);
      }
      if (addLabelList.size() > 0) {
         labelGoodsMapper.insertBatch(addLabelList);
      if (listLabelGoods.size() > 0) {
         labelGoodsMapper.insertBatch(listLabelGoods);
      }
   }
@@ -637,6 +580,7 @@
            try {
               TaoBaoGoodsBrief taoBaoGoodsBrief = TaoKeApiUtil.searchGoodsDetail(goods.getAuctionId());
               if (taoBaoGoodsBrief != null) {
                  listGoodsBrief.add(taoBaoGoodsBrief);
               }
@@ -654,6 +598,13 @@
         }
      }
      for (int i = 0; i < goodsList.size(); i++) {
         if (goodsList.get(i).getMaterialLibType() != null && goodsList.get(i).getMaterialLibType() == 0) {
            goodsList.remove(i);
            i--;
         }
      }
      // 商品id集合
      List<Long> listSystemTBid = new ArrayList<Long>();