From 31e963fab5edf7f0afece695c8224831abd25750 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 06 八月 2019 18:43:06 +0800 Subject: [PATCH] 常用商品缓存,华为推送修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java | 80 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 74 insertions(+), 6 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java index fdb8ae5..4a4fc07 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java @@ -3,10 +3,14 @@ import java.math.BigDecimal; 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.context.annotation.Lazy; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,6 +41,7 @@ @Resource private ActivityService activityService; + @Lazy @Resource private QualityFactoryService qualityFactoryService; @@ -49,6 +54,7 @@ @Resource private ShareHotGoodsService shareHotGoodsService; + @Lazy @Resource private TLJBuyGoodsService tljBuyGoodsService; @@ -147,7 +153,7 @@ tljBuyGoodsService.updateGoods(goods); // 鎬昏鍟嗗搧鏇存柊 -// updateImplTBGoods(goods); + // updateImplTBGoods(goods); } @Override @@ -292,12 +298,74 @@ taoBaoGoodsCacheUtil.addUpdateHistory(goods.getAuctionId()); } + @Async @Override - public void addUpdateQueue(Long auctionId) { - if (taoBaoGoodsCacheUtil.canAddToUpdateQueue(auctionId)) { - // 娣诲姞鍒版洿鏂伴槦鍒� - CMQManager.getInstance().addTBImpGoodsUpdate(auctionId); - taoBaoGoodsCacheUtil.addAddToQueueHistory(auctionId); + public void addUpdateQueueAsync(Long auctionId) { + addUpdateQueueSync(auctionId); + } + + /** + * 鍚屾鍔犲叆 + * + * @param auctionId + */ + private void addUpdateQueueSync(Long auctionId) { + try { + if (taoBaoGoodsCacheUtil.canAddToUpdateQueue(auctionId)) { + // 娣诲姞鍒版洿鏂伴槦鍒� + CMQManager.getInstance().addTBImpGoodsUpdate(auctionId); + taoBaoGoodsCacheUtil.addAddToQueueHistory(auctionId); + } + } catch (Exception e) { + LogHelper.errorDetailInfo(e); } } + + @Async + @Override + public void addUpdateQueueAsync(List<TaoBaoGoodsBrief> goodsList) { + if (goodsList != null) + for (TaoBaoGoodsBrief goods : goodsList) { + if (goods != null && goods.getAuctionId() != null) + addUpdateQueueSync(goods.getAuctionId()); + } + } + + @Override + public List<TaoBaoGoodsBrief> filterTaoBaoGoods(List<TaoBaoGoodsBrief> goodsList) { + Map<Long, TaoBaoGoodsBrief> finalMap = new HashMap<>(); + // 鍘熷鏁版嵁鍏ㄨ鐩� + for (TaoBaoGoodsBrief goods : goodsList) { + finalMap.put(goods.getAuctionId(), goods); + } + + List<TaoBaoGoodsBrief> tempGoodsList = new ArrayList<>(); + tempGoodsList.addAll(goodsList); + // 鍏堜粠redis閲岄潰鍙栬鐩� + for (int i = 0; i < tempGoodsList.size(); i++) { + TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(tempGoodsList.get(i).getAuctionId()); + if (goods != null) { + finalMap.put(goods.getAuctionId(), goods); + tempGoodsList.remove(i--); + } + } + + // 鍐嶄粠mongodb涓彇瑕嗙洊 + List<Long> auctionIds = new ArrayList<>(); + for (TaoBaoGoodsBrief goods : tempGoodsList) { + auctionIds.add(goods.getAuctionId()); + } + List<TaoBaoGoodsBrief> mList = taoBaoGoodsUpdateDao.listByAuctionIds(auctionIds); + if (mList != null) + for (TaoBaoGoodsBrief goods : mList) { + finalMap.put(goods.getAuctionId(), goods); + } + + List<TaoBaoGoodsBrief> finalList = new ArrayList<>(); + for (TaoBaoGoodsBrief goods : goodsList) + finalList.add(finalMap.get(goods.getAuctionId())); + + return finalList; + } + } -- Gitblit v1.8.0