chenyi 1 year ago
parent
commit
8aeb4a02af
1 changed files with 29 additions and 33 deletions
  1. 29 33
      src/main/java/cn/cslg/pas/service/business/MergePersonService.java

+ 29 - 33
src/main/java/cn/cslg/pas/service/business/MergePersonService.java

@@ -541,7 +541,35 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
 
         List<String> mergeList = new ArrayList<>();
         if (StringUtils.isNotEmpty(condition)) {
-            total = this.loadConditionMergeList(totalAgg,mergeList,condition,operate,total,pageNum.intValue(),pageSize.intValue());
+//            total = this.loadConditionMergeList(totalAgg,mergeList,condition,operate,total,pageNum.intValue(),pageSize.intValue());
+            Aggregate terms = totalAgg.nested().aggregations().get("terms");
+            List<StringTermsBucket> termsBucketList = terms.sterms().buckets().array();
+            if (condition.contains("AND") && operate.equals("AND")) {
+                String[] parts = condition.split(" AND ");
+                for (String part : parts) {
+                    List<String> expresses = getConditionExpress(part);
+                    List<String> merges = termsBucketList.stream().map(StringTermsBucket::key).map(FieldValue::stringValue)
+                            .filter(value -> expresses.stream().anyMatch(express -> value.contains(express)))
+                            .collect(Collectors.toList());
+                    total = total > merges.size() ? merges.size() : total;
+                    merges = merges.stream().skip((pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+                    if (CollectionUtils.isEmpty(mergeList)) {
+                        mergeList.addAll(merges);
+                    } else {
+                        merges.retainAll(mergeList);
+                        mergeList = new ArrayList<>(merges);
+                        total = total > mergeList.size() ? mergeList.size() : total;
+                    }
+                }
+            } else {
+                List<String> expresses = getConditionExpress(condition);
+                List<String> merges = termsBucketList.stream().map(StringTermsBucket::key).map(FieldValue::stringValue)
+                        .filter(value -> expresses.stream().anyMatch(express -> value.contains(express.toLowerCase(Locale.ROOT))))
+                        .collect(Collectors.toList());
+                total = total > merges.size() ? merges.size() : total;
+                merges = merges.stream().skip((pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+                mergeList.addAll(merges);
+            }
         } else {
             loadMergeList(type, response, mergeList);
         }
@@ -623,38 +651,6 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         }
     }
 
-    public long loadConditionMergeList(Aggregate totalAgg, List<String> mergeList, String condition,
-                                       String operate, long total, Integer pageNum, Integer pageSize) {
-        Aggregate terms = totalAgg.nested().aggregations().get("terms");
-        List<StringTermsBucket> termsBucketList = terms.sterms().buckets().array();
-        if (condition.contains("AND") && operate.equals("AND")) {
-            String[] parts = condition.split(" AND ");
-            for (String part : parts) {
-                List<String> expresses = getConditionExpress(part);
-                List<String> merges = termsBucketList.stream().map(StringTermsBucket::key).map(FieldValue::stringValue)
-                        .filter(value -> expresses.stream().anyMatch(express -> value.contains(express)))
-                        .collect(Collectors.toList());
-                total = total > merges.size() ? merges.size() : total;
-                merges = merges.stream().skip((pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
-                if (CollectionUtils.isEmpty(mergeList)) {
-                    mergeList.addAll(merges);
-                } else {
-                    merges.retainAll(mergeList);
-                    mergeList = new ArrayList<>(merges);
-                }
-            }
-        } else {
-            List<String> expresses = getConditionExpress(condition);
-            List<String> merges = termsBucketList.stream().map(StringTermsBucket::key).map(FieldValue::stringValue)
-                    .filter(value -> expresses.stream().anyMatch(express -> value.contains(express.toLowerCase(Locale.ROOT))))
-                    .collect(Collectors.toList());
-            total = total > merges.size() ? merges.size() : total;
-            merges = merges.stream().skip((pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
-            mergeList.addAll(merges);
-        }
-        return total;
-    }
-
     public Query loadQueryByType(Integer type,Integer projectId) {
         Map<Integer, Query> map = new HashMap<>();
         Query q1 = QueryBuilders.term(i -> i.field("merge_applicant.project_id").value(projectId));