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