From 5e88359d7210039a6b1525bd5ffc20f24f2b5e01 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期三, 08 五月 2019 16:13:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master_develop

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java |   69 ++++++++++++++++++++++++++++++----
 1 files changed, 61 insertions(+), 8 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 9dfd80f..96fcf67 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,7 +1,10 @@
 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;
 
@@ -11,6 +14,7 @@
 import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail;
 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.taobao.DaTaoKeUtil;
 
 @Service
@@ -22,34 +26,83 @@
 	@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 List<DaTaoKeDetail> getCurrentSalesRankGoodsList(Long cid) {
-		List<DaTaoKeDetail> list = DaTaoKeUtil.getCurrentSalesRank(cid);
-		return reSearchDetails(list);
+	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(Long cid) {
-		List<DaTaoKeDetail> list = DaTaoKeUtil.getCurrentDaySalesRank(cid);
-		return reSearchDetails(list);
+	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() {
-		List<DaTaoKeDetail> list = DaTaoKeUtil.getCurrentHotSalesRank();
-		return reSearchDetails(list);
+		// 缂撳瓨
+		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();
+			list = reSearchDetails(list);
+			if (list != null && list.size() > 0)
+				redisManager.saveObjList(list, key, null);// 闀挎湡缂撳瓨
+			return list;
+		} else
+			return list;
 	}
 	
 	@Override

--
Gitblit v1.8.0