web123456

【Remember Excel batch export once】

public List<ChatSearch> search(String corpid, ChatSearchParam param) throws IOException { String corpId = param.getCorpId(); List<ChatSearch> chatList = new ArrayList<>(); RestHighLevelClient esClient = esConfig.getESClient(corpId); SearchRequest request = searchByEs(param); SearchResponse response = esClient.search(request, RequestOptions.DEFAULT); for (SearchHit hit : response.getHits().getHits()) { chatList.add(JSONObject.parseObject(hit.getSourceAsString(), ChatSearch.class)); } fill(corpId, chatList); return chatList; } private SearchRequest searchByEs(ChatSearchParam param) { String corpId = param.getCorpId(); //Build query BoolQueryBuilder condition = QueryBuilders.boolQuery() .must(QueryBuilders.termQuery("corpid", corpId)) .must(QueryBuilders.termQuery("chattype", 1))//0 means internal, 1 means external .must(QueryBuilders.termQuery("msgtype", "text")) .must(QueryBuilders.matchPhraseQuery("data", param.getContent())); if (!StringUtils.isBlank(param.getEndTime())) { condition.must(QueryBuilders.rangeQuery("msgtime").lte(param.getEndTime())); } if (!StringUtils.isBlank(param.getStartTime())) { condition.must(QueryBuilders.rangeQuery("msgtime").gte(param.getStartTime())); } if (param.getFrom() != null) { condition.must(QueryBuilders.termQuery("is_sales_send", param.getFrom())); } if (param.getGroup() != null) { condition.must(QueryBuilders.termQuery("isgroup", param.getGroup())); } if (!CollectionUtils.isEmpty(param.getSalesIds())) { condition.must(QueryBuilders.boolQuery() .should(QueryBuilders.termsQuery("userid", param.getSalesIds())) .should(QueryBuilders.termsQuery("talklist", param.getSalesIds())) ); } SearchSourceBuilder requestBuilder = new SearchSourceBuilder() .query(condition) .sort("msgtime", param.getOrder()) .size(param.getPageSize().intValue()); return new SearchRequest().indices("index_chat").types("doc").source(requestBuilder); }