yujian
2020-01-18 f4a0f2acc63d7785eab108419a4e16f5f688cb95
fanli/src/main/java/com/yeshi/fanli/job/UpdateDaTaoKeJob.java
@@ -1,17 +1,26 @@
package com.yeshi.fanli.job;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.yeshi.fanli.entity.taobao.ShareHotGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.lable.QualityFactoryService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
/**
 * 更新大淘客数据
@@ -24,29 +33,11 @@
   private QualityFactoryService qualityFactoryService;
   @Resource
   private DaTaoKeGoodsDetailService daTaoKeGoodsService;
   @Resource
   private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
   // 1个小时更新一次
   @Scheduled(cron = "0 0 0/1 * * ? ")
   public void doSyncJob() {
      if (!Constant.IS_TASK)
         return;
      try {
         new Thread(new Runnable() {
   @Resource
   private ShareHotGoodsService shareHotGoodsService;
            @Override
            public void run() {
               daTaoKeGoodsService.startSyncGoods();
            }
         }).start();
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
      }
   }
   // 每天早晚同步一次
   @Scheduled(cron = "0 0 6,18 * * ? ")
@@ -132,4 +123,39 @@
      daTaoKeGoodsDetailV2Service.deleteOutOfDate(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24L));
   }
   // 自动选品
   @Scheduled(cron = "0 0 23 * * ? ")
   public void setShareHotGoods() {
      String day = TimeUtil.getGernalTime(System.currentTimeMillis() + 1000 * 60 * 60 * 24L, "yyyy-MM-dd");
      List<TaoBaoGoodsBrief> goodsList = shareHotGoodsService.listPreGoods(1);
      Collections.shuffle(goodsList);
      int count = 0;
      for (TaoBaoGoodsBrief goods : goodsList) {
         if (count > 20)
            break;
         try {
            goods = TaoKeApiUtil.searchGoodsDetail(goods.getAuctionId());
         } catch (TaobaoGoodsDownException e) {
            e.printStackTrace();
         }
         if (goods != null && goods.getCouponAmount() != null
               && goods.getCouponAmount().compareTo(new BigDecimal(0)) > 0) {
            if (TaoBaoUtil.canAddToTLJBuyGoods(goods)) {
               count++;
               goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
               shareHotGoodsService.addShareHotGoods(new ShareHotGoods(null, day, new Date(), goods));
            }
         }
      }
   }
   @Scheduled(cron = "0 30 7,11,18,23 * * ? ")
   public void syncGoodsBeiYong() {
      long latestUpdateCount = daTaoKeGoodsDetailV2Service
            .countByMinUpdateTime(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24L));
      if (latestUpdateCount < 50000L) {// 若每天没有超过5w数据更新就需要重新更新数据
         daTaoKeGoodsDetailV2Service.startSyncGoods();
      }
   }
}