|
|
|
|
@@ -8,9 +8,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.apache.poi.ss.formula.functions.T;
|
|
|
|
|
import org.elasticsearch.action.search.SearchResponse;
|
|
|
|
|
import org.elasticsearch.index.query.BoolQueryBuilder;
|
|
|
|
|
import org.elasticsearch.index.query.QueryBuilders;
|
|
|
|
|
import org.elasticsearch.script.Script;
|
|
|
|
|
import org.elasticsearch.search.aggregations.AggregationBuilders;
|
|
|
|
|
import org.elasticsearch.search.aggregations.Aggregations;
|
|
|
|
|
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
|
|
|
|
|
import org.nl.common.domain.query.PageQuery;
|
|
|
|
|
import org.nl.common.enums.LevelEnum;
|
|
|
|
|
import org.nl.modules.logging.repository.EsLogRepository;
|
|
|
|
|
@@ -21,12 +25,19 @@ import org.nl.wms.ext.acs.service.impl.AcsToWmsServiceImpl;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.data.domain.PageRequest;
|
|
|
|
|
import org.springframework.data.domain.Sort;
|
|
|
|
|
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
|
|
|
|
|
import org.springframework.data.elasticsearch.core.aggregation.impl.AggregatedPageImpl;
|
|
|
|
|
import org.springframework.data.elasticsearch.core.query.FetchSourceFilter;
|
|
|
|
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.function.Consumer;
|
|
|
|
|
import java.util.function.Function;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author ldjun
|
|
|
|
|
@@ -40,6 +51,8 @@ public class EsLogServiceImpl implements EsLogService {
|
|
|
|
|
|
|
|
|
|
private final EsLogRepository esLogRepository;
|
|
|
|
|
|
|
|
|
|
private final ElasticsearchRestTemplate elasticsearchRestTemplate;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Page query(LogQuery logQuery){
|
|
|
|
|
Page<T> page = new Page<>();
|
|
|
|
|
@@ -60,6 +73,9 @@ public class EsLogServiceImpl implements EsLogService {
|
|
|
|
|
if (StringUtils.isNotEmpty(logQuery.getLogLevel())){
|
|
|
|
|
query.must().add(QueryBuilders.matchQuery("logLevel", LevelEnum.checkLevel(logQuery.getLogLevel())));
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isNotEmpty(logQuery.getSystem())){
|
|
|
|
|
query.must().add(QueryBuilders.matchQuery("system", logQuery.getSystem()));
|
|
|
|
|
}
|
|
|
|
|
if (logQuery.getIsRequest()){
|
|
|
|
|
query.must().add(QueryBuilders.existsQuery("requestMethod"));
|
|
|
|
|
}
|
|
|
|
|
@@ -86,13 +102,23 @@ public class EsLogServiceImpl implements EsLogService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public JSONArray getLabelsValues() {
|
|
|
|
|
public JSONArray getLabelsValues(String type) {
|
|
|
|
|
JSONArray result = new JSONArray();
|
|
|
|
|
for (LevelEnum value : LevelEnum.values()) {
|
|
|
|
|
JSONObject level = new JSONObject();
|
|
|
|
|
level.put("label", value.name());
|
|
|
|
|
level.put("value", value.name());
|
|
|
|
|
result.add(level);
|
|
|
|
|
FetchSourceFilter fetchSourceFilter = new FetchSourceFilter(new String[]{type}, null);
|
|
|
|
|
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();
|
|
|
|
|
queryBuilder.withCollapseField(type+".keyword");
|
|
|
|
|
queryBuilder.withSourceFilter(fetchSourceFilter);
|
|
|
|
|
queryBuilder.addAggregation(AggregationBuilders.terms(type).field(type+".keyword").size(100));
|
|
|
|
|
Aggregations agg = elasticsearchRestTemplate.query(queryBuilder.build(), SearchResponse::getAggregations);
|
|
|
|
|
Terms terms = agg.get(type);
|
|
|
|
|
List<? extends Terms.Bucket> buckets = terms.getBuckets();
|
|
|
|
|
if (!CollectionUtils.isEmpty(buckets)){
|
|
|
|
|
buckets.stream().map(Terms.Bucket::getKeyAsString).forEach(v-> {
|
|
|
|
|
JSONObject item = new JSONObject();
|
|
|
|
|
item.put("label", v);
|
|
|
|
|
item.put("value", v);
|
|
|
|
|
result.add(item);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|