Переглянути джерело

use trinocular expression to simplify codes

sunyj 7 роки тому
батько
коміт
bbcdbcd57c

+ 9 - 17
mall-search/src/main/java/com/uas/search/service/impl/SearchServiceImpl.java

@@ -1015,31 +1015,23 @@ public class SearchServiceImpl implements SearchService {
             if (field == null) {
                 throw new SearchException("排序字段不可为空:" + sort);
             }
+            boolean reverse = sort.isReverse();
             if (field == RESERVE) {
                 // 库存
-                if (sort.isReverse()) {
-                    // 降序
-                    sortFieldList.add(sortField(SearchConstants.GOODS_GO_RESERVE_FIELD, Type.DOUBLE, true, Double.MIN_VALUE));
-                } else {
-                    // 升序
-                    sortFieldList.add(sortField(SearchConstants.GOODS_GO_RESERVE_FIELD, Type.DOUBLE, false, Double.MAX_VALUE));
-                }
                 sortFieldList.addAll(Arrays.asList(
+                        // 降序时,默认值为最小值;升序时,默认值为最大值
+                        sortField(SearchConstants.GOODS_GO_RESERVE_FIELD, Type.DOUBLE, reverse, reverse ? Double.MIN_VALUE : Double.MAX_VALUE),
                         sortField(SearchConstants.GOODS_GO_MINPRICERMB_FIELD, Type.DOUBLE, false, Double.MAX_VALUE),
                         sortField(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD, Type.DOUBLE, false, Double.MAX_VALUE)
                 ));
             } else if (field == PRICE) {
                 // 价格
-                if (sort.isReverse()) {
-                    // 降序
-                    sortFieldList.add(sortField(SearchConstants.GOODS_GO_MINPRICERMB_FIELD, Type.DOUBLE, true, Double.MIN_VALUE));
-                    sortFieldList.add(sortField(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD, Type.DOUBLE, true, Double.MIN_VALUE));
-                } else {
-                    // 升序
-                    sortFieldList.add(sortField(SearchConstants.GOODS_GO_MINPRICERMB_FIELD, Type.DOUBLE, false, Double.MAX_VALUE));
-                    sortFieldList.add(sortField(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD, Type.DOUBLE, false, Double.MAX_VALUE));
-                }
-                sortFieldList.add(sortField(SearchConstants.GOODS_GO_RESERVE_FIELD, Type.DOUBLE, true, Double.MIN_VALUE));
+                sortFieldList.addAll(Arrays.asList(
+                        // 降序时,默认值为最小值;升序时,默认值为最大值
+                        sortField(SearchConstants.GOODS_GO_MINPRICERMB_FIELD, Type.DOUBLE, reverse, reverse ? Double.MIN_VALUE : Double.MAX_VALUE),
+                        sortField(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD, Type.DOUBLE, reverse, reverse ? Double.MIN_VALUE : Double.MAX_VALUE),
+                        sortField(SearchConstants.GOODS_GO_RESERVE_FIELD, Type.DOUBLE, true, Double.MIN_VALUE)
+                ));
             } else {
                 throw new SearchException("不支持该排序方式:" + field);
             }