From 81da61b828e29b7745e1382dfbbaeb685dc083ef Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 23 一月 2024 17:17:55 +0800 Subject: [PATCH] 抖音转链修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java | 703 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 484 insertions(+), 219 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 599c960..4724b9a 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 @@ -1,219 +1,484 @@ -package com.yeshi.fanli.service.impl.taobao; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import javax.annotation.Resource; - -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.goods.CommonGoods; -import com.yeshi.fanli.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.service.inter.activity.ActivityService; -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.taobao.TaoBaoGoodsUpdateService; -import com.yeshi.fanli.util.BeanUtil; -import com.yeshi.fanli.util.StringUtil; -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 QualityFactoryService qualityFactoryService; - - @Resource - private TaoBaoGoodsBriefMapper taoBaoGoodsBriefMapper; - - @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(); - } - } - - } catch (TaobaoGoodsDownException e) { - offlineTaoBaoGoods(goods.getAuctionId()); - } catch (Exception e) { - - } - } - } - - @Transactional - @Override - public void deleteTaoBaoGoods(Long auctionId) { - // 鍒犻櫎棣栭〉鎺ㄨ崘鏁版嵁 - recommendSectionGoodsService.deleteRecommendSectionGoodsByTbAuctionId(auctionId); - - // 鍒犻櫎绮鹃�夊簱鐩稿叧鐨勬暟鎹� - qualityFactoryService.deleteByTbAuctionId(auctionId); - - // 鍒犻櫎鍟嗗搧鏈韩鏁版嵁 - taoBaoGoodsBriefMapper.deleteByAuctionId(auctionId); - } - - @Transactional - @Override - public void offlineTaoBaoGoods(Long auctionId) { - // 鍒犻櫎棣栭〉鎺ㄨ崘鏁版嵁 - recommendSectionGoodsService.deleteRecommendSectionGoodsByTbAuctionId(auctionId); - // 鏇存柊鍔ㄦ�佹暟鎹� - activityService.downTaoBaoGoods(auctionId); - - // 鍒犻櫎绮鹃�夊簱鐩稿叧鐨勬暟鎹� - qualityFactoryService.deleteByTbAuctionId(auctionId); - - // 鍒犻櫎鍟嗗搧鏈韩鏁版嵁 - taoBaoGoodsBriefMapper.deleteByAuctionId(auctionId); - - // 鏇存柊绠�鐗堝晢鍝佺姸鎬佷负涓嬫灦 - commonGoodsService.offlineCommonGoods(auctionId, CommonGoods.GOODS_TYPE_TB); - } - - @Transactional - @Override - public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) throws TaobaoGoodsUpdateException { - if (goods == null) - throw new TaobaoGoodsUpdateException(1, "鍟嗗搧涓虹┖"); - - if (goods.getAuctionId() == null || goods.getAuctionId() == 0) - throw new TaobaoGoodsUpdateException(2, "鍟嗗搧ID涓虹┖"); - - // 鏇存柊鏀惰棌淇℃伅 - try { - commonGoodsService.updateCommonGoods(CommonGoodsFactory.create(goods)); - } catch (CommonGoodsException e) { - e.printStackTrace(); - } - - 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); - - } - - // 鏇存柊鍔ㄦ�佸晢鍝� - activityService.updateRecommendActivityGoods(goods); - } - - @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); - } - } - - @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()); - - 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); - } - -} +package com.yeshi.fanli.service.impl.taobao; + +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.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.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.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.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 ActivityGoodsUpdateService activityGoodsUpdateService; + + @Resource + private QualityFactoryGoodsUpdateService qualityFactoryGoodsUpdateService; + + @Resource + private TaoBaoGoodsBriefMapper taoBaoGoodsBriefMapper; + + @Resource + private CommonGoodsService commonGoodsService; + + @Lazy + @Resource + private ShareHotGoodsService shareHotGoodsService; + + @Lazy + @Resource + private TLJBuyGoodsUpdateService tljBuyGoodsUpdateService; + + @Resource + private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil; + + @Resource + private TaoBaoGoodsUpdateDao taoBaoGoodsUpdateDao; + + @Lazy + @Resource + private TLJFreeBuyGoodsUpdateService tljFreeBuyGoodsUpdateService; + @Lazy + @Resource + private GoodsEvaluateService goodsEvaluateService; + + @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(); + } + } + + } catch (TaobaoGoodsDownException e) { + offlineTaoBaoGoods(goods.getAuctionId()); + } catch (Exception e) { + + } + } + } + + @Transactional + @Override + public void deleteTaoBaoGoods(String auctionId) { + // 鍒犻櫎绮鹃�夊簱鐩稿叧鐨勬暟鎹� + qualityFactoryGoodsUpdateService.deleteByTaoBaoGoodsId(auctionId); + + // 鍒犻櫎鍟嗗搧鏈韩鏁版嵁 + taoBaoGoodsBriefMapper.deleteByAuctionId(auctionId); + } + + @Transactional + @Override + public void offlineTaoBaoGoods(String auctionId) { + // 鏇存柊鍔ㄦ�佹暟鎹� + activityGoodsUpdateService.downTaoBaoGoods(auctionId); + + // 鍒犻櫎绮鹃�夊簱鐩稿叧鐨勬暟鎹� + qualityFactoryGoodsUpdateService.deleteByTaoBaoGoodsId(auctionId); + + // 鍒犻櫎鍟嗗搧鏈韩鏁版嵁 + taoBaoGoodsBriefMapper.deleteByAuctionId(auctionId); + + // 鏇存柊绠�鐗堝晢鍝佺姸鎬佷负涓嬫灦 + commonGoodsService.offlineCommonGoods(auctionId, CommonGoods.GOODS_TYPE_TB); + + // 鍒嗕韩鐖嗘鏁版嵁鍒犻櫎 + shareHotGoodsService.deleteByGoodsId(auctionId); + + goodsEvaluateService.offlineTaoBaoGoods(auctionId + ""); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) throws TaobaoGoodsUpdateException { + if (goods == null) + throw new TaobaoGoodsUpdateException(1, "鍟嗗搧涓虹┖"); + + if (StringUtil.isNullOrEmpty( goods.getAuctionId())) + throw new TaobaoGoodsUpdateException(2, "鍟嗗搧ID涓虹┖"); + + // 璁剧疆鍟嗗搧姝e父涓婄嚎 + goods.setState(0); + // 鏇存柊鏀惰棌淇℃伅 + try { + commonGoodsService.updateCommonGoods(CommonGoodsFactory.create(goods)); + } catch (CommonGoodsException e) { + e.printStackTrace(); + } + + TaoBaoGoodsBrief tb = taoBaoGoodsBriefMapper.selectOneByAuctionId(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<String> list = taoBaoGoodsBriefMapper + .queryCanDeleteGoods(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 2), 0, 2000); + for (String 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<String> listNeedUpdateGoodsId(long start, int count, int hour) { + return taoBaoGoodsBriefMapper.listNeedUpdateGoodsId(start, count, hour); + } + + @Override + public void updateByTaoKeGoodsDetail(String goodsId) { + try { + TaoBaoGoodsBrief oldGoods = taoBaoGoodsBriefMapper.selectOneByAuctionId(goodsId); + if (oldGoods == null) { + return; + } + + TaoBaoGoodsBrief newGoods = TaoKeApiUtil.searchGoodsDetail(oldGoods.getAuctionId()); + if (newGoods == null) { + return; + } + + // 鏇存柊绮鹃�夊晢鍝� + newGoods.setId(oldGoods.getId()); + 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(goodsId); + } 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()); + goods.setMid(goods.getAuctionId()); + taoBaoGoodsUpdateDao.save(goods); + taoBaoGoodsCacheUtil.addUpdateHistory(goods.getAuctionId()); + } + + @Async + @Override + public void addUpdateQueueAsync(String auctionId) { + addUpdateQueueSync(auctionId); + } + + /** + * 鍚屾鍔犲叆 + * + * @param auctionId + */ + private void addUpdateQueueSync(String 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<String, 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<String> auctionIds = new ArrayList<>(); + for (TaoBaoGoodsBrief goods : tempGoodsList) { + auctionIds.add(goods.getAuctionId()); + } + List<TaoBaoGoodsBrief> mList =null; + try { + mList = taoBaoGoodsUpdateDao.listByAuctionIds(auctionIds); + }catch(Exception e){ + } + 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 List<CommonGoods> filterImportantTaoBaoGoodsWithCommonGoods(List<CommonGoods> goodsList) { + + // 鍟嗗搧杩囨护涓嶅厑璁稿嚭閿� + try { + Map<String, CommonGoods> finalMap = new HashMap<>(); + // 鍘熷鏁版嵁鍏ㄨ鐩� + List<CommonGoods> tempGoodsList = new ArrayList<>(); + for (CommonGoods goods : goodsList) { + if (goods.getGoodsType() == CommonGoods.SHOP_TYPE_TB) { + finalMap.put(goods.getGoodsId(), goods); + tempGoodsList.add(goods); + } + } + + // 鍏堜粠redis閲岄潰鍙栬鐩� + for (int i = 0; i < tempGoodsList.size(); i++) { + TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil + .getCommonTaoBaoGoodsInfo(tempGoodsList.get(i).getGoodsId()); + if (goods != null) { + finalMap.put(goods.getAuctionId(), CommonGoodsFactory.create(goods)); + tempGoodsList.remove(i--); + } + } + + // 鍐嶄粠mongodb涓彇瑕嗙洊 + List<String> auctionIds = new ArrayList<>(); + for (CommonGoods goods : tempGoodsList) { + auctionIds.add(goods.getGoodsId()); + } + 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(), CommonGoodsFactory.create(goods)); + } + + List<CommonGoods> finalList = new ArrayList<>(); + for (CommonGoods goods : goodsList) { + if (goods.getGoodsType() == CommonGoods.GOODS_TYPE_TB) { + CommonGoods newGoods = finalMap.get(goods.getGoodsId()); + // 杩囨护浠锋牸锛岃繑鍒╂瘮渚嬶紝鍒镐俊鎭� + goods.setPrice(newGoods.getPrice()); + goods.setRate(newGoods.getRate()); + goods.setCouponAmount(newGoods.getCouponAmount()); + goods.setCouponInfo(newGoods.getCouponInfo()); + goods.setCouponLeftCount(newGoods.getCouponLeftCount()); + goods.setCouponStartPrice(newGoods.getCouponStartPrice()); + goods.setCouponTotalCount(newGoods.getCouponTotalCount()); + } + + 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