From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 30 七月 2019 09:07:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java |  127 +++++++++++++++++++++++++++++++-----------
 1 files changed, 93 insertions(+), 34 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..aa7ef9b 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,61 +1,120 @@
 package com.yeshi.fanli.service.impl.taobao.dataoke;
 
 import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Resource;
 
 import org.springframework.stereotype.Service;
 
 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.DaTaoKeGoodsDetailService;
 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;
+import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
 
 @Service
 public class DaTaoKeGoodsServiceImpl implements DaTaoKeGoodsService {
+
 	@Resource
 	private DaTaoKeDetailMapper daTaoKeDetailMapper;
 
 	@Resource
+	private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
+
+	@Resource
 	private RedisManager redisManager;
 
+	private List<DaTaoKeDetail> reSearchDetails(List<DaTaoKeDetail> list) {
+		Map<Long, DaTaoKeDetail> map = new HashMap<>();
+		List<Long> idList = new ArrayList<>();
+		if (list != null) {
+			for (DaTaoKeDetail detail : list) {
+				idList.add(detail.getId());
+				map.put(detail.getId(), detail);
+			}
+			List<DaTaoKeDetail> detailList = daTaoKeGoodsDetailService.listByIds(idList);
+			if (detailList != null)
+				for (DaTaoKeDetail dk : detailList) {
+					dk.setUpdateTime(new Date());// 澧炲姞鏇存柊鏃堕棿
+					dk.setSalesNum(map.get(dk.getId()).getSalesNum());// 鏇存敼閿�閲�);
+				}
+			return detailList;
+		} else
+			return null;
+	}
+
 	@Override
-	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;
-			}
-		}
-
-		// 寮�濮嬫洿鏂�
-		redisManager.cacheCommonString(key1, "1");
-		List<DaTaoKeDetail> goodsList = new ArrayList<>();
-		for (int p = 1; p < 2000; p++) {
-			DaTaoKeApiResult result = DaTaoKeApiUtil.goodsList(p);
-			goodsList.addAll(result.getDetailList());
-			if (result.getDetailList().size() < 50)// 鏇存柊瀹屾垚
-			{
-				redisManager.removeCommonString(key1);
-				break;
-			}
-		}
-		
-		//
-		
-		
+	public List<DaTaoKeDetail> getCurrentSalesRankGoodsList(Integer cid) {
+		// 缂撳瓨
+		String key = "dataoke-goods-shishirexiao-" + cid;
+		List<DaTaoKeDetail> list = redisManager.getObjList(DaTaoKeDetail.class, key);
+		if ((list != null && list.size() > 0
+				&& System.currentTimeMillis() - list.get(0).getUpdateTime().getTime() > 1000 * 60 * 20) || list == null
+				|| list.size() == 0)// 瓒呰繃20鍒嗛挓鏈洿鏂�
+		{
+			list = DaTaoKeUtil.getCurrentSalesRank(cid);
+			list = reSearchDetails(list);
+			if (list != null && list.size() > 0)
+				redisManager.saveObjList(list, key, null);// 闀挎湡缂撳瓨
+			return list;
+		} else
+			return list;
 
 	}
 
+	@Override
+	public List<DaTaoKeDetail> getCurrentDaySalesRankGoodsList(Integer cid) {
+
+		// 缂撳瓨
+		String key = "dataoke-goods-jinrirexiao-" + cid;
+		List<DaTaoKeDetail> list = redisManager.getObjList(DaTaoKeDetail.class, key);
+		if ((list != null && list.size() > 0
+				&& System.currentTimeMillis() - list.get(0).getUpdateTime().getTime() > 1000 * 60 * 20) || list == null
+				|| list.size() == 0)// 瓒呰繃20鍒嗛挓鏈洿鏂�
+		{
+			list = DaTaoKeUtil.getCurrentDaySalesRank(cid);
+			list = reSearchDetails(list);
+			if (list != null && list.size() > 0)
+				redisManager.saveObjList(list, key, null);// 闀挎湡缂撳瓨
+			return list;
+		} else
+			return list;
+
+	}
+
+	@Override
+	public List<DaTaoKeDetail> getCurrentHotSalesRankGoodsList() {
+		// 缂撳瓨
+		String key = "dataoke-goods-rexiao";
+		List<DaTaoKeDetail> list = redisManager.getObjList(DaTaoKeDetail.class, key);
+		if ((list != null && list.size() > 0
+				&& System.currentTimeMillis() - list.get(0).getUpdateTime().getTime() > 1000 * 60 * 20) || list == null
+				|| list.size() == 0)// 瓒呰繃20鍒嗛挓鏈洿鏂�
+		{
+			list = DaTaoKeUtil.getCurrentHotSalesRank();
+			LogHelper.test("鐑攢鏁伴噺:" + list.size());
+			list = reSearchDetails(list);
+			if (list != null && list.size() > 0)
+				redisManager.saveObjList(list, key, null);// 闀挎湡缂撳瓨
+			return list;
+		} else
+			return list;
+	}
+
+	@Override
+	public List<DaTaoKeDetail> getGoodsNotInList(Long cid, List<Long> listId, int count) {
+		return daTaoKeDetailMapper.getGoodsNotInList(cid, listId, count);
+	}
+
+	@Override
+	public List<DaTaoKeDetail> listBySellerId(long start, int count, Long sellerId){
+		return daTaoKeDetailMapper.listBySellerId(start, count, sellerId);
+	}
+	
 }

--
Gitblit v1.8.0