Browse Source

物料搜索增加搜索字段过滤

hejq 7 years ago
parent
commit
947b2ce67c

+ 8 - 3
src/main/java/com/uas/ps/product/controller/ProductGetController.java

@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -103,10 +104,14 @@ public class ProductGetController {
      * @return
      */
     @RequestMapping(value = "/searchProducts", method = RequestMethod.GET)
-    public SPage<Product> searchProducts(int page, int size, String filters, String notEqualFilters, String keyword) {
+    public SPage<Product> searchProducts(int page, int size, String filters, String notEqualFilters, String keyword, String keywordSearchColumns) {
         Map<String, Object> equalMap = JSON.parseObject(filters);
         Map<String, Object> notEqualMap = JSON.parseObject(notEqualFilters);
-        PageParams pageParams = new PageParams(page, size, equalMap, notEqualMap);
+        List<String> searchColumns = new ArrayList<>();
+        if (null != keywordSearchColumns) {
+            searchColumns = JSON.parseArray(keywordSearchColumns, String.class);
+        }
+        PageParams pageParams = new PageParams(page, size, equalMap, notEqualMap, searchColumns);
         return searchService.searchProducts(keyword, pageParams);
     }
 
@@ -123,7 +128,7 @@ public class ProductGetController {
     public SPage<ProductUsers> findProductUsersByPageInfo(int page, int size, String filters, String notEqualFilters, Sort sort, String keyword) {
         Map<String, Object> equalMap = JSON.parseObject(filters);
         Map<String, Object> notEqualMap = JSON.parseObject(notEqualFilters);
-        PageParams pageParams = new PageParams(page, size, equalMap, notEqualMap);
+        PageParams pageParams = new PageParams(page, size, equalMap, notEqualMap, null);
         if (StringUtils.isEmpty(keyword)) {
             PageInfo pageInfo = new PageInfo(page, size);
             for (Map.Entry<String, Object> map : equalMap.entrySet()) {

+ 2 - 1
src/main/java/com/uas/ps/product/search/model/PageParams.java

@@ -58,11 +58,12 @@ public class PageParams implements Serializable {
      * @param filters 过滤条件(包含)
      * @param notEqualFilters 过滤条件(不包含)
      */
-	public PageParams(int page, int size, Map<String, Object> filters, Map<String, Object> notEqualFilters) {
+	public PageParams(int page, int size, Map<String, Object> filters, Map<String, Object> notEqualFilters, List<String> keywordSearchColumns) {
 		this.page = page;
 		this.size = size;
 		this.filters = filters;
 		this.notEqualFilters = notEqualFilters;
+		this.keywordSearchColumns = keywordSearchColumns;
 	}
 
 	public int getPage() {

+ 2 - 1
src/main/java/com/uas/ps/product/search/model/SearchUrl.java

@@ -11,7 +11,8 @@ public class SearchUrl {
     /**
      * 获取id链接
      */
-    public static final String ID_LIST = "/search/productIds/b2b?keyword={keyword}&tableName={tableName}&page={page}&size={size}" +
+    public static final String ID_LIST = "/search/productIds/b2b?keywordSearchColumns={keywordSearchColumns}&keyword={keyword}" +
+            "&tableName={tableName}&page={page}&size={size}" +
             "&filters={filters}&multiValueField={multiValueField}&sort={sort}" +
             "&notEqualFilters={notEqualFilters}&multiValueNotField={multiValueNotField}";
 

+ 6 - 0
src/main/java/com/uas/ps/product/search/service/RestTempSearchServiceImpl.java

@@ -9,6 +9,7 @@ import com.uas.ps.product.search.model.*;
 import com.uas.ps.properties.UrlProperties;
 import net.sf.ehcache.search.SearchException;
 import org.apache.commons.collections.map.HashedMap;
+import org.apache.poi.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -115,6 +116,11 @@ public class RestTempSearchServiceImpl implements RestTempSearchService {
         map.put("multiValueField", CollectionUtils.isEmpty(valueFields) ? "" : FlexJsonUtils.toJsonDeep(valueFields));
         map.put("multiValueNotField", CollectionUtils.isEmpty(valueNotFields) ? "" : FlexJsonUtils.toJsonDeep(valueNotFields));
         map.put("filters", JSON.toJSONString(pageParams.getFilters()));
+        if (!CollectionUtils.isEmpty(pageParams.getKeywordSearchColumns())) {
+            map.put("keywordSearchColumns", org.apache.tomcat.util.buf.StringUtils.join(pageParams.getKeywordSearchColumns()));
+        } else  {
+            map.put("keywordSearchColumns", null);
+        }
         return map;
     }
 }