提交 71610969 作者: 王峰

Merge remote-tracking branch 'origin/master' into yjzx

...@@ -56,8 +56,6 @@ public class EventAnalysisController { ...@@ -56,8 +56,6 @@ public class EventAnalysisController {
@Autowired @Autowired
private AnalysisService analysisService; private AnalysisService analysisService;
@Autowired @Autowired
private SubjectAnalysisService subjectAnalysisService;
@Autowired
private EventAnalysisReportService eventAnalysisReportService; private EventAnalysisReportService eventAnalysisReportService;
@Autowired @Autowired
private EsService esService; private EsService esService;
......
...@@ -81,12 +81,12 @@ public class KafkaConsumer { ...@@ -81,12 +81,12 @@ public class KafkaConsumer {
if (StringUtils.isNotEmpty(value)) { if (StringUtils.isNotEmpty(value)) {
try { try {
List<SubjectAnalysis> subjectAnalyses = JSON.parseArray(value, SubjectAnalysis.class); List<SubjectAnalysis> subjectAnalyses = JSON.parseArray(value, SubjectAnalysis.class);
subjectAnalyses.forEach(e -> { for (SubjectAnalysis e : subjectAnalyses) {
if (exist(e)) { if (exist(e)) {
e.setTitle(removeNonBmpUniCodes(e.getTitle())); e.setTitle(removeNonBmpUniCodes(e.getTitle()));
subjectAnalysisService.save(e); subjectAnalysisService.save(e);
} }
}); }
log.info("id为-{}-的专题,此次-事件脉络-数据更新完成", subjectAnalyses.get(0).getSubjectId()); log.info("id为-{}-的专题,此次-事件脉络-数据更新完成", subjectAnalyses.get(0).getSubjectId());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
......
...@@ -178,26 +178,70 @@ public class EsStatisticsServiceImpl implements EsStatisticsService { ...@@ -178,26 +178,70 @@ public class EsStatisticsServiceImpl implements EsStatisticsService {
TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms("group_origin") TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms("group_origin")
.field("origin.keyword") .field("origin.keyword")
.order(BucketOrder.count(false)) .order(BucketOrder.count(false))
.size(10); .size(20);
searchSourceBuilder.aggregation(aggregationBuilder); searchSourceBuilder.aggregation(aggregationBuilder);
searchRequest.source(searchSourceBuilder); searchRequest.source(searchSourceBuilder);
try { try {
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT); SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
long value = response.getHits().getTotalHits().value;
Aggregations aggregations = response.getAggregations(); Aggregations aggregations = response.getAggregations();
Terms groupSource = aggregations.get("group_origin"); Terms groupSource = aggregations.get("group_origin");
List<? extends Terms.Bucket> buckets = groupSource.getBuckets(); List<? extends Terms.Bucket> buckets = groupSource.getBuckets();
if (CollectionUtils.isNotEmpty(buckets)) { if (CollectionUtils.isNotEmpty(buckets)) {
for (int i = 0; i < buckets.size(); i++) { String[] splitArr = new String[]{"-","-"};
Terms.Bucket bucket = buckets.get(i); for (Terms.Bucket bucket : buckets) {
CountVO vo = new CountVO(); boolean flag = false;
vo.setOrder(i + 1);
vo.setName(bucket.getKeyAsString());
long count = bucket.getDocCount(); long count = bucket.getDocCount();
vo.setValue(count); //获取真正的来源
String percentage = getPercentage(count, value); String originName = bucket.getKeyAsString();
vo.setPercentage(percentage); String split = null;
list.add(vo); boolean contain = false;
for (String s : splitArr) {
if (originName.contains(s)) {
contain = true;
split = s;
break;
}
}
if (contain) {
int index = originName.indexOf(split);
originName = originName.substring(0, index);
}
//先判断是否存在,不存在则新增
for (CountVO countVO : list) {
if (countVO.getName().equals(originName)) {
flag = true;
countVO.setValue(countVO.getValue() + count);
break;
}
}
if (!flag) {
if (list.size() < 10) {
CountVO countVO = new CountVO();
countVO.setName(originName);
countVO.setValue(count);
list.add(countVO);
} else {
break;
}
}
}
long totalCount = list.stream().mapToLong(CountVO::getValue).sum();
list.sort((arg0, arg1) -> (int) (arg1.getValue() - arg0.getValue()));
long percentageSum = 0;
for (int i = 0; i < list.size(); i++) {
CountVO countVO = list.get(i);
if (i < list.size() - 1) {
String percentage = getPercentage(countVO.getValue(), totalCount);
countVO.setPercentage(percentage);
percentageSum = percentageSum + Long.parseLong(percentage.replace("%", ""));
} else {
if (totalCount > 0) {
countVO.setPercentage((100 - percentageSum) + "%");
} else {
countVO.setPercentage("0%");
}
}
countVO.setOrder(i + 1);
} }
} }
} catch (Exception e) { } catch (Exception e) {
...@@ -383,5 +427,4 @@ public class EsStatisticsServiceImpl implements EsStatisticsService { ...@@ -383,5 +427,4 @@ public class EsStatisticsServiceImpl implements EsStatisticsService {
searchSourceBuilder.query(boolQuery); searchSourceBuilder.query(boolQuery);
return searchSourceBuilder; return searchSourceBuilder;
} }
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论