Просмотр исходного кода

搜索批次时支持筛选货源和货币

sunyj 8 лет назад
Родитель
Сommit
a9b07fb055

+ 1 - 1
search-console/src/main/java/com/uas/search/console/model/StoreSimpleInfo.java

@@ -13,7 +13,7 @@ public class StoreSimpleInfo implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * id
+	 * uuid
 	 */
 	private String uuid;
 

+ 18 - 4
search-console/src/main/java/com/uas/search/console/service/impl/SearchServiceImpl.java

@@ -869,15 +869,29 @@ public class SearchServiceImpl implements SearchService, InnerSearchService {
 				// 筛选类目
 				if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_KINDID))) {
 					String kindId = filters.get(FilterField.GOODS_KINDID).toString();
-					TermQuery kindQuery = new TermQuery(new Term(SearchConstants.GOODS_KI_ID_FIELD, kindId));
-					booleanQuery.add(kindQuery, BooleanClause.Occur.MUST);
+					TermQuery query = new TermQuery(new Term(SearchConstants.GOODS_KI_ID_FIELD, kindId));
+					booleanQuery.add(query, BooleanClause.Occur.FILTER);
 				}
 
 				// 筛选品牌
 				if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_BRANDID))) {
 					String brandId = filters.get(FilterField.GOODS_BRANDID).toString();
-					TermQuery brandQuery = new TermQuery(new Term(SearchConstants.GOODS_BR_ID_FIELD, brandId));
-					booleanQuery.add(brandQuery, BooleanClause.Occur.MUST);
+					TermQuery query = new TermQuery(new Term(SearchConstants.GOODS_BR_ID_FIELD, brandId));
+					booleanQuery.add(query, BooleanClause.Occur.FILTER);
+				}
+
+				// 筛选货源
+				if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_STORE_TYPE))) {
+					String storeType = filters.get(FilterField.GOODS_STORE_TYPE).toString();
+					booleanQuery.add(SearchUtils.getBooleanQuery(SearchConstants.GOODS_ST_TYPE_FIELD, storeType),
+							BooleanClause.Occur.FILTER);
+				}
+
+				// 筛选货币
+				if (!StringUtils.isEmpty(filters.get(FilterField.GOODS_CRNAME))) {
+					String crName = filters.get(FilterField.GOODS_CRNAME).toString();
+					booleanQuery.add(SearchUtils.getBooleanQuery(SearchConstants.GOODS_CRNAME_FIELD, crName),
+							BooleanClause.Occur.FILTER);
 				}
 
 			}

+ 8 - 3
search-console/src/main/java/com/uas/search/console/util/ObjectToDocumentUtils.java

@@ -57,6 +57,8 @@ public class ObjectToDocumentUtils {
 			return toDocument((BrandSimpleInfo) object);
 		} else if (object instanceof ComponentSimpleInfo) {
 			return toDocument((ComponentSimpleInfo) object);
+		} else if (object instanceof GoodsSimpleInfo) {
+			return toDocument((GoodsSimpleInfo) object);
 		} else if (object instanceof OrderSimpleInfo) {
 			return toDocument((OrderSimpleInfo) object);
 		} else if (object instanceof OrderInvoiceSimpleInfo) {
@@ -202,10 +204,14 @@ public class ObjectToDocumentUtils {
 		if (goods.getGoMinPriceRMB() != null) {
 			document.add(
 					new DoubleDocValuesField(SearchConstants.GOODS_GO_MINPRICERMB_FIELD, goods.getGoMinPriceRMB()));
+			document.add(
+					new DoubleField(SearchConstants.GOODS_GO_MINPRICERMB_FIELD, goods.getGoMinPriceRMB(), Store.YES));
 		}
 		if (goods.getGoMinPriceUSD() != null) {
 			document.add(
 					new DoubleDocValuesField(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD, goods.getGoMinPriceUSD()));
+			document.add(
+					new DoubleField(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD, goods.getGoMinPriceUSD(), Store.YES));
 		}
 		if (goods.getCrName() != null) {
 			document.add(new TextField(SearchConstants.GOODS_CRNAME_FIELD, goods.getCrName(), Store.YES));
@@ -214,11 +220,10 @@ public class ObjectToDocumentUtils {
 		if (goods.getStore() != null) {
 			StoreSimpleInfo store = goods.getStore();
 			if (store.getUuid() != null) {
-				document.add(
-						new StringField(SearchConstants.GOODS_ST_ID_FIELD, String.valueOf(store.getUuid()), Store.YES));
+				document.add(new TextField(SearchConstants.GOODS_ST_UUID_FIELD, store.getUuid(), Store.YES));
 			}
 			if (store.getType() != null) {
-				document.add(new StringField(SearchConstants.GOODS_ST_TYPE_FIELD, store.getType(), Store.YES));
+				document.add(new TextField(SearchConstants.GOODS_ST_TYPE_FIELD, store.getType(), Store.YES));
 			}
 		}
 

+ 1 - 1
search-console/src/main/java/com/uas/search/console/util/SearchConstants.java

@@ -112,7 +112,7 @@ public class SearchConstants {
 	public static final String GOODS_GO_MINPRICERMB_FIELD = "go_minpricermb";
 	public static final String GOODS_GO_MINPRICEUSD_FIELD = "go_minpriceusd";
 	public static final String GOODS_CRNAME_FIELD = "cr_name";
-	public static final String GOODS_ST_ID_FIELD = "store_id";
+	public static final String GOODS_ST_UUID_FIELD = "store_id";
 	public static final String GOODS_ST_TYPE_FIELD = "store_type";
 	public static final String GOODS_CMP_ID_FIELD = "cmp_id";
 	public static final String GOODS_CMP_CODE_FIELD = "cmp_code";

+ 1 - 1
search-console/src/main/java/com/uas/search/sort/SimilarValuesFieldComparator.java

@@ -39,7 +39,7 @@ public class SimilarValuesFieldComparator extends SimpleFieldComparator<String>
 	 * 
 	 * @param str1
 	 * @param str2
-	 * @return 1表示str2排在str2后面,-1表示排在前面
+	 * @return 1表示str1排在str2后面,-1表示排在前面
 	 */
 	private int compare(String str1, String str2) {
 		if (str1 == null) {

+ 1 - 1
search-console/src/main/webapp/WEB-INF/views/console.html

@@ -19,7 +19,7 @@
 					<li>search/componentIds?keyword=a&page=1&size=5&filters={"COMPONENT_KINDID":401,"COMPONENT_BRANDID":45,"COMPONENT_HAS_RESERVE":true,"COMPONENT_HAS_SAMPLE":true,"COMPONENT_HAS_ORIGINAL":true,"COMPONENT_HAS_INACTION_STOCK":true,"COMPONENT_PROPERTIES":{"275":"92%20dB","781":"Tube"}}</li>
 					<li><a target="_blank">search/componentIds?keyword=aaa</a></li>
 					<li><a target="_blank">search/components?keyword=aaa</a></li>
-					<li>search/goodsIds?keyword=aaa&page=1&size=8&filter={"GOODS_KINDID":401,"GOODS_BRANDID":45}&sort=[{"field":"GO_RESERVE","reverse":true},{"field":"GO_MINPRICERMB","reverse":true},{"field":"GO_MINPRICEUSD","reverse":true},{"field":"GO_SEARCH"}]</li>
+					<li>search/goodsIds?keyword=aaa&page=1&size=8&filters={"GOODS_KINDID":401,"GOODS_BRANDID":45,"GOODS_STORE_TYPE":"DISTRIBUTION","GOODS_CRNAME":"RMB-USD"}&sort=[{"field":"GO_RESERVE","reverse":true},{"field":"GO_MINPRICERMB","reverse":true},{"field":"GO_MINPRICEUSD","reverse":true},{"field":"GO_SEARCH"}]</li>
 					<li><a target="_blank">search/goodsIds?keyword=aaa</a></li>
 				</ol>