From 24a8d17e007545f7426c48352109aa1a9c6587ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 06 五月 2020 12:02:09 +0800 Subject: [PATCH] IOS上线隐藏我的界面的banner与超级会员升级信息 --- fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java | 194 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 174 insertions(+), 20 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java index 6efbbe2..0a8accf 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java @@ -13,11 +13,15 @@ import javax.annotation.Resource; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.yeshi.fanli.dao.goods.taobao.dataoke.DaTaoKeGoodsDetailV2Dao; import com.yeshi.fanli.dto.dataoke.DaTaoKeGoodsResult; +import com.yeshi.fanli.dto.dataoke.DingDongQiangDTO; +import com.yeshi.fanli.dto.taobao.DaTaoKeFilterResult; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2; import com.yeshi.fanli.log.LogHelper; @@ -156,11 +160,17 @@ for (TaoBaoGoodsBrief goods : goodsList) goodsIdList.add(goods.getAuctionId()); - List<DaTaoKeDetailV2> dtList = listByGoodsIds(goodsIdList); + List<DaTaoKeDetailV2> dtList = null; + try { + dtList = listByGoodsIds(goodsIdList); + } catch (Exception e) { + + } Map<Long, DaTaoKeDetailV2> map = new HashMap<>(); - for (DaTaoKeDetailV2 goods : dtList) - map.put(goods.getGoodsId(), goods); + if (dtList != null) + for (DaTaoKeDetailV2 goods : dtList) + map.put(goods.getGoodsId(), goods); for (TaoBaoGoodsBrief goods : goodsList) { DaTaoKeDetailV2 detail = map.get(goods.getAuctionId()); goods = DaTaoKeUtil.filterTaoBaoGoods(goods, detail); @@ -168,20 +178,6 @@ return goodsList; } - @Override - public TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods) { - List<Long> goodsIdList = new ArrayList<>(); - goodsIdList.add(goods.getAuctionId()); - - List<DaTaoKeDetailV2> daTaoKeList = listByGoodsIds(goodsIdList); - if (daTaoKeList == null || daTaoKeList.size() == 0) - return goods; - - // 閲嶆柊璁剧疆鏍囬涓庡埜浠锋牸 - goods = DaTaoKeUtil.filterTaoBaoGoods(goods, daTaoKeList.get(0)); - - return goods; - } @Override public List<DaTaoKeDetailV2> listByIds(List<Long> idsList) { @@ -207,13 +203,16 @@ @Override public List<DaTaoKeDetailV2> getGoodsNotInList(Long cid, List<Long> listId, int count) { + if (cid != null && cid == 0L) + cid = null; return daTaoKeGoodsDetailV2Dao.getGoodsNotInList(cid, listId, count); } @Override - public List<DaTaoKeDetailV2> listPreShareHotGoods(int page,BigDecimal minCommission) { + public List<DaTaoKeDetailV2> listPreShareHotGoods(int page, BigDecimal minCommission) { Map<Long, DaTaoKeDetailV2> map = new HashMap<>(); - List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Dao.listPreShareHotGoods((page - 1) * 100, 100, "hotPush",minCommission); + List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Dao.listPreShareHotGoods((page - 1) * 100, 100, "hotPush", + minCommission); System.out.println(list); for (DaTaoKeDetailV2 v2 : list) { map.put(v2.getId(), v2); @@ -248,11 +247,23 @@ public List<DaTaoKeDetailV2> listPreTLJBuyGoods(int page) { if (page == 1) { List<DaTaoKeDetailV2> listPreGoodsList = new ArrayList<>(); + // 鐑攢姒� DaTaoKeGoodsResult result = DaTaoKeApiUtil.getRankingList(DaTaoKeApiUtil.RANK_TYPE_HOT, null); if (result != null && result.getGoodsList() != null) listPreGoodsList.addAll(result.getGoodsList()); - + // 澶嶈喘姒� result = DaTaoKeApiUtil.getRankingList(DaTaoKeApiUtil.RANK_TYPE_REBUY, null); + if (result != null && result.getGoodsList() != null) + listPreGoodsList.addAll(result.getGoodsList()); + // 缁煎悎鎼滅储 + try { + result = DaTaoKeApiUtil.search("", null, null, null, 1, 200, DaTaoKeApiUtil.SORT_DEFAULT); + if (result == null) + throw new Exception(); + } catch (Exception e) {// 寮傚父閲嶅涓�娆� + result = DaTaoKeApiUtil.search("", null, null, null, 1, 200, DaTaoKeApiUtil.SORT_DEFAULT); + } + if (result != null && result.getGoodsList() != null) listPreGoodsList.addAll(result.getGoodsList()); @@ -303,4 +314,147 @@ daTaoKeGoodsDetailV2Dao.listAndRemoveByMinUpdateTime(minTime, 0, 3000); } + @Override + public long countByMinUpdateTime(Date minTime) { + return daTaoKeGoodsDetailV2Dao.countByMinUpdateTime(minTime); + } + + @Cacheable(value = "daTaoKeGoodsCache", key = "'getDingDongQiangData'") + @Override + public List<DingDongQiangDTO> getDingDongQiangData() { + List<DingDongQiangDTO> list = null; + int count = 0; + while ((list == null || list.size() == 0) && count < 3) { + count++; + list = DaTaoKeUtil.getDingDongQiang(); + } + if (list == null) + return null; + return list; + } + + @Async + private void updateGoods(Long id) { + // TODO鏆傛椂鍏抽棴鏈嶅姟 + DaTaoKeDetailV2 v2 = null;// DaTaoKeApiUtil.getGoodsDetail(id); + if (v2 != null) + daTaoKeGoodsDetailV2Dao.save(v2); + } + + private List<DaTaoKeDetailV2> getDefaultDingDongQiang() { + // 鎸夋洿鏂版椂闂村姞 + DaTaoKeGoodsResult result = DaTaoKeApiUtil.getRankingList(DaTaoKeApiUtil.RANK_TYPE_TIME, null); + if (result != null && result.getGoodsList().size() > 0) { + List<DaTaoKeDetailV2> finalList = new ArrayList<>(); + Collections.shuffle(result.getGoodsList()); + finalList.addAll(result.getGoodsList().subList(0, + result.getGoodsList().size() > 8 ? 8 : result.getGoodsList().size())); + for (DaTaoKeDetailV2 detail : finalList) { + detail.setCouponReceiveNum(detail.getCouponTotalNum() - (int) (200 + Math.random() * 1000)); + if (detail.getCouponTotalNum() - detail.getCouponReceiveNum() <= 0) + detail.setCouponReceiveNum(detail.getCouponTotalNum()); + } + return finalList; + } + return null; + } + + @Cacheable(value = "daTaoKeGoodsCache", key = "'getDingDongQiangData-'+#time") + @Override + public List<DaTaoKeDetailV2> getDingDongQiangData(String time) { + List<DingDongQiangDTO> list = getDingDongQiangData(); + if (list == null || list.size() == 0) { + return getDefaultDingDongQiang(); + } + + Map<String, DingDongQiangDTO> map = new HashMap<>(); + for (DingDongQiangDTO dto : list) + map.put(dto.getTime(), dto); + + DingDongQiangDTO dto = map.get(time); + if (dto != null) { + List<Long> idList = new ArrayList<>(); + for (DaTaoKeDetailV2 td : dto.getGoodsList()) + idList.add(td.getId()); + List<DaTaoKeDetailV2> finalList = listByIds(idList); + if (finalList.size() != idList.size()) { + for (Long id : idList) { + // updateGoods(id); + // TODO 涓嶈兘寮傛璋冪敤 + } + finalList = listByIds(idList); + } + + // 濡傛灉鍟嗗搧鏁板皬浜�4锛岄渶瑕佸啀鍔犲晢鍝� + if (finalList == null || finalList.size() <= 3) { + // 鎸夋洿鏂版椂闂村姞 + List<DaTaoKeDetailV2> latestList = daTaoKeGoodsDetailV2Dao.listPreShareHotGoods(0, 50, "updateTime", + new BigDecimal("0.5")); + if (latestList != null && latestList.size() > 0) { + Collections.shuffle(latestList); + finalList.addAll(latestList.subList(0, latestList.size() > 8 ? 8 : latestList.size())); + } + } + + for (DaTaoKeDetailV2 detail : finalList) { + detail.setCouponReceiveNum(detail.getCouponTotalNum() - (int) (200 + Math.random() * 1000)); + if (detail.getCouponTotalNum() - detail.getCouponReceiveNum() <= 0) + detail.setCouponReceiveNum(detail.getCouponTotalNum()); + } + return finalList; + } else { + return getDefaultDingDongQiang(); + } + } + + @Override + public List<String> getDingDongQiangTime() { + List<DingDongQiangDTO> list = getDingDongQiangData(); + List<String> dateList = new ArrayList<>(); + for (DingDongQiangDTO dto : list) { + dateList.add(dto.getTime()); + } + return dateList; + } + + @Override + public List<DaTaoKeDetailV2> listByMaxPrice(Integer cid, BigDecimal maxPrice, String sortName, int page, + int count) { + + return daTaoKeGoodsDetailV2Dao.listByMaxPrice(cid, maxPrice, sortName, (page - 1) * count, count); + } + + @Override + public int countByMaxPrice(Integer cid, BigDecimal maxPrice) { + return (int) daTaoKeGoodsDetailV2Dao.countByMaxPrice(cid, maxPrice); + } + + @Override + public List<DaTaoKeDetailV2> listBySellerId(long start, int count, Long sellerId) { + return daTaoKeGoodsDetailV2Dao.listBySellerId((int) start, count, sellerId); + } + + @Override + public DaTaoKeDetailV2 selectByAuctionId(Long auctionId) { + return daTaoKeGoodsDetailV2Dao.selectByAuctionId(auctionId); + } + + @Cacheable(value = "daTaoKeGoodsCache", key = "'selectByAuctionId-'+#auctionId") + @Override + public DaTaoKeDetailV2 selectByAuctionIdCache(Long auctionId) { + return selectByAuctionId(auctionId); + } + + @Override + public DaTaoKeFilterResult filterTaoBaoGoods(TaoBaoGoodsBrief goods) { + List<Long> goodsIdList = new ArrayList<>(); + goodsIdList.add(goods.getAuctionId()); + + List<DaTaoKeDetailV2> daTaoKeList = listByGoodsIds(goodsIdList); + if (daTaoKeList == null || daTaoKeList.size() == 0) + return new DaTaoKeFilterResult(goods, DaTaoKeFilterResult.FILTER_TYPE_NONE); + // 閲嶆柊璁剧疆鏍囬涓庡埜浠锋牸 + return DaTaoKeUtil.filterTaoBaoGoods(goods, daTaoKeList.get(0), true); + } + } -- Gitblit v1.8.0