From f4548a3ee46afe45da4ee2a42dc169c575deee9f Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期三, 31 七月 2019 11:57:36 +0800
Subject: [PATCH] 动态v2兼容

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailServiceImpl.java |   78 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 75 insertions(+), 3 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailServiceImpl.java
index 3227b0a..914f5f6 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailServiceImpl.java
@@ -9,16 +9,17 @@
 
 import javax.annotation.Resource;
 
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import com.yeshi.fanli.dao.mybatis.taobao.dataoke.DaTaoKeDetailMapper;
 import com.yeshi.fanli.dto.dataoke.DaTaoKeApiResult;
+import com.yeshi.fanli.dto.dataoke.DingDongQiangDTO;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
-import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
 import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
@@ -33,6 +34,7 @@
 
 	@Override
 	public void startSyncGoods() {
+		LogHelper.test("澶ф窐瀹㈠悓姝ュ紑濮�");
 		// 鍒ゆ柇鏄惁鏈夋鍦ㄨ繘琛岀殑鏇存柊
 		long firstTime = System.currentTimeMillis() - 1000 * 60 * 5L;
 		int totalCount = 0;
@@ -46,6 +48,7 @@
 				addGoodsList(result.getDetailList());
 				totalCount += result.getDetailList().size();
 			} catch (Exception e) {
+				e.printStackTrace();
 			}
 		}
 		LogHelper.test("澶ф窐瀹㈡�诲叡鏇存柊鏁版嵁鏁伴噺:" + totalCount);
@@ -87,8 +90,9 @@
 		List<DaTaoKeDetail> dtList = listByGoodsIds(goodsIdList);
 
 		Map<Long, DaTaoKeDetail> map = new HashMap<>();
-		for (DaTaoKeDetail goods : dtList)
-			map.put(goods.getGoodsId(), goods);
+		if (dtList != null)
+			for (DaTaoKeDetail goods : dtList)
+				map.put(goods.getGoodsId(), goods);
 		for (TaoBaoGoodsBrief goods : goodsList) {
 			DaTaoKeDetail detail = map.get(goods.getAuctionId());
 			goods = DaTaoKeUtil.filterTaoBaoGoods(goods, detail);
@@ -138,4 +142,72 @@
 		return daTaoKeDetailMapper.getGoodsNotInList(cid, listId, count);
 	}
 
+	@Override
+	public List<DaTaoKeDetail> listByCidAndMaxPrice(Integer cid, BigDecimal maxPrice, int page, int pageSize) {
+		return daTaoKeDetailMapper.listByCidAndMaxMinPrice(cid, maxPrice, null, (page - 1) * pageSize, pageSize);
+	}
+
+	@Override
+	public Long countByCidAndMaxPrice(Integer cid, BigDecimal maxPrice) {
+
+		return daTaoKeDetailMapper.countByCidAndMaxMinPrice(cid, maxPrice, null);
+	}
+
+	@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;
+	}
+
+	private void updateGoods(Long id) {
+		DaTaoKeDetail detail = daTaoKeDetailMapper.selectByPrimaryKey(id);
+		if (detail != null)
+			return;
+		detail = DaTaoKeApiUtil.getGoodsDetailV1(id);
+		if (detail != null) {
+			List<DaTaoKeDetail> list = new ArrayList<>();
+			list.add(detail);
+			addGoodsList(list);
+		}
+	}
+
+	@Cacheable(value = "daTaoKeGoodsCache", key = "'getDingDongQiangData-'+#time")
+	@Override
+	public List<DaTaoKeDetail> getDingDongQiangData(String time) {
+		List<DingDongQiangDTO> list = getDingDongQiangData();
+		if (list == null)
+			return null;
+		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 (DaTaoKeDetail td : dto.getGoodsList())
+				idList.add(td.getId());
+			List<DaTaoKeDetail> finalList = listByIds(idList);
+			if (finalList.size() != idList.size()) {
+				for (Long id : idList)
+					updateGoods(id);
+				finalList = listByIds(idList);
+			}
+
+			for (DaTaoKeDetail detail : finalList) {
+				detail.setQuanReceive(
+						detail.getQuanSurplus() + detail.getQuanReceive() - (int) (200 + Math.random() * 1000));
+			}
+			return finalList;
+		}
+		return null;
+	}
+
 }

--
Gitblit v1.8.0