From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 23 五月 2020 09:54:38 +0800
Subject: [PATCH] 足迹、收藏订单兼容新需求

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/jd/JDGoodsServiceImpl.java |  109 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 74 insertions(+), 35 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/jd/JDGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/jd/JDGoodsServiceImpl.java
index ff6731f..6810a25 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/jd/JDGoodsServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/jd/JDGoodsServiceImpl.java
@@ -1,6 +1,7 @@
 package com.yeshi.fanli.service.impl.jd;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -16,10 +17,11 @@
 import com.yeshi.fanli.dto.jd.JDSearchResult;
 import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
 import com.yeshi.fanli.entity.jd.JDGoods;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 import com.yeshi.fanli.exception.jd.JDGoodsException;
 import com.yeshi.fanli.service.inter.config.ConfigService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
 import com.yeshi.fanli.service.inter.jd.JDGoodsService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
 import com.yeshi.fanli.tag.PageEntity;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
@@ -28,14 +30,13 @@
 
 @Service
 public class JDGoodsServiceImpl implements JDGoodsService {
-	
+
 	@Resource
 	private ConfigService configService;
-	
+
 	@Resource
 	private HongBaoManageService hongBaoManageService;
-	
-	
+
 	private Map<String, Long> countMap = new HashMap<String, Long>();
 	private static final Map<Long, String> cidMap = new HashMap<Long, String>();
 
@@ -43,10 +44,10 @@
 		cidMap.put(1L, "2,16,1,3");// 绮鹃��
 		cidMap.put(2L, "737");// 鐢靛櫒锛� 瀹剁敤鐢靛櫒
 		cidMap.put(3L, "652,670");// 鏁扮爜锛� 鏁扮爜/鐢佃剳銆佸姙鍏�
-		cidMap.put(4L, "9987");// 鎵嬫満锛氭墜鏈洪�氳 
+		cidMap.put(4L, "9987");// 鎵嬫満锛氭墜鏈洪�氳
 		cidMap.put(5L, "12218");// 鐢熼矞
-		cidMap.put(6L, "1315");// 鏈嶉グ锛� 鏈嶉グ鍐呰。 
-		cidMap.put(7L, "1319,6233");// 姣嶅┐锛� 姣嶅┐/鐜╁叿涔愬櫒 
+		cidMap.put(6L, "1315");// 鏈嶉グ锛� 鏈嶉グ鍐呰。
+		cidMap.put(7L, "1319,6233");// 姣嶅┐锛� 姣嶅┐/鐜╁叿涔愬櫒
 		cidMap.put(8L, "1713");// 鍥句功
 		cidMap.put(9L, "6196");// 鍘ㄥ叿
 		cidMap.put(10L, "1320");// 椋熷搧锛� 椋熷搧楗枡
@@ -60,7 +61,6 @@
 		cidMap.put(18L, "6728");// 姹借溅锛氭苯杞︾敤鍝�
 	}
 
-	
 	@Override
 	public List<GoodsClass> getSpecialClass() {
 		List<GoodsClass> list = new ArrayList<GoodsClass>();
@@ -82,23 +82,22 @@
 		list.add(new GoodsClass(16L, "瀹犵墿"));
 		list.add(new GoodsClass(17L, "瀹跺眳"));
 		list.add(new GoodsClass(18L, "姹借溅"));
-		return list; 
+		return list;
 	}
-	
-	
+
 	@Cacheable(value = "jdSpecialCache", key = "'specialSearch-'+#page+'-'+#cid")
 	@Override
-	@Transactional
-	public List<JDGoods> specialSearch(Integer page, Long cid) throws JDGoodsException{
+	@Transactional(rollbackFor=Exception.class)
+	public List<JDGoods> specialSearch(Integer page, Long cid) throws JDGoodsException {
 		if (cid == null) {
 			throw new JDGoodsException(1, "鍒嗙被id涓虹┖");
 		}
-		
+
 		String jdcid = cidMap.get(cid);
 		if (StringUtil.isNullOrEmpty(jdcid)) {
 			throw new JDGoodsException(1, "鍒嗙被id涓嶅瓨鍦�");
 		}
-		
+
 		// 绮鹃��
 		if (cid == 1) {
 			Integer categoryId = null;
@@ -112,23 +111,23 @@
 				if (count != null) {
 					addCount += count;
 				}
-				
+
 				if (count != null && totalCount > addCount) {
-					pageTemp = (int)(addCount / Constant.PAGE_SIZE);
+					pageTemp = (int) (addCount / Constant.PAGE_SIZE);
 					continue; // 褰撳墠鍒嗙被鍟嗗搧涓嶈冻
 				} else {
-					page = page - pageTemp; 
+					page = page - pageTemp;
 					categoryId = Integer.parseInt(id);
 					break;
 				}
 			}
-			
+
 			if (categoryId == null) {
 				return null;
 			}
-			
+
 			JDSearchResult result = JDApiUtil.getJingFenGoods(page, categoryId);
-			
+
 			long count = 0;
 			if (result != null) {
 				PageEntity pageEntity = result.getPageEntity();
@@ -136,25 +135,24 @@
 					count = pageEntity.getTotalCount();
 				}
 			}
-			
-			long mcount = (count/Constant.PAGE_SIZE) * Constant.PAGE_SIZE;
+
+			long mcount = (count / Constant.PAGE_SIZE) * Constant.PAGE_SIZE;
 			if (mcount == 0) {
 				mcount = 20;
 			}
 			countMap.put(cid + "-" + categoryId, mcount);
-			
+
 			if (result == null) {
 				return null;
 			} else {
-				return result.getGoodsList();
+				return filterJDGoods(result.getGoodsList());
 			}
-		} 
-		
-		
+		}
+
 		if (!jdcid.contains(",")) {
 			return search(page, Constant.PAGE_SIZE, jdcid);
-		} 
-		
+		}
+
 		// 澶氫釜鍒嗙被id澶勭悊
 		List<JDGoods> list = new ArrayList<JDGoods>();
 		String[] arrayId = jdcid.split(",");
@@ -167,13 +165,29 @@
 				list.addAll(listGoods);
 			}
 		}
-		return list;
+		return filterJDGoods(list);
 	}
 
-	
+	/**
+	 * 杩囨护鍟嗗搧
+	 * 
+	 * @param goodsList
+	 * @return
+	 */
+	private List<JDGoods> filterJDGoods(List<JDGoods> goodsList) {
+		List<Long> skuIds = new ArrayList<>();
+		for (JDGoods goods : goodsList) {
+			skuIds.add(goods.getSkuId());
+		}
+		List<JDGoods> newGoodsList = JDApiUtil.listGoodsDetail(skuIds);
+		if (newGoodsList != null && newGoodsList.size() > 0)
+			return newGoodsList;
+		return goodsList;
+	}
+
 	private List<JDGoods> search(int page, int pageSize, String jdcid) {
 		JDSearchResult result = null;
-		String way = configService.get("jd_api_search_key");
+		String way = configService.get(ConfigKeyEnum.jdApiSearchKey.getKey());
 		if ("1".equals(way)) { // API鎼滅储
 			JDFilter filterAPI = new JDFilter();
 			filterAPI.setPageIndex(page);
@@ -187,7 +201,7 @@
 			jdfilter.setCategoryId(Integer.parseInt(jdcid));
 			result = JDUtil.searchByKey(jdfilter);
 		}
-		
+
 		if (result == null) {
 			return null;
 		} else {
@@ -195,4 +209,29 @@
 		}
 	}
 
+	@Cacheable(value = "jdCache", key = "'getIndexJDGoods-'+#page")
+	@Override
+	public JDSearchResult getIndexJDGoods(int page) {
+		JDSearchResult result = null;
+		String way = configService.get(ConfigKeyEnum.jdApiSearchKey.getKey());
+		// TODO 闇�瑕佽皟鏁磋鍒�
+		way = "0";
+		if ("1".equals(way)) {
+			JDFilter filterAPI = new JDFilter();
+			filterAPI.setPageIndex(page);
+			filterAPI.setPageSize(20);
+			result = JDApiUtil.queryByKey(filterAPI);
+		} else {
+			// 缃戦〉鐖彇
+			JDSearchFilter jdfilter = new JDSearchFilter();
+			jdfilter.setPageNo(page);
+			jdfilter.setPageSize(Constant.PAGE_SIZE);
+			result =JDApiUtil.getJingFenGoods(page,125); //JDUtil.searchByKey(jdfilter);
+		}
+		if (result != null && result.getGoodsList() != null)
+			Collections.shuffle(result.getGoodsList());
+
+		return result;
+	}
+
 }

--
Gitblit v1.8.0