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