From dc5be7d38446f70e6ff86df311119c32b41fe7f8 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 28 十一月 2020 16:37:05 +0800 Subject: [PATCH] 大淘客搜索接口升级 --- fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java | 522 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 370 insertions(+), 152 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 df349e6..97ce55d 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,201 +3,419 @@ 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; import com.google.gson.Gson; import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoGoodsBriefMapper; -import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; +import com.yeshi.fanli.dao.taobao.TaoBaoGoodsUpdateDao; +import com.yeshi.fanli.entity.goods.CommonGoods; +import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.exception.goods.CommonGoodsException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException; -import com.yeshi.fanli.goods.CommonGoods; -import com.yeshi.fanli.service.inter.activity.ActivityService; +import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.activity.ActivityGoodsUpdateService; +import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService; import com.yeshi.fanli.service.inter.goods.CommonGoodsService; -import com.yeshi.fanli.service.inter.goods.RecommendSectionGoodsService; -import com.yeshi.fanli.service.inter.lable.QualityFactoryService; +import com.yeshi.fanli.service.inter.lable.QualityFactoryGoodsUpdateService; +import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService; +import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsUpdateService; +import com.yeshi.fanli.service.inter.taobao.TLJFreeBuyGoodsUpdateService; import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService; -import com.yeshi.fanli.util.BeanUtil; +import com.yeshi.fanli.util.CMQManager; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil; import com.yeshi.fanli.util.factory.CommonGoodsFactory; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; @Service public class TaoBaoGoodsUpdateServiceImpl implements TaoBaoGoodsUpdateService { - @Resource - private RecommendSectionGoodsService recommendSectionGoodsService; - @Resource - private ActivityService activityService; + @Resource + private ActivityGoodsUpdateService activityGoodsUpdateService; - @Resource - private QualityFactoryService qualityFactoryService; + @Resource + private QualityFactoryGoodsUpdateService qualityFactoryGoodsUpdateService; - @Resource - private TaoBaoGoodsBriefMapper taoBaoGoodsBriefMapper; + @Resource + private TaoBaoGoodsBriefMapper taoBaoGoodsBriefMapper; - @Resource - private CommonGoodsService commonGoodsService; + @Resource + private CommonGoodsService commonGoodsService; - @Override - public void startUpdate() { - // 鏇存柊鏃堕棿瓒呰繃6涓皬鏃剁殑鍋氭洿鏂� - List<TaoBaoGoodsBrief> list = taoBaoGoodsBriefMapper - .queryGoodsByMaxUpdateTime(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 6L), 0, 5000); - for (TaoBaoGoodsBrief goods : list) { - try { - TaoBaoGoodsBrief newGoods = TaoKeApiUtil.searchGoodsDetail(goods.getAuctionId()); - if (newGoods != null) { - try { - updateTaoBaoGoods(newGoods); - } catch (TaobaoGoodsUpdateException e) { - e.printStackTrace(); - } - } + @Lazy + @Resource + private ShareHotGoodsService shareHotGoodsService; - } catch (TaobaoGoodsDownException e) { - downTaoBaoGoods(goods.getAuctionId()); - } catch (Exception e) { + @Lazy + @Resource + private TLJBuyGoodsUpdateService tljBuyGoodsUpdateService; - } - } - } + @Resource + private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil; - @Transactional - @Override - public void deleteTaoBaoGoods(Long auctionId) { - // 鍒犻櫎棣栭〉鎺ㄨ崘鏁版嵁 - recommendSectionGoodsService.deleteRecommendSectionGoodsByTbAuctionId(auctionId); + @Resource + private TaoBaoGoodsUpdateDao taoBaoGoodsUpdateDao; - // 鍒犻櫎绮鹃�夊簱鐩稿叧鐨勬暟鎹� - qualityFactoryService.deleteByTbAuctionId(auctionId); + @Lazy + @Resource + private TLJFreeBuyGoodsUpdateService tljFreeBuyGoodsUpdateService; + @Lazy + @Resource + private GoodsEvaluateService goodsEvaluateService; - // 鍒犻櫎鍟嗗搧鏈韩鏁版嵁 - taoBaoGoodsBriefMapper.deleteByAuctionId(auctionId); - } + @Override + public void startUpdate() { + // 鏇存柊鏃堕棿瓒呰繃6涓皬鏃剁殑鍋氭洿鏂� + List<TaoBaoGoodsBrief> list = taoBaoGoodsBriefMapper + .queryGoodsByMaxUpdateTime(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 6L), 0, 5000); + for (TaoBaoGoodsBrief goods : list) { + try { + TaoBaoGoodsBrief newGoods = TaoKeApiUtil.searchGoodsDetail(goods.getAuctionId()); + if (newGoods != null) { + try { + updateTaoBaoGoods(newGoods); + } catch (TaobaoGoodsUpdateException e) { + e.printStackTrace(); + } + } - @Transactional - @Override - public void downTaoBaoGoods(Long auctionId) { - // 鍒犻櫎棣栭〉鎺ㄨ崘鏁版嵁 - recommendSectionGoodsService.deleteRecommendSectionGoodsByTbAuctionId(auctionId); - // 鏇存柊鍔ㄦ�佹暟鎹� - activityService.downTaoBaoGoods(auctionId); + } catch (TaobaoGoodsDownException e) { + offlineTaoBaoGoods(goods.getAuctionId()); + } catch (Exception e) { - // 鍒犻櫎绮鹃�夊簱鐩稿叧鐨勬暟鎹� - qualityFactoryService.deleteByTbAuctionId(auctionId); + } + } + } - // 鍒犻櫎鍟嗗搧鏈韩鏁版嵁 - taoBaoGoodsBriefMapper.deleteByAuctionId(auctionId); - } + @Transactional + @Override + public void deleteTaoBaoGoods(Long auctionId) { + // 鍒犻櫎绮鹃�夊簱鐩稿叧鐨勬暟鎹� + qualityFactoryGoodsUpdateService.deleteByTaoBaoGoodsId(auctionId); - @Transactional - @Override - public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) throws TaobaoGoodsUpdateException { - if (goods == null) - throw new TaobaoGoodsUpdateException(1, "鍟嗗搧涓虹┖"); + // 鍒犻櫎鍟嗗搧鏈韩鏁版嵁 + taoBaoGoodsBriefMapper.deleteByAuctionId(auctionId); + } - if (goods.getAuctionId() == null || goods.getAuctionId() == 0) - throw new TaobaoGoodsUpdateException(2, "鍟嗗搧ID涓虹┖"); + @Transactional + @Override + public void offlineTaoBaoGoods(Long auctionId) { + // 鏇存柊鍔ㄦ�佹暟鎹� + activityGoodsUpdateService.downTaoBaoGoods(auctionId); - // 鏇存柊鏀惰棌淇℃伅 - try { - commonGoodsService.updateCommonGoods(CommonGoodsFactory.create(goods)); - } catch (CommonGoodsException e) { - e.printStackTrace(); - } + // 鍒犻櫎绮鹃�夊簱鐩稿叧鐨勬暟鎹� + qualityFactoryGoodsUpdateService.deleteByTaoBaoGoodsId(auctionId); - List<TaoBaoGoodsBrief> goodsList = taoBaoGoodsBriefMapper.queryByAuctionId(goods.getAuctionId()); - if (goodsList != null) - for (TaoBaoGoodsBrief tb : goodsList) { - goods.setId(tb.getId()); - TaoBaoGoodsBrief updateGoods = getUpdateTaoBaoGoodsBrief(goods); - System.out.println("鏇寸粏淇℃伅:" + new Gson().toJson(updateGoods)); - taoBaoGoodsBriefMapper.updateByPrimaryKeySelective(updateGoods); + // 鍒犻櫎鍟嗗搧鏈韩鏁版嵁 + taoBaoGoodsBriefMapper.deleteByAuctionId(auctionId); - } - } + // 鏇存柊绠�鐗堝晢鍝佺姸鎬佷负涓嬫灦 + commonGoodsService.offlineCommonGoods(auctionId, CommonGoods.GOODS_TYPE_TB); - @Override - public void deleteOutOfDate() { - TaoBaoGoodsBriefMapper taoBaoGoodsBriefMapper = BeanUtil.getBean(TaoBaoGoodsBriefMapper.class); - List<Long> list = taoBaoGoodsBriefMapper - .queryCanDeleteGoods(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 2), 0, 2000); - for (Long auctionId : list) { - deleteTaoBaoGoods(auctionId); - } - } + // 鍒嗕韩鐖嗘鏁版嵁鍒犻櫎 + shareHotGoodsService.deleteByGoodsId(auctionId); - @Override - public TaoBaoGoodsBrief getUpdateTaoBaoGoodsBrief(TaoBaoGoodsBrief goods) { - String auctionUrl = "https://item.taobao.com/item.htm?id=" + goods.getAuctionId(); - String couponLink = ""; - TaoBaoGoodsBrief updateGoods = new TaoBaoGoodsBrief(goods.getId()); - updateGoods.setUpdatetime(new Date()); - updateGoods.setState(0); - // 闃叉鏄浆閾剧殑閾炬帴锛屾暟鎹繃闀� - updateGoods.setAuctionUrl(auctionUrl); - updateGoods.setCouponLink(couponLink); - // 鏇存柊鏍囬锛屽晢鍝佸浘鐗囷紝閿�閲忥紝浠锋牸锛屽埜淇℃伅锛岃繑鍒╀俊鎭紝搴楅摵淇℃伅锛屽垎绫讳俊鎭� - updateGoods.setTitle(goods.getTitle()); - updateGoods.setPictUrl(goods.getPictUrl()); - updateGoods.setImgList(goods.getImgList()); - updateGoods.setBiz30day(goods.getBiz30day()); - updateGoods.setZkPrice(goods.getZkPrice()); - updateGoods.setReservePrice(goods.getReservePrice()); - updateGoods.setTkRate(goods.getTkRate()); - // 鍒镐俊鎭� - if (StringUtil.isNullOrEmpty(goods.getCouponInfo()) && StringUtil.isNullOrEmpty(goods.getCouponActivityId())) { - updateGoods.setCouponActivityId(""); - updateGoods.setCouponAmount(new BigDecimal(0)); - updateGoods.setCouponEffectiveEndTime(""); - updateGoods.setCouponEffectiveStartTime(""); - updateGoods.setCouponInfo(""); - updateGoods.setCouponLeftCount(0); - updateGoods.setCouponLink(""); - updateGoods.setCouponStartFee(new BigDecimal(0)); - updateGoods.setCouponTotalCount(0); // 娌℃湁鍒镐簡 - } else {// 杩樻湁鍒� - updateGoods.setCouponActivityId(goods.getCouponActivityId()); - updateGoods.setCouponAmount(goods.getCouponAmount()); - updateGoods.setCouponEffectiveEndTime(goods.getCouponEffectiveEndTime()); - updateGoods.setCouponEffectiveStartTime(goods.getCouponEffectiveStartTime()); - updateGoods.setCouponInfo(goods.getCouponInfo()); - updateGoods.setCouponLeftCount(goods.getCouponLeftCount()); - updateGoods.setCouponLink(""); - updateGoods.setCouponStartFee(goods.getCouponStartFee()); - updateGoods.setCouponTotalCount(goods.getCouponTotalCount()); - } + goodsEvaluateService.offlineTaoBaoGoods(auctionId + ""); + } - // 搴楅摵淇℃伅 - updateGoods.setShopTitle(goods.getShopTitle()); - updateGoods.setSellerId(goods.getSellerId()); + @Transactional(rollbackFor = Exception.class) + @Override + public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) throws TaobaoGoodsUpdateException { + if (goods == null) + throw new TaobaoGoodsUpdateException(1, "鍟嗗搧涓虹┖"); - // 鍒嗙被淇℃伅 - updateGoods.setRootCatId(goods.getRootCatId()); - updateGoods.setRootCategoryName(goods.getRootCategoryName()); - updateGoods.setLeafCatId(goods.getLeafCatId()); - updateGoods.setLeafName(goods.getLeafName()); + if (goods.getAuctionId() == null || goods.getAuctionId() == 0) + throw new TaobaoGoodsUpdateException(2, "鍟嗗搧ID涓虹┖"); - return updateGoods; - } + // 璁剧疆鍟嗗搧姝e父涓婄嚎 + goods.setState(0); + // 鏇存柊鏀惰棌淇℃伅 + try { + commonGoodsService.updateCommonGoods(CommonGoodsFactory.create(goods)); + } catch (CommonGoodsException e) { + e.printStackTrace(); + } - @Override - public void updateTaoBaoGoods(List<TaoBaoGoodsBrief> goodsList) throws TaobaoGoodsUpdateException { - if (goodsList == null) - return; - List<TaoBaoGoodsBrief> updateList = new ArrayList<>(); - for (TaoBaoGoodsBrief goods : goodsList) { - if (goods.getId() == null || goods.getId() == 0L) - throw new TaobaoGoodsUpdateException(1, "鍟嗗搧涓婚敭ID涓虹┖"); - updateList.add(goods); - } - taoBaoGoodsBriefMapper.updateBatchSelective(updateList); - } + TaoBaoGoodsBrief tb = taoBaoGoodsBriefMapper.selectByPrimaryKey(goods.getAuctionId()); + if (tb != null) { + goods.setId(tb.getId()); + TaoBaoGoodsBrief updateGoods = getUpdateTaoBaoGoodsBrief(goods); + System.out.println("鏇寸粏淇℃伅:" + new Gson().toJson(updateGoods)); + taoBaoGoodsBriefMapper.updateByPrimaryKeySelective(updateGoods); + } + + // 鏇存柊鍔ㄦ�佸晢鍝� + activityGoodsUpdateService.updateRecommendActivityGoods(goods); + + // 鏇存柊鍒嗕韩搴撶殑鍟嗗搧 + shareHotGoodsService.updateShareGoods(goods); + + // 鏇存柊鑷喘绔嬪噺搴撳晢鍝� + tljBuyGoodsUpdateService.updateGoods(goods); + + // 鏇存柊鏂颁汉鍏嶅崟搴撳晢鍝� + tljFreeBuyGoodsUpdateService.updateGoods(goods); + + goodsEvaluateService.updateTaoBaoGoods(goods); + + // 鎬昏鍟嗗搧鏇存柊 + updateImplTBGoods(goods); + } + + @Override + public void deleteOutOfDate() { + List<Long> list = taoBaoGoodsBriefMapper + .queryCanDeleteGoods(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 2), 0, 2000); + for (Long auctionId : list) { + deleteTaoBaoGoods(auctionId); + } + } + + @Override + public TaoBaoGoodsBrief getUpdateTaoBaoGoodsBrief(TaoBaoGoodsBrief goods) { + String auctionUrl = "https://item.taobao.com/item.htm?id=" + goods.getAuctionId(); + String couponLink = ""; + TaoBaoGoodsBrief updateGoods = new TaoBaoGoodsBrief(goods.getId()); + updateGoods.setUpdatetime(new Date()); + updateGoods.setState(0); + // 闃叉鏄浆閾剧殑閾炬帴锛屾暟鎹繃闀� + updateGoods.setAuctionUrl(auctionUrl); + updateGoods.setCouponLink(couponLink); + // 鏇存柊鏍囬锛屽晢鍝佸浘鐗囷紝閿�閲忥紝浠锋牸锛屽埜淇℃伅锛岃繑鍒╀俊鎭紝搴楅摵淇℃伅锛屽垎绫讳俊鎭� + updateGoods.setTitle(goods.getTitle()); + updateGoods.setPictUrl(goods.getPictUrl()); + updateGoods.setPictUrlWhite(goods.getPictUrlWhite()); + updateGoods.setImgList(goods.getImgList()); + updateGoods.setBiz30day(goods.getBiz30day()); + updateGoods.setZkPrice(goods.getZkPrice()); + updateGoods.setReservePrice(goods.getReservePrice()); + updateGoods.setTkRate(goods.getTkRate()); + // 鍒镐俊鎭� + if (StringUtil.isNullOrEmpty(goods.getCouponInfo()) && StringUtil.isNullOrEmpty(goods.getCouponActivityId())) { + updateGoods.setCouponActivityId(""); + updateGoods.setCouponAmount(new BigDecimal(0)); + updateGoods.setCouponEffectiveEndTime(""); + updateGoods.setCouponEffectiveStartTime(""); + updateGoods.setCouponInfo(""); + updateGoods.setCouponLeftCount(0); + updateGoods.setCouponLink(""); + updateGoods.setCouponStartFee(new BigDecimal(0)); + updateGoods.setCouponTotalCount(0); // 娌℃湁鍒镐簡 + } else {// 杩樻湁鍒� + updateGoods.setCouponActivityId(goods.getCouponActivityId()); + updateGoods.setCouponAmount(goods.getCouponAmount()); + updateGoods.setCouponEffectiveEndTime(goods.getCouponEffectiveEndTime()); + updateGoods.setCouponEffectiveStartTime(goods.getCouponEffectiveStartTime()); + updateGoods.setCouponInfo(goods.getCouponInfo()); + updateGoods.setCouponLeftCount(goods.getCouponLeftCount()); + updateGoods.setCouponLink(""); + updateGoods.setCouponStartFee(goods.getCouponStartFee()); + updateGoods.setCouponTotalCount(goods.getCouponTotalCount()); + } + + // 搴楅摵淇℃伅 + updateGoods.setShopTitle(goods.getShopTitle()); + updateGoods.setSellerId(goods.getSellerId()); + + // 鍒嗙被淇℃伅 + updateGoods.setRootCatId(goods.getRootCatId()); + updateGoods.setRootCategoryName(goods.getRootCategoryName()); + updateGoods.setLeafCatId(goods.getLeafCatId()); + updateGoods.setLeafName(goods.getLeafName()); + updateGoods.setMaterialLibType(goods.getMaterialLibType()); + + return updateGoods; + } + + @Override + public void updateTaoBaoGoods(List<TaoBaoGoodsBrief> goodsList) throws TaobaoGoodsUpdateException { + if (goodsList == null || goodsList.size() == 0) + throw new TaobaoGoodsUpdateException(1, "鍟嗗搧鍒楄〃涓虹┖"); + + List<TaoBaoGoodsBrief> updateList = new ArrayList<>(); + + for (TaoBaoGoodsBrief goods : goodsList) { + if (goods.getId() == null || goods.getId() == 0L) { + throw new TaobaoGoodsUpdateException(1, "鍟嗗搧涓婚敭ID涓虹┖"); + } + + // 闇�瑕佹洿鏂扮殑淇℃伅 + TaoBaoGoodsBrief updateGoods = getUpdateTaoBaoGoodsBrief(goods); + updateGoods.setCreatetime(goods.getCreatetime()); + updateList.add(updateGoods); + } + + taoBaoGoodsBriefMapper.updateBatchSelective(updateList); + } + + @Override + public List<Long> listNeedUpdateGoodsId(long start, int count, int hour) { + return taoBaoGoodsBriefMapper.listNeedUpdateGoodsId(start, count, hour); + } + + @Override + public void updateByTaoKeGoodsDetail(Long id) { + try { + TaoBaoGoodsBrief oldGoods = taoBaoGoodsBriefMapper.selectByPrimaryKey(id); + if (oldGoods == null) { + return; + } + + TaoBaoGoodsBrief newGoods = TaoKeApiUtil.searchGoodsDetail(id); + if (newGoods == null) { + return; + } + + // 鏇存柊绮鹃�夊晢鍝� + newGoods.setId(id); + TaoBaoGoodsBrief updateGoods = getUpdateTaoBaoGoodsBrief(newGoods); + taoBaoGoodsBriefMapper.updateByPrimaryKeySelective(updateGoods); + + // 鏇存柊鍔ㄦ�佸晢鍝� + activityGoodsUpdateService.updateRecommendActivityGoods(newGoods); + + // 鏇存柊鏀惰棌淇℃伅 + try { + commonGoodsService.updateCommonGoods(CommonGoodsFactory.create(newGoods)); + } catch (CommonGoodsException e) { + e.printStackTrace(); + } + + } catch (TaobaoGoodsDownException e) { + offlineTaoBaoGoods(id); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + } + + /** + * 鏇存柊閲嶈鐨勬窐瀹濇暟鎹� + * + * @param goods + */ + public void updateImplTBGoods(TaoBaoGoodsBrief goods) { + if (goods == null || goods.getAuctionId() == null) + return; + if (!taoBaoGoodsCacheUtil.needUpdate(goods.getAuctionId())) { + return; + } + goods.setUpdatetime(new Date()); + if (goods.getId() == null) + goods.setId(goods.getAuctionId()); + taoBaoGoodsUpdateDao.save(goods); + taoBaoGoodsCacheUtil.addUpdateHistory(goods.getAuctionId()); + } + + @Async + @Override + 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> filterImportantTaoBaoGoods(List<TaoBaoGoodsBrief> goodsList) { + + // 鍟嗗搧杩囨护涓嶅厑璁稿嚭閿� + try { + 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) { + if (goods.getUpdatetime().getTime() > System.currentTimeMillis() - 1000 * 60 * 60 * 24L)// 鍦�1澶╁唴鏇存柊鐨勬暟鎹墠鍙備笌杩囨护 + finalMap.put(goods.getAuctionId(), goods); + } + + List<TaoBaoGoodsBrief> finalList = new ArrayList<>(); + for (TaoBaoGoodsBrief goods : goodsList) { + TaoBaoGoodsBrief newGoods = finalMap.get(goods.getAuctionId()); + // 杩囨护浠锋牸锛岃繑鍒╂瘮渚嬶紝鍒镐俊鎭� + goods.setZkPrice(newGoods.getZkPrice()); + goods.setTkRate(newGoods.getTkRate()); + goods.setCouponAmount(newGoods.getCouponAmount()); + goods.setCouponActivityId(newGoods.getCouponActivityId()); + goods.setCouponEffectiveEndTime(newGoods.getCouponEffectiveEndTime()); + goods.setCouponEffectiveStartTime(newGoods.getCouponEffectiveStartTime()); + goods.setCouponStartFee(newGoods.getCouponStartFee()); + goods.setCouponTotalCount(newGoods.getCouponTotalCount()); + goods.setCouponLeftCount(newGoods.getCouponLeftCount()); + + finalList.add(goods); + } + return finalList; + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + return goodsList; + } + + @Override + public int listAndRemoveByMaxUpdateTime(Date maxTime, int page, int pageSize) { + return taoBaoGoodsUpdateDao.listAndRemoveByMaxUpdateTime(maxTime, (page - 1) * pageSize, pageSize); + } + + @Override + public long countByMaxUpdateTime(Date maxTime) { + return taoBaoGoodsUpdateDao.countByMaxUpdateTime(maxTime); + + } } -- Gitblit v1.8.0