Browse Source

Merge remote-tracking branch 'origin/dev' into dev

suntg 7 years ago
parent
commit
847fc3f2ab

+ 7 - 0
mall-search/src/main/java/com/uas/search/constant/model/PageParams.java

@@ -110,6 +110,13 @@ public class PageParams implements Serializable {
 		return "PageParams [page=" + page + ", size=" + size + ", filters=" + filters + ", sort=" + sort + "]";
 	}
 
+	public PageParams(PageParams pageParams) {
+		this.setPage(pageParams.getPage());
+		this.setSize(pageParams.getSize());
+		this.setFilters(pageParams.getFilters());
+		this.setSort(pageParams.getSort());
+	}
+
 	/**
 	 * 过滤的字段
 	 * 

+ 10 - 5
mall-search/src/main/java/com/uas/search/service/impl/SearchServiceImpl.java

@@ -1161,20 +1161,22 @@ public class SearchServiceImpl implements SearchService {
 
 		productsFields.add(SearchConstants.PRODUCT_PRIVATE_CMPCODE_FIELD);
 		productsFields.add(SearchConstants.PRODUCT_PRIVATE_PCMPCODE_FIELD);
-
+        PageParams stockPageParams = new PageParams(pageParams);
+        PageParams futuresPageParams = new PageParams(pageParams);
 		// 现货
-		Map<String, Object> stock = getGoodsIds(keyword, goodsFields, true, pageParams);
+		Map<String, Object> stock = getGoodsIds(keyword, goodsFields, false, pageParams);
 		// 如搜索无结果则分词
 		if (CollectionUtils.isEmpty(stock) || stock.get("content") == null || JSONObject.parseArray(stock.get("content").toString()).isEmpty()) {
 			keyword = recursivelyGetGoodsIds(keyword, null, true);
-			stock = getGoodsIds(keyword, goodsFields, true, pageParams);
+			stock = getGoodsIds(keyword, goodsFields, true, stockPageParams);
 		}
 		// 期货
-		SPage<Long> futures = getProductIds(keyword, productsFields, true, pageParams);
+        PageParams recursivelyPageParams = new PageParams(pageParams);
+		SPage<Long> futures = getProductIds(keyword, productsFields, false, futuresPageParams);
 		// 如搜索无结果则分词
 		if (futures == null || CollectionUtils.isEmpty(futures.getContent())) {
 			keyword = recursivelyProductIds(keyword, productsFields, true);
-			futures = getProductIds(keyword, productsFields, true, pageParams);
+			futures = getProductIds(keyword, productsFields, true, recursivelyPageParams);
 		}
 		map.put("stock", stock);
 		map.put("futures", futures);
@@ -1296,6 +1298,9 @@ public class SearchServiceImpl implements SearchService {
 			if (pageParams.getPage() > 1) {// 不是第一页
 				TopDocs previousHits = indexSearcher.search(booleanQuery, (pageParams.getPage() - 1) * pageParams.getSize(), sort, true, false);
 				int totalHits = previousHits.totalHits;
+                if (totalHits == 0) {
+                    return map;
+                }
                 int totalPage = (int) Math.ceil(totalHits / (1.0 * pageParams.getSize()));
 				if (pageParams.getPage() > totalPage) {
                     pageParams.setPage(totalPage);