From f2a36b0b93939c9d7a14585e0afae80ec70402a0 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 12 八月 2019 16:11:10 +0800
Subject: [PATCH] 商品更新缓存机制完善

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
index 0bab96c..d5df5b2 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
@@ -1,10 +1,13 @@
 package com.yeshi.fanli.service.impl.dynamic;
 
+import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 import javax.annotation.Resource;
@@ -916,6 +919,37 @@
 		return list;
 	}
 
+	private Map<Long, TaoBaoGoodsBrief> getFilterGoodsMap(List<DynamicInfo> list) {
+		// 鎻愬彇杩囨护鍟嗗搧
+		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+		for (DynamicInfo dynamicInfo : list) {
+			List<GoodsPicture> gpList = dynamicInfo.getImgs();
+			if (gpList != null)
+				for (GoodsPicture gp : gpList) {
+					if (gp != null && gp.getGoods() != null) {
+						TaoBaoGoodsBriefExtra newGoods = new TaoBaoGoodsBriefExtra();
+						try {
+							PropertyUtils.copyProperties(newGoods, gp.getGoods());
+							goodsList.add(newGoods);
+						} catch (IllegalAccessException e) {
+							e.printStackTrace();
+						} catch (InvocationTargetException e) {
+							e.printStackTrace();
+						} catch (NoSuchMethodException e) {
+							e.printStackTrace();
+						}
+
+					}
+				}
+		}
+		goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
+		Map<Long, TaoBaoGoodsBrief> map = new HashMap<>();
+		if (goodsList != null)
+			for (TaoBaoGoodsBrief goods : goodsList)
+				map.put(goods.getAuctionId(), goods);
+		return map;
+	}
+
 	@Override
 	@Cacheable(value = "dynamicCache", key = "'queryV2-'+#platform+'-'+#version+'-'+#start+'-'+#count+'-'+#cid+'-'+#subId")
 	public List<DynamicInfo> queryV2(int platform, int version, int start, int count, Long cid, Long subId) {
@@ -924,6 +958,9 @@
 		// 闇�瑕佹洿鏂扮殑鍟嗗搧
 		List<TaoBaoGoodsBrief> taoBaoGoodsUpdateList = new ArrayList<>();
 		if (list != null && list.size() > 0) {
+			// 鎻愬彇鍟嗗搧
+			Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterGoodsMap(list);
+
 			BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
 			BigDecimal shareRate = hongBaoManageService.getShareRate();
 			for (DynamicInfo dynamicInfo : list) {
@@ -974,8 +1011,15 @@
 							continue;
 						}
 
+						// 杩囨护鍒镐俊鎭笌璧勯噾淇℃伅
+						goods.setCouponAmount(goodsMap.get(goods.getAuctionId()).getCouponAmount());
+						goods.setZkPrice(goodsMap.get(goods.getAuctionId()).getZkPrice());
+						goods.setCouponStartFee(goodsMap.get(goods.getAuctionId()).getCouponStartFee());
+						goods.setTkRate(goodsMap.get(goods.getAuctionId()).getTkRate());
+
 						GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBaoGoodsBriefExtra(goods, fanLiRate,
 								shareRate);
+
 						goodsNew.setGoodsVO(detailVO);
 						goodsNew.setGoods(null);
 

--
Gitblit v1.8.0