From 51a4ff5d777028d52a19c314a99f796334cb7b51 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 23 十一月 2019 18:30:01 +0800
Subject: [PATCH] 配置文件修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java |  133 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 115 insertions(+), 18 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 fdb8ae5..cf4f8f2 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,10 +3,13 @@
 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.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -19,11 +22,11 @@
 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.ActivityService;
+import com.yeshi.fanli.service.inter.activity.ActivityGoodsUpdateService;
 import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
-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.TLJBuyGoodsService;
+import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsUpdateService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
 import com.yeshi.fanli.util.CMQManager;
 import com.yeshi.fanli.util.StringUtil;
@@ -35,10 +38,10 @@
 public class TaoBaoGoodsUpdateServiceImpl implements TaoBaoGoodsUpdateService {
 
 	@Resource
-	private ActivityService activityService;
+	private ActivityGoodsUpdateService activityGoodsUpdateService;
 
 	@Resource
-	private QualityFactoryService qualityFactoryService;
+	private QualityFactoryGoodsUpdateService qualityFactoryGoodsUpdateService;
 
 	@Resource
 	private TaoBaoGoodsBriefMapper taoBaoGoodsBriefMapper;
@@ -50,7 +53,7 @@
 	private ShareHotGoodsService shareHotGoodsService;
 
 	@Resource
-	private TLJBuyGoodsService tljBuyGoodsService;
+	private TLJBuyGoodsUpdateService tljBuyGoodsUpdateService;
 
 	@Resource
 	private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil;
@@ -86,7 +89,7 @@
 	@Override
 	public void deleteTaoBaoGoods(Long auctionId) {
 		// 鍒犻櫎绮鹃�夊簱鐩稿叧鐨勬暟鎹�
-		qualityFactoryService.deleteByTaoBaoGoodsId(auctionId);
+		qualityFactoryGoodsUpdateService.deleteByTaoBaoGoodsId(auctionId);
 
 		// 鍒犻櫎鍟嗗搧鏈韩鏁版嵁
 		taoBaoGoodsBriefMapper.deleteByAuctionId(auctionId);
@@ -96,10 +99,10 @@
 	@Override
 	public void offlineTaoBaoGoods(Long auctionId) {
 		// 鏇存柊鍔ㄦ�佹暟鎹�
-		activityService.downTaoBaoGoods(auctionId);
+		activityGoodsUpdateService.downTaoBaoGoods(auctionId);
 
 		// 鍒犻櫎绮鹃�夊簱鐩稿叧鐨勬暟鎹�
-		qualityFactoryService.deleteByTaoBaoGoodsId(auctionId);
+		qualityFactoryGoodsUpdateService.deleteByTaoBaoGoodsId(auctionId);
 
 		// 鍒犻櫎鍟嗗搧鏈韩鏁版嵁
 		taoBaoGoodsBriefMapper.deleteByAuctionId(auctionId);
@@ -138,16 +141,16 @@
 		}
 
 		// 鏇存柊鍔ㄦ�佸晢鍝�
-		activityService.updateRecommendActivityGoods(goods);
+		activityGoodsUpdateService.updateRecommendActivityGoods(goods);
 
 		// 鏇存柊鍒嗕韩搴撶殑鍟嗗搧
 		shareHotGoodsService.updateShareGoods(goods);
 
 		// 鏇存柊鑷喘绔嬪噺搴撳晢鍝�
-		tljBuyGoodsService.updateGoods(goods);
+		tljBuyGoodsUpdateService.updateGoods(goods);
 
 		// 鎬昏鍟嗗搧鏇存柊
-//		updateImplTBGoods(goods);
+		updateImplTBGoods(goods);
 	}
 
 	@Override
@@ -260,7 +263,7 @@
 			taoBaoGoodsBriefMapper.updateByPrimaryKeySelective(updateGoods);
 
 			// 鏇存柊鍔ㄦ�佸晢鍝�
-			activityService.updateRecommendActivityGoods(newGoods);
+			activityGoodsUpdateService.updateRecommendActivityGoods(newGoods);
 
 			// 鏇存柊鏀惰棌淇℃伅
 			try {
@@ -292,12 +295,106 @@
 		taoBaoGoodsCacheUtil.addUpdateHistory(goods.getAuctionId());
 	}
 
+	@Async
 	@Override
-	public void addUpdateQueue(Long auctionId) {
-		if (taoBaoGoodsCacheUtil.canAddToUpdateQueue(auctionId)) {
-			// 娣诲姞鍒版洿鏂伴槦鍒�
-			CMQManager.getInstance().addTBImpGoodsUpdate(auctionId);
-			taoBaoGoodsCacheUtil.addAddToQueueHistory(auctionId);
+	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