Browse Source

fix sort error in goods search

sunyj 8 years ago
parent
commit
004d433987

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

@@ -925,8 +925,6 @@ public class SearchServiceImpl implements SearchService {
             List<SortField> sortFieldList = new ArrayList<>();
 			List<com.uas.search.constant.model.Sort> sorts = pageParams.getSort();
 			if (sorts != null && !CollectionUtils.isEmpty(sorts)) {
-				SortField[] sortFields = new SortField[sorts.size()];
-				int i = 0;
 				for (com.uas.search.constant.model.Sort s : sorts) {
 					if (s.getField() == null) {
 						throw new SearchException("排序字段不可为空:" + s);
@@ -934,29 +932,28 @@ public class SearchServiceImpl implements SearchService {
 					switch (s.getField()) {
 					// 价格
 					case GO_RESERVE:
-						sortFields[i++] = new SortField(SearchConstants.GOODS_GO_RESERVE_FIELD, Type.DOUBLE,
-								s.isReverse());
+						sortFieldList.add(new SortField(SearchConstants.GOODS_GO_RESERVE_FIELD, Type.DOUBLE,
+								s.isReverse()));
 						break;
 					// 人民币价格
 					case GO_MINPRICERMB:
-						sortFields[i++] = new SortField(SearchConstants.GOODS_GO_MINPRICERMB_FIELD, Type.DOUBLE,
-								s.isReverse());
+						sortFieldList.add(new SortField(SearchConstants.GOODS_GO_MINPRICERMB_FIELD, Type.DOUBLE,
+								s.isReverse()));
 						break;
 					// 美元价格
 					case GO_MINPRICEUSD:
-						sortFields[i++] = new SortField(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD, Type.DOUBLE,
-								s.isReverse());
+						sortFieldList.add(new SortField(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD, Type.DOUBLE,
+								s.isReverse()));
 						break;
 					// 打分
 					case GO_SEARCH:
                         sortFieldList.addAll(Arrays.asList(customSortFields));
-						sortFields[i++] = (SortField.FIELD_SCORE);
+						sortFieldList.add((SortField.FIELD_SCORE));
 						break;
 					default:
 						throw new SearchException("不支持该排序方式:" + s.getField());
 					}
 				}
-                sortFieldList.addAll(Arrays.asList(sortFields));
 			} else{
                 sortFieldList.addAll(Arrays.asList(customSortFields));
 			    sortFieldList.add(SortField.FIELD_SCORE);