Sfoglia il codice sorgente

B2C物料搜索 - 增加全部物料搜索接口,非标搜索字段修改

dongbw 7 anni fa
parent
commit
298328caed

+ 17 - 0
mall-search/src/main/java/com/uas/search/controller/SearchController.java

@@ -44,6 +44,23 @@ public class SearchController {
 
 
 	private Logger logger = LoggerFactory.getLogger(getClass());
 	private Logger logger = LoggerFactory.getLogger(getClass());
 
 
+	/**
+	 * 查询所有物料
+	 * @param keyword 关键词
+	 * @param page  页码
+	 * @param size  尺寸
+	 * @param enUU 企业UU
+	 * @param request request
+	 * @return idPage
+	 * @throws IOException 输入异常
+	 */
+	@RequestMapping("/productIds")
+	@ResponseBody
+	public SPage<Long> searchProductIds(String keyword, Integer page, Integer size, @RequestParam Long enUU,
+												HttpServletRequest request) throws IOException {
+		return searchService.getProductIds(enUU, keyword, page, size);
+	}
+
 	/**
 	/**
 	 * 查询标准物料
 	 * 查询标准物料
 	 * @param keyword 关键词
 	 * @param keyword 关键词

+ 2 - 0
mall-search/src/main/java/com/uas/search/service/SearchService.java

@@ -522,6 +522,8 @@ public interface SearchService {
 	 */
 	 */
 	public SPage<Object> getObjects(String tableName, String keyword, String field, Boolean tokenized, @NotEmpty("page") Integer page, @NotEmpty("size") Integer size) throws IOException;
 	public SPage<Object> getObjects(String tableName, String keyword, String field, Boolean tokenized, @NotEmpty("page") Integer page, @NotEmpty("size") Integer size) throws IOException;
 
 
+	SPage<Long> getProductIds(Long enUU, String keyword, Integer page, Integer size) throws IOException;
+
 	/**
 	/**
 	 * 查询标准物料
 	 * 查询标准物料
 	 * @param enUU 企业UU
 	 * @param enUU 企业UU

+ 45 - 3
mall-search/src/main/java/com/uas/search/service/impl/SearchServiceImpl.java

@@ -45,6 +45,28 @@ public class SearchServiceImpl implements SearchService {
 
 
 	private static Logger logger = LoggerFactory.getLogger(SearchServiceImpl.class);
 	private static Logger logger = LoggerFactory.getLogger(SearchServiceImpl.class);
 
 
+	/**
+	 * 查询所有物料
+	 *
+	 * @param keyword 关键词
+	 * @param page    页码
+	 * @param size    尺寸
+	 * @return idPage
+	 * @throws IOException 输入异常
+	 */
+	@Override
+	public SPage<Long> getProductIds(Long enUU, String keyword, Integer page, Integer size) throws IOException {
+		List<Long> ids = new ArrayList<>();
+		SPage<Document> documents = getProductDocuments(enUU, keyword, page, size);
+		SPage<Long> sPage = new SPage<>(documents.getTotalPage(), documents.getTotalElement(), documents.getPage(),
+				documents.getSize(), documents.isFirst(), documents.isLast());
+		for (Document document : documents.getContent()) {
+			ids.add(Long.parseLong(document.get(SearchConstants.PRODUCT_PRIVATE_ID_FIELD)));
+		}
+		sPage.setContent(ids);
+		return sPage;
+	}
+
 	/**
 	/**
 	 * 查询标准物料
 	 * 查询标准物料
 	 *
 	 *
@@ -89,6 +111,26 @@ public class SearchServiceImpl implements SearchService {
 		return sPage;
 		return sPage;
 	}
 	}
 
 
+	private SPage<Document> getProductDocuments(Long enUU, String keyword, Integer page, Integer size) throws IOException {
+//		if (SearchUtils.isKeywordInvalid(keyword)) {
+//			throw new IllegalArgumentException("搜索关键词无效:" + keyword);
+//		}
+		BooleanQuery q1 = new BooleanQuery();
+		q1.add(new TermQuery(new Term(SearchConstants.PRODUCT_PRIVATE_ENUU_FIELD, String.valueOf(enUU))), BooleanClause.Occur.MUST);
+		q1.add(new TermQuery(new Term(SearchConstants.PRODUCT_PRIVATE_B2CENABLED_FIELD, String.valueOf(1))), BooleanClause.Occur.MUST);
+		BooleanQuery booleanQuery = new BooleanQuery();
+		booleanQuery.add(q1, BooleanClause.Occur.MUST);
+		if (!StringUtils.isEmpty(keyword)) {
+			BooleanQuery q2 = new BooleanQuery();
+			q2.add(createQuery(SearchConstants.PRODUCT_PRIVATE_KIND_FIELD, keyword, true,1), BooleanClause.Occur.SHOULD);
+			q2.add(createQuery(SearchConstants.PRODUCT_PRIVATE_PBRANDEN_FIELD, keyword, true,1), BooleanClause.Occur.SHOULD);
+			q2.add(createQuery(SearchConstants.PRODUCT_PRIVATE_PCMPCODE_FIELD, keyword, true,1), BooleanClause.Occur.SHOULD);
+			booleanQuery.add(q2, BooleanClause.Occur.MUST);
+		}
+		logger.info(booleanQuery.toString());
+		return SearchUtils.getDocuments(SearchConstants.PRODUCTS_PRIVATE_TABLE_NAME, booleanQuery, new Sort(sortProduct(keyword)), page, size);
+	}
+
 	private SPage<Document> getStandardProductDocuments(Long enUU, String keyword, Integer page, Integer size) throws IOException {
 	private SPage<Document> getStandardProductDocuments(Long enUU, String keyword, Integer page, Integer size) throws IOException {
 //		if (SearchUtils.isKeywordInvalid(keyword)) {
 //		if (SearchUtils.isKeywordInvalid(keyword)) {
 //			throw new IllegalArgumentException("搜索关键词无效:" + keyword);
 //			throw new IllegalArgumentException("搜索关键词无效:" + keyword);
@@ -122,9 +164,9 @@ public class SearchServiceImpl implements SearchService {
 		booleanQuery.add(q1, BooleanClause.Occur.MUST);
 		booleanQuery.add(q1, BooleanClause.Occur.MUST);
 		if (!StringUtils.isEmpty(keyword)) {
 		if (!StringUtils.isEmpty(keyword)) {
 			BooleanQuery q2 = new BooleanQuery();
 			BooleanQuery q2 = new BooleanQuery();
-			q2.add(createQuery(SearchConstants.PRODUCT_PRIVATE_TITLE_FIELD, keyword, true,1), BooleanClause.Occur.SHOULD);
-			q2.add(createQuery(SearchConstants.PRODUCT_PRIVATE_BRAND_FIELD, keyword, true,1), BooleanClause.Occur.SHOULD);
-			q2.add(createQuery(SearchConstants.PRODUCT_PRIVATE_CMPCODE_FIELD, keyword, true,1), BooleanClause.Occur.SHOULD);
+			q2.add(createQuery(SearchConstants.PRODUCT_PRIVATE_KIND_FIELD, keyword, true,1), BooleanClause.Occur.SHOULD);
+			q2.add(createQuery(SearchConstants.PRODUCT_PRIVATE_PBRANDEN_FIELD, keyword, true,1), BooleanClause.Occur.SHOULD);
+			q2.add(createQuery(SearchConstants.PRODUCT_PRIVATE_PCMPCODE_FIELD, keyword, true,1), BooleanClause.Occur.SHOULD);
 			booleanQuery.add(q2, BooleanClause.Occur.MUST);
 			booleanQuery.add(q2, BooleanClause.Occur.MUST);
 		}
 		}
 		logger.info(booleanQuery.toString());
 		logger.info(booleanQuery.toString());