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