From dd5b15229cb15459fa7c31ccea77dac28cbfafbd Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 13 四月 2020 10:04:20 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/service/impl/goods/recommend/HomeRecommendGoodsServiceImpl.java | 83 +++++++++++++++++++++++++++++++++++++++-- 1 files changed, 78 insertions(+), 5 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/recommend/HomeRecommendGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/recommend/HomeRecommendGoodsServiceImpl.java index 2eb3ef9..fc2a0be 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/recommend/HomeRecommendGoodsServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/recommend/HomeRecommendGoodsServiceImpl.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import javax.annotation.Resource; @@ -13,14 +15,18 @@ import org.springframework.stereotype.Service; import com.yeshi.fanli.dto.dataoke.DaTaoKeGoodsResult; +import com.yeshi.fanli.entity.taobao.TLJBuyGoods; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2; import com.yeshi.fanli.service.inter.goods.recommend.HomeRecommendGoodsService; import com.yeshi.fanli.service.inter.goods.recommend.RecommendGoodsDeleteHistoryService; -import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService; +import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService; +import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService; +import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; @@ -32,10 +38,16 @@ private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService; @Resource - private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService; + private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service; @Resource private EhCacheCacheManager ehCacheCacheManager; + + @Resource + private TLJBuyGoodsService tljBuyGoodsService; + + @Resource + private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService; @Override public List<TaoBaoGoodsBrief> listGoodsByPage(Long uid, String device, String imei, String idfa, int page) { @@ -126,7 +138,7 @@ if (fList != null && fList.size() > 0) return fList; - TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(1, 50, imei, idfa); + TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(1, 50, imei, idfa,""); List<TaoBaoGoodsBrief> finalList = new ArrayList<>(); if (result != null && result.getTaoBaoGoodsBriefs() != null) { @@ -162,7 +174,16 @@ if (fList != null && fList.size() > 0) return fList; - DaTaoKeGoodsResult result = DaTaoKeApiUtil.getRankingList(type); + DaTaoKeGoodsResult result = null; + int count = 0; + while (result == null && count < 4) { + count++; + try { + result = DaTaoKeApiUtil.getRankingList(type, null); + } catch (Exception e) { + } + } + List<DaTaoKeDetailV2> list = result.getGoodsList(); List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); if (list != null) @@ -175,6 +196,8 @@ if (goodsList != null && goodsList.size() > 0) saveObjList(goodsList, name, key); + // 鍟嗗搧淇℃伅杩囨护 + goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList); return goodsList; } @@ -191,9 +214,10 @@ if (list != null && list.size() > 0) return list; + // 鐖嗘鍟嗗搧搴� TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(3756, page, Constant.PAGE_SIZE); if (result != null) { - list = daTaoKeGoodsDetailService.filterTaoBaoGoods(result.getTaoBaoGoodsBriefs()); + list = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(result.getTaoBaoGoodsBriefs()); saveObjList(list, name, key); return list; } @@ -220,4 +244,53 @@ return null; } + @Override + public List<TLJBuyGoods> getZiGouLiJianHotGoods(String device) { + + String name = "recommendUserCache"; + String key = "getZiGouLiJianHotGoods-" + StringUtil.Md5(device); + List<TLJBuyGoods> fList = getCacheObjList(name, key, TLJBuyGoods.class); + if (fList != null && fList.size() > 0) + return fList; + + List<TLJBuyGoods> list = tljBuyGoodsService + .listByDay(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd")); + + if (list.size() > 20) + list = list.subList(0, 20); + List<TaoBaoGoodsBrief> finalList = new ArrayList<>(); + Map<Long, TLJBuyGoods> map = new ConcurrentHashMap<>(); + if (list != null) + for (TLJBuyGoods goods : list) { + try { + if (goods.getGoods().getAuctionId() == null) { + goods.getGoods().setAuctionId(goods.getGoods().getId()); + } + map.put(goods.getGoods().getAuctionId(), goods); + finalList.add(goods.getGoods()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + finalList = recommendGoodsDeleteHistoryService.filterGoods(device, finalList); + + if (finalList != null && finalList.size() > 0) { + Collections.shuffle(finalList); + if (finalList.size() >= 10) + finalList = finalList.subList(0, 10); + list = new ArrayList<>(); + for (TaoBaoGoodsBrief goods : finalList) { + list.add(map.get(goods.getAuctionId())); + } + // 缂撳瓨 + if (list.size() > 0) { + saveObjList(list, name, key); + } + return list; + } + + return null; + } + } -- Gitblit v1.8.0