yujian
2019-05-30 ebce479a2d0634c90e5f80045e204248336b410d
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailServiceImpl.java
@@ -1,6 +1,5 @@
package com.yeshi.fanli.service.impl.taobao.dataoke;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -18,7 +17,6 @@
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
@@ -33,27 +31,22 @@
   @Override
   public void startSyncGoods() {
      LogHelper.test("大淘客同步开始");
      // 判断是否有正在进行的更新
      String key1 = "dataoke-updating";
      // if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key1)))
      // return;
      // 开始更新
      redisManager.cacheCommonString(key1, "1", 60 * 20);
      long firstTime = System.currentTimeMillis() - 1000 * 60 * 5L;
      int totalCount = 0;
      for (int p = 1; p <= 2000; p++) {// 10W数据
         DaTaoKeApiResult result = DaTaoKeApiUtil.goodsList(p);
         if (result.getDetailList().size() < 50)// 更新完成
         {
            redisManager.removeCommonString(key1);
            break;
         try {
            DaTaoKeApiResult result = DaTaoKeApiUtil.goodsList(p);
            if (result.getDetailList().size() < 50)// 更新完成
            {
               break;
            }
            addGoodsList(result.getDetailList());
            totalCount += result.getDetailList().size();
         } catch (Exception e) {
         }
         addGoodsList(result.getDetailList());
         totalCount += result.getDetailList().size();
      }
      LogHelper.test("大淘客总共更新数据数量:" + totalCount);
      // 清除过期数据
      if (totalCount > 50000)// 保证有5w数据再清除过期
@@ -128,4 +121,20 @@
      return daTaoKeDetailMapper.listByDtitle(dtitle.trim());
   }
   @Override
   public List<DaTaoKeDetail> listSearchByTitleWithCid(String title, Long cid, int page, int pageSize) {
      return daTaoKeDetailMapper.listSearchByTitleWithCid(title, (cid == null || cid == 0 ? null : cid),
            (page - 1) * pageSize, pageSize);
   }
   @Override
   public Long countSearchByTitleWithCid(String title, Long cid) {
      return daTaoKeDetailMapper.countSearchByTitleWithCid(title, (cid == null || cid == 0 ? null : cid));
   }
   @Override
   public List<DaTaoKeDetail> getGoodsNotInList(Long cid, List<Long> listId, int count) {
      return daTaoKeDetailMapper.getGoodsNotInList(cid, listId, count);
   }
}