From 51a4ff5d777028d52a19c314a99f796334cb7b51 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 23 十一月 2019 18:30:01 +0800 Subject: [PATCH] 配置文件修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsServiceImpl.java | 125 +++++++++++++++++++++++++++++++++++++---- 1 files changed, 113 insertions(+), 12 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..c5499f4 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,16 +1,26 @@ package com.yeshi.fanli.service.impl.taobao.dataoke; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +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.DaTaoKeGoodsResult; import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail; +import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2; +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.dataoke.DaTaoKeApiUtil; import com.yeshi.fanli.util.taobao.DaTaoKeUtil; @Service @@ -18,43 +28,134 @@ @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 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(); + 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); } @Override - public List<DaTaoKeDetail> getGoodsNotInList(Long cid, List<Long> listId,int count) { - return daTaoKeDetailMapper.getGoodsNotInList(cid, listId,count); + public List<DaTaoKeDetailV2> getSearchDiscoveryGoods(String keyWords){ + String key = "dataoke-goods-searchdiscovery-"+ keyWords; + List<DaTaoKeDetailV2> list = redisManager.getObjList(DaTaoKeDetailV2.class, key); + if ( list == null || list.size() == 0) { + DaTaoKeGoodsResult search = DaTaoKeApiUtil.search(keyWords, null, null, null, 1, 10, 0); + if (search != null) { + list = search.getGoodsList(); + if (list != null && list.size() > 0) { + Comparator<DaTaoKeDetailV2> cm = new Comparator<DaTaoKeDetailV2>() { + @Override + public int compare(DaTaoKeDetailV2 o1, DaTaoKeDetailV2 o2) { + int diff = o1.getHotPush() - o2.getHotPush(); + if (diff > 0) { + return -1; + } else if (diff < 0) { + return 1; + } + return 0; + } + }; + + Collections.sort(list, cm); + + if (list.size() > 3) + list = list.subList(0, 3); + + // 缂撳瓨 20鍒嗛挓 + redisManager.saveObjList(list, key, 1000 * 60 * 20); + } + return list; + } + } + return list; } - + } -- Gitblit v1.8.0