From 8e30aa7c1f0384f09278699318b4902b815b42a7 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 26 四月 2019 18:01:25 +0800
Subject: [PATCH] 维权返利初步修改,拼多多初步增加

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java |   51 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 31 insertions(+), 20 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java
index d5361c6..c40d309 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java
@@ -1,18 +1,20 @@
 package com.yeshi.fanli.service.impl.taobao.dataoke;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 import javax.annotation.Resource;
 
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import com.yeshi.fanli.dao.mybatis.taobao.dataoke.DaTaoKeDetailMapper;
 import com.yeshi.fanli.dto.dataoke.DaTaoKeApiResult;
 import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail;
+import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService;
 import com.yeshi.fanli.util.RedisManager;
-import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
 
 @Service
@@ -27,35 +29,44 @@
 	public void startSyncGoods() {
 		// 鍒ゆ柇鏄惁鏈夋鍦ㄨ繘琛岀殑鏇存柊
 		String key1 = "dataoke-updating";
-		if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key1)))
-			return;
-
-		String key2 = "dataoke-update-time";
-		String updateTime = redisManager.getCommonString(key2);
-		if (!StringUtil.isNullOrEmpty(updateTime)) {
-			DaTaoKeApiResult result = DaTaoKeApiUtil.goodsList(1);
-			if (result.getUpdateTime().equalsIgnoreCase(updateTime)) {// 鍜屼笂娆℃洿鏂板湪鍚屼竴鏃堕棿
-				return;
-			}
-		}
+		// if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key1)))
+		// return;
 
 		// 寮�濮嬫洿鏂�
-		redisManager.cacheCommonString(key1, "1");
-		List<DaTaoKeDetail> goodsList = new ArrayList<>();
-		for (int p = 1; p < 2000; p++) {
+		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);
-			goodsList.addAll(result.getDetailList());
 			if (result.getDetailList().size() < 50)// 鏇存柊瀹屾垚
 			{
 				redisManager.removeCommonString(key1);
 				break;
 			}
+			addGoodsList(result.getDetailList());
+			totalCount += result.getDetailList().size();
 		}
-		
-		//
-		
-		
 
+		LogHelper.test("澶ф窐瀹㈡�诲叡鏇存柊鏁版嵁鏁伴噺:" + totalCount);
+		// 娓呴櫎杩囨湡鏁版嵁
+		if (totalCount > 50000)// 淇濊瘉鏈�5w鏁版嵁鍐嶆竻闄よ繃鏈�
+		{
+			daTaoKeDetailMapper.deleteByMinUpdateTime(firstTime);
+			LogHelper.test("鍒犻櫎澶ф窐瀹㈣繃鏈熸暟鎹�:" + totalCount);
+		}
+	}
+
+	@Transactional
+	private void addGoodsList(List<DaTaoKeDetail> goodsList) {
+		List<Long> idList = new ArrayList<>();
+		for (DaTaoKeDetail goods : goodsList) {
+			goods.setUpdateTime(new Date());
+			idList.add(goods.getId());
+		}
+		// 鎵归噺鍒犻櫎
+		daTaoKeDetailMapper.deleteByIdList(idList);
+		// 鎵归噺鎻掑叆
+		daTaoKeDetailMapper.insertByBatch(goodsList);
 	}
 
 }

--
Gitblit v1.8.0