yujian
2019-05-30 f0ce6c75e05041b7ca39230df4bf14474ccbeb41
fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityFactoryServiceImpl.java
@@ -3,7 +3,6 @@
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -27,14 +26,12 @@
import com.yeshi.fanli.exception.QualityFactoryException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.lable.LabelService;
import com.yeshi.fanli.service.inter.lable.QualityFactoryService;
import com.yeshi.fanli.service.inter.lable.QualityFlashSaleService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@@ -164,86 +161,120 @@
      }
      // 创建标签
      List<Label> listLabel = labelService.addBatchByNames(lableNames, admin);
      List<Label> listLabs = labelService.addBatchByNames(lableNames, admin);
      // 添加商品标签列表
      List<LabelGoods> listLabelAdd = new ArrayList<LabelGoods>();
      // 插入商品集合
      List<TaoBaoGoodsBrief> listGoodsInsert = new ArrayList<TaoBaoGoodsBrief>();
      // 更新商品集合
      List<TaoBaoGoodsBrief> listGoodsUpdate = new ArrayList<TaoBaoGoodsBrief>();
      // 进入精选商品列表
      List<QualityFactory> listInsertQuality = new ArrayList<QualityFactory>();
      List<QualityFactory> listQuality = new ArrayList<QualityFactory>();
      List<LabelGoods> listLabelGoods = new ArrayList<LabelGoods>();
      // 插入商品淘宝ID集合
      List<Long> listAuctionId = new ArrayList<Long>();
      for (TaoBaoGoodsBrief goodsBrief : listTaoBaoGoods) {
         listAuctionId.add(goodsBrief.getAuctionId());
      }
      List<Long> listHas = taoBaoGoodsBriefService.listExistById(listAuctionId);
         // 本地是否已存在此商品
         List<TaoBaoGoodsBrief> hasList = taoBaoGoodsBriefService.queryByAuctionId(goodsBrief.getAuctionId());
         if (hasList != null && hasList.size() > 0) {
            TaoBaoGoodsBrief currentGoodsBrief = hasList.get(0);
            goodsBrief.setId(currentGoodsBrief.getId());
            // 更新商品最新信息
            taoBaoGoodsUpdateService.updateTaoBaoGoods(goodsBrief);
      // 遍历商品
      for (TaoBaoGoodsBrief newGoodsBrief : listTaoBaoGoods) {
         Long auctionId = newGoodsBrief.getAuctionId();
         // 设置成主键
         newGoodsBrief.setId(auctionId);
         newGoodsBrief.setState(0); // 状态启用
         newGoodsBrief.setCreatetime(new Date());
         newGoodsBrief.setUpdatetime(new Date());
         /* 判断商品 是否已经存在数据库 */
         if (listHas != null && listHas.size() > 0 && listHas.contains(auctionId)) {
            // 更新商品
            listGoodsUpdate.add(newGoodsBrief);
            // 商品标签
            if (listLabs != null && listLabs.size() > 0) {
               for (Label lab: listLabs) {
                  long existence = labelGoodsMapper.isExistence(auctionId, lab.getId());
                  if (existence <= 0) {
                     // 贴上新标签
                     LabelGoods lg = new LabelGoods();
                     lg.setLabel(lab);
                     lg.setCreateUser(admin);
                     lg.setCreatetime(new Date());
                     lg.setTaoBaoGoodsBrief(newGoodsBrief);
                     listLabelAdd.add(lg);
                  }
               }
            }
            // 更新的商品信息 是否存在精选库中
            QualityFactory quality = qualityFactoryMapper.getByAuctionId(auctionId);
            if (quality == null) {
               QualityFactory selectionGoods = new QualityFactory();
               selectionGoods.setTaoBaoGoodsBrief(newGoodsBrief);
               selectionGoods.setCreateUser(admin);
               selectionGoods.setCreatetime(new Date());
               selectionGoods.setUpdateUser(admin);
               selectionGoods.setUpdatetime(new Date());
               selectionGoods.setEntryMode(QualityFactory.MODE_MANUAL);// 人工筛选
               selectionGoods.setGoodsSource(QualityFactory.SOURCE_TAOBAO);// 来源
               selectionGoods.setWeight((int) (Math.random() * (4000)));
               listInsertQuality.add(selectionGoods);
            }
         } else {
            goodsBrief.setId(null);
            goodsBrief.setState(0);
            goodsBrief.setCreatetime(new Date());
            goodsBrief.setUpdatetime(new Date());
            // 非空项 设置默认值
            taoBaoGoodsBriefService.setGoodsBriefDefault(goodsBrief);
            // 保存至本地
            taoBaoGoodsBriefService.insertSelective(goodsBrief);
         }
         // 是否已入库
         List<QualityFactory> selectionList = qualityFactoryMapper.queryByGoodsId(goodsBrief.getId());
         if (selectionList == null || selectionList.size() == 0) {
            // 添加至精选商品库
            // 设置商品默认值
            taoBaoGoodsBriefService.setGoodsBriefDefault(newGoodsBrief);
            listGoodsInsert.add(newGoodsBrief);
            // 精选库信息
            QualityFactory selectionGoods = new QualityFactory();
            selectionGoods.setTaoBaoGoodsBrief(newGoodsBrief);
            selectionGoods.setCreateUser(admin);
            selectionGoods.setCreatetime(new Date());
            selectionGoods.setUpdateUser(admin);
            selectionGoods.setUpdatetime(new Date());
            selectionGoods.setWeight(50);// 默认50
            selectionGoods.setTaoBaoGoodsBrief(goodsBrief);
            selectionGoods.setEntryMode(QualityFactory.MODE_MANUAL);// 人工筛选
            selectionGoods.setGoodsSource(QualityFactory.SOURCE_TAOBAO);// 来源淘宝
            selectionGoods.setGoodsSource(QualityFactory.SOURCE_TAOBAO);// 来源
            selectionGoods.setWeight((int) (Math.random() * (4000)));
            listInsertQuality.add(selectionGoods);
            listQuality.add(selectionGoods);
         } else {
            // 更新商品
            QualityFactory selectionGoods = selectionList.get(0);
            selectionGoods.setUpdatetime(new Date());
            qualityFactoryMapper.updateByPrimaryKeySelective(selectionGoods);
         }
         if (listLabel != null && listLabel.size() > 0) {
            for (Label label : listLabel) {
               /* 贴上标签 : 已贴不处理则 */
               Long existence = labelGoodsMapper.isExistence(goodsBrief.getId(), label.getId());
               // 该商品不存在此标签则添加, 反之不做处理
               if (existence == null || existence == 0l) {
                  // 贴上新标签
            // 商品标签
            if (listLabs != null && listLabs.size() > 0) {
               for (Label lab: listLabs) {
                  LabelGoods lg = new LabelGoods();
                  lg.setLabel(label);
                  lg.setLabel(lab);
                  lg.setCreateUser(admin);
                  lg.setCreatetime(new Date());
                  lg.setTaoBaoGoodsBrief(goodsBrief);
                  listLabelGoods.add(lg);
                  lg.setTaoBaoGoodsBrief(newGoodsBrief);
                  listLabelAdd.add(lg);
               }
            }
         }
      }
      // 插入淘宝商品
      if (listGoodsInsert.size() > 0) {
         taoBaoGoodsBriefService.insertBatch(listGoodsInsert);
      }
      // 更新淘宝商品
      if (listGoodsUpdate.size() > 0) {
         taoBaoGoodsUpdateService.updateTaoBaoGoods(listGoodsUpdate);
      }
      // 加入精选库
      if (listInsertQuality.size() > 0) {
         qualityFactoryMapper.insertBatch(listInsertQuality);
      }
      if (listQuality.size() > 0) {
         qualityFactoryMapper.insertBatch(listQuality);
      // 添加标签
      if (listLabelAdd.size() > 0) {
         labelGoodsMapper.insertBatch(listLabelAdd);
      }
      if (listLabelGoods.size() > 0) {
         labelGoodsMapper.insertBatch(listLabelGoods);
      }
   }
   @Override