许家凯 преди 2 години
родител
ревизия
87b4d59f55

+ 21 - 16
src/main/java/com/winhc/phoenix/example/service/impl/JudgmentDocumentsServiceImpl.java

@@ -72,9 +72,12 @@ public class JudgmentDocumentsServiceImpl implements JudgmentDocumentsService {
 
         Map<String, JudgmentDocumentsSearchType> content = searchContent.getContent();
         for (Map.Entry<String, JudgmentDocumentsSearchType> entry : content.entrySet()) {
+            if (StringUtils.isBlank(entry.getKey())) {
+                continue;
+            }
             if (entry.getKey().contains(" ")) {
                 for (String s : entry.getKey().split(" +")) {
-                    if (StringUtils.isEmpty(s)) {
+                    if (StringUtils.isBlank(s)) {
                         continue;
                     }
                     mustOrFilter(searchContent.isNotSort(), boolQuery, getSearchContentQuery(entry.getValue(), s));
@@ -97,23 +100,25 @@ public class JudgmentDocumentsServiceImpl implements JudgmentDocumentsService {
         List<SortBuilder> sortBuilders = new ArrayList<>();
         if (sort == null && !searchContent.isNotSort()) {
             String ip = searchContent.getIp();
-            IpInfo ipInfo = winhcIpParser.parseIp(ip);
-            if (ipInfo.getIpProvinceCode() != null) {
-                Map<String, Object> map = new HashMap<String, Object>(2);
-                map.put("provinceCode", ipInfo.getIpProvinceCode());
-                map.put("cityCode", ipInfo.getIpCityCode());
-
-                log.info("province: {},city: {}", ipInfo.getIpProvince(), ipInfo.getIpCity());
-
-                Script script = CompanyIndexUtils.getScript("if('0'.equals(doc['court_level'].value)) return 100;" +
-                        "if(params.provinceCode.equals(doc['court_province_code'].value)&&params.cityCode==null) return 100;" +
-                        "if(params.provinceCode.equals(doc['court_province_code'].value)&&params.cityCode!=null && params.cityCode.equals(doc['court_city_code'].value)) return 100;return 0;", map);
-                ScriptSortBuilder order = SortBuilders.scriptSort(script, ScriptSortBuilder.ScriptSortType.NUMBER).order(SortOrder.DESC);
+            if(StringUtils.isNotBlank(ip)){
+                IpInfo ipInfo = winhcIpParser.parseIp(ip);
+                if (ipInfo.getIpProvinceCode() != null) {
+                    Map<String, Object> map = new HashMap<String, Object>(2);
+                    map.put("provinceCode", ipInfo.getIpProvinceCode());
+                    map.put("cityCode", ipInfo.getIpCityCode());
+
+                    log.info("province: {},city: {}", ipInfo.getIpProvince(), ipInfo.getIpCity());
+
+                    Script script = CompanyIndexUtils.getScript("if('0'.equals(doc['court_level'].value)) return 100;" +
+                            "if(params.provinceCode.equals(doc['court_province_code'].value)&&params.cityCode==null) return 100;" +
+                            "if(params.provinceCode.equals(doc['court_province_code'].value)&&params.cityCode!=null && params.cityCode.equals(doc['court_city_code'].value)) return 100;return 0;", map);
+                    ScriptSortBuilder order = SortBuilders.scriptSort(script, ScriptSortBuilder.ScriptSortType.NUMBER).order(SortOrder.DESC);
+                    sortBuilders.add(order);
+                }
+
+                FieldSortBuilder order = SortBuilders.fieldSort("case_score").order(SortOrder.DESC);
                 sortBuilders.add(order);
             }
-
-            FieldSortBuilder order = SortBuilders.fieldSort("case_score").order(SortOrder.DESC);
-            sortBuilders.add(order);
         }
 
         Object search = searchDao.search(index, type, boolQuery, null, sortBuilders, null, from, size, preference, highlightField);

+ 7 - 1
src/main/java/com/winhc/phoenix/example/vo/judgment/JudgmentDocumentsSearchContent.java

@@ -18,8 +18,10 @@ public class JudgmentDocumentsSearchContent {
     private int from = 0;
     private int size = 10;
 
+    /**
+     * 是否查询权威案例
+     */
     private boolean authorityCase = false;
-    private boolean notSort = false;
 
     private String ip;
 
@@ -104,4 +106,8 @@ public class JudgmentDocumentsSearchContent {
 
     private JudgmentDocumentsSortType sort;
 
+    public boolean isNotSort() {
+        return sort != null && sort == JudgmentDocumentsSortType.NOT_SORT;
+    }
+
 }

+ 1 - 1
src/main/java/com/winhc/phoenix/example/vo/judgment/JudgmentDocumentsSortType.java

@@ -5,5 +5,5 @@ package com.winhc.phoenix.example.vo.judgment;
  * 2022/7/29 15:22
  */
 public enum JudgmentDocumentsSortType {
-    AS
+    NOT_SORT
 }