Browse Source

filter goods' status only when FilterField.GOODS_STATUS is provided

sunyj 8 years ago
parent
commit
4911944116

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

@@ -225,6 +225,7 @@ public class SearchController {
                     case GOODS_BRANDID:
                     case GOODS_BRANDID:
                     case GOODS_STORE_TYPE:
                     case GOODS_STORE_TYPE:
                     case GOODS_CRNAME:
                     case GOODS_CRNAME:
+                    case GOODS_STATUS:
                         filtersMap.put(field, entry.getValue());
                         filtersMap.put(field, entry.getValue());
                         break;
                         break;
                 }
                 }

+ 0 - 2
mall-search/src/main/java/com/uas/search/model/TradeGoods.java

@@ -18,8 +18,6 @@ public class TradeGoods implements Serializable {
 
 
 	private static final long serialVersionUID = 1L;
 	private static final long serialVersionUID = 1L;
 
 
-	public static final Long[] VALID_STATUS = {601L, 602L};
-
 	/**
 	/**
 	 * id
 	 * id
 	 */
 	 */

+ 24 - 30
mall-search/src/main/java/com/uas/search/service/impl/SearchServiceImpl.java

@@ -860,13 +860,6 @@ public class SearchServiceImpl implements SearchService {
 		try {
 		try {
 			BooleanQuery booleanQuery = queryGoods(keyword, keywordFields, tokenized);
 			BooleanQuery booleanQuery = queryGoods(keyword, keywordFields, tokenized);
 			Map<FilterField, Object> filters = pageParams.getFilters();
 			Map<FilterField, Object> filters = pageParams.getFilters();
-            // 筛选状态
-            if (!CollectionUtils.isEmpty(filters) && !StringUtils.isEmpty(filters.get(FilterField.GOODS_STATUS))) {
-                filter(filters.get(FilterField.GOODS_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
-            } else {
-                // 未指定时,过滤默认状态
-                filter(Arrays.asList(TradeGoods.VALID_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
-            }
 			if (!CollectionUtils.isEmpty(filters)) {
 			if (!CollectionUtils.isEmpty(filters)) {
 				// 筛选类目
 				// 筛选类目
 				if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_KINDID))) {
 				if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_KINDID))) {
@@ -888,6 +881,11 @@ public class SearchServiceImpl implements SearchService {
 					filter(filters.get(FilterField.GOODS_CRNAME), SearchConstants.GOODS_CRNAME_FIELD, booleanQuery);
 					filter(filters.get(FilterField.GOODS_CRNAME), SearchConstants.GOODS_CRNAME_FIELD, booleanQuery);
 				}
 				}
 
 
+                // 筛选状态
+                if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_STATUS))) {
+                    filter(filters.get(FilterField.GOODS_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
+                }
+
 				// 价格筛选
 				// 价格筛选
 				Object minPriceRmb = filters.get(FilterField.GOODS_MINPRICERMB);
 				Object minPriceRmb = filters.get(FilterField.GOODS_MINPRICERMB);
 				Object maxPriceRmb = filters.get(FilterField.GOODS_MAXPRICERMB);
 				Object maxPriceRmb = filters.get(FilterField.GOODS_MAXPRICERMB);
@@ -1083,32 +1081,28 @@ public class SearchServiceImpl implements SearchService {
 		List<Map<String, Object>> result = new ArrayList<>();
 		List<Map<String, Object>> result = new ArrayList<>();
 		try {
 		try {
 			BooleanQuery booleanQuery = queryGoods(keyword, keywordFields, tokenized);
 			BooleanQuery booleanQuery = queryGoods(keyword, keywordFields, tokenized);
-            // 筛选状态
-            if (!CollectionUtils.isEmpty(filters) && !StringUtils.isEmpty(filters.get(FilterField.GOODS_STATUS))) {
-                filter(filters.get(FilterField.GOODS_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
-            } else {
-                // 未指定时,过滤默认状态
-                filter(Arrays.asList(TradeGoods.VALID_STATUS), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
-            }
 			// 过滤
 			// 过滤
 			Set<Entry<FilterField, Object>> entrySet = filters.entrySet();
 			Set<Entry<FilterField, Object>> entrySet = filters.entrySet();
 			for (Entry<FilterField, Object> entry : entrySet) {
 			for (Entry<FilterField, Object> entry : entrySet) {
-				switch (entry.getKey()) {
-				case GOODS_KINDID:
-					filter(entry.getValue(), SearchConstants.GOODS_KI_ID_FIELD, booleanQuery);
-					break;
-				case GOODS_BRANDID:
-					filter(entry.getValue(), SearchConstants.GOODS_BR_ID_FIELD, booleanQuery);
-					break;
-				case GOODS_STORE_TYPE:
-					filter(entry.getValue(), SearchConstants.GOODS_ST_TYPE_FIELD, booleanQuery);
-					break;
-				case GOODS_CRNAME:
-					filter(entry.getValue(), SearchConstants.GOODS_CRNAME_FIELD, booleanQuery);
-					break;
-				default:
-					throw new SearchException("不支持该过滤字段:" + entry.getKey());
-				}
+                switch (entry.getKey()) {
+                    case GOODS_KINDID:
+                        filter(entry.getValue(), SearchConstants.GOODS_KI_ID_FIELD, booleanQuery);
+                        break;
+                    case GOODS_BRANDID:
+                        filter(entry.getValue(), SearchConstants.GOODS_BR_ID_FIELD, booleanQuery);
+                        break;
+                    case GOODS_STORE_TYPE:
+                        filter(entry.getValue(), SearchConstants.GOODS_ST_TYPE_FIELD, booleanQuery);
+                        break;
+                    case GOODS_CRNAME:
+                        filter(entry.getValue(), SearchConstants.GOODS_CRNAME_FIELD, booleanQuery);
+                        break;
+                    case GOODS_STATUS:
+                        filter(entry.getValue(), SearchConstants.GOODS_GO_STATUS_FIELD, booleanQuery);
+                        break;
+                    default:
+                        throw new SearchException("不支持该过滤字段:" + entry.getKey());
+                }
 			}
 			}
 			logger.info(booleanQuery.toString());
 			logger.info(booleanQuery.toString());