常用数据 资源分配数据统计 根据城市过滤
This commit is contained in:
parent
960125fd25
commit
29dc3d76b1
@ -25,26 +25,26 @@ public class DataAnalysisController {
|
|||||||
|
|
||||||
@Operation(summary = "人数,任务次数,漏洞总数,高危漏洞 统计")
|
@Operation(summary = "人数,任务次数,漏洞总数,高危漏洞 统计")
|
||||||
@GetMapping("/userAndTaskCount")
|
@GetMapping("/userAndTaskCount")
|
||||||
public CommonResult userAndTaskDataCount(@RequestParam(required = false,value = "country") String country){
|
public CommonResult userAndTaskDataCount(@RequestParam(required = false,value = "city") String city){
|
||||||
return CommonResult.success(dataAnalysisService.getUserAndTaskDataCount());
|
return CommonResult.success(dataAnalysisService.getUserAndTaskDataCount(city));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "漏洞监测分布概览")
|
@Operation(summary = "漏洞监测分布概览")
|
||||||
@GetMapping("/HoopVulCount")
|
@GetMapping("/HoopVulCount")
|
||||||
public CommonResult HoopVulDataCount(@RequestParam(required = false,value = "country") String country){
|
public CommonResult HoopVulDataCount(@RequestParam(required = false,value = "city") String city){
|
||||||
return CommonResult.success(dataAnalysisService.getHoopVulCountList());
|
return CommonResult.success(dataAnalysisService.getHoopVulCountList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "资源分配数据概览")
|
@Operation(summary = "资源分配数据概览")
|
||||||
@GetMapping("/ResourceDistList")
|
@GetMapping("/ResourceDistList")
|
||||||
public CommonResult ResourceDistList(@RequestParam(required = false,value = "country") String country){
|
public CommonResult ResourceDistList(@RequestParam(required = false,value = "city") String city){
|
||||||
return CommonResult.success(dataAnalysisService.getResourceDistCountList());
|
return CommonResult.success(dataAnalysisService.getResourceDistCountList(city));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "漏洞监测数据概览")
|
@Operation(summary = "漏洞监测数据概览")
|
||||||
@GetMapping("/VulMonitorDataList")
|
@GetMapping("/VulMonitorDataList")
|
||||||
public CommonResult VulMonitorDataList(@RequestParam(required = false,value = "country") String country){
|
public CommonResult VulMonitorDataList(@RequestParam(required = false,value = "city") String city){
|
||||||
return CommonResult.success(dataAnalysisService.getVulMonitorCountList());
|
return CommonResult.success(dataAnalysisService.getVulMonitorCountList(city));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,15 +61,18 @@ public class DataAnalysisResp {
|
|||||||
* 漏洞监测分布概览
|
* 漏洞监测分布概览
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@Builder
|
||||||
public static class HoopVulCount{
|
public static class HoopVulCount{
|
||||||
/**
|
/**
|
||||||
* 城市
|
* 城市
|
||||||
*/
|
*/
|
||||||
private String country;
|
private String city;
|
||||||
/**
|
/**
|
||||||
* 百分比 两位小数
|
* 百分比 两位小数
|
||||||
*/
|
*/
|
||||||
private BigDecimal value;
|
private BigDecimal value;
|
||||||
|
|
||||||
|
private String count;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -78,8 +81,8 @@ public class DataAnalysisResp {
|
|||||||
@Data
|
@Data
|
||||||
public static class ResourceDistCount{
|
public static class ResourceDistCount{
|
||||||
private static final List<String> CITIES = List.of(
|
private static final List<String> CITIES = List.of(
|
||||||
"北京", "上海", "广州", "深圳", "杭州",
|
"北京", "上海", "天津", "重庆",
|
||||||
"成都", "武汉", "西安", "长沙", "厦门"
|
"成都", "长沙"
|
||||||
);
|
);
|
||||||
/**
|
/**
|
||||||
* 机器id
|
* 机器id
|
||||||
|
@ -7,19 +7,19 @@ import java.util.List;
|
|||||||
|
|
||||||
public interface DataAnalysisService {
|
public interface DataAnalysisService {
|
||||||
|
|
||||||
String getUseUserSUM();
|
String getUseUserSUM(String city);
|
||||||
|
|
||||||
String getTaskSUM();
|
String getTaskSUM(String city);
|
||||||
|
|
||||||
String getVulSUM();
|
String getVulSUM(String city);
|
||||||
|
|
||||||
DataAnalysisResp getUserAndTaskDataCount();
|
DataAnalysisResp getUserAndTaskDataCount(String city);
|
||||||
|
|
||||||
List<DataAnalysisResp.HoopVulCount> getHoopVulCountList();
|
List<DataAnalysisResp.HoopVulCount> getHoopVulCountList();
|
||||||
|
|
||||||
List<DataAnalysisResp.ResourceDistCount> getResourceDistCountList();
|
List<DataAnalysisResp.ResourceDistCount> getResourceDistCountList(String city);
|
||||||
|
|
||||||
List<VulInfo> getVulMonitorCountList();
|
List<VulInfo> getVulMonitorCountList(String city);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,10 +9,14 @@ import cd.casic.framework.datapermission.core.dal.AdminUserMapper;
|
|||||||
import cd.casic.module.machine.dal.dataobject.MachineInfoDO;
|
import cd.casic.module.machine.dal.dataobject.MachineInfoDO;
|
||||||
import cd.casic.module.machine.dal.mysql.MachineInfoMapper;
|
import cd.casic.module.machine.dal.mysql.MachineInfoMapper;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.math.RoundingMode;
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -35,50 +39,66 @@ public class DataAnalysisServiceImpl implements DataAnalysisService {
|
|||||||
private MachineInfoMapper machineInfoMapper;
|
private MachineInfoMapper machineInfoMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUseUserSUM() {
|
public String getUseUserSUM(String city) {
|
||||||
return userMapper.selectCount().toString();
|
return userMapper.selectCount().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getTaskSUM() {
|
public String getTaskSUM(String city) {
|
||||||
return pipelineHisInstanceDao.selectCount().toString();
|
return pipelineHisInstanceDao.selectCount().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getVulSUM() {
|
public String getVulSUM(String city) {
|
||||||
return vulInfoDao.selectCount().toString();
|
return vulInfoDao.selectCount(new QueryWrapper<VulInfo>().lambda().eq(Objects.nonNull(city),VulInfo::getCity,city)).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPerilousVulSUM(){
|
public String getPerilousVulSUM(String city){
|
||||||
return vulInfoDao.selectCount("severity", 2).toString();
|
return vulInfoDao.selectCount(new LambdaQueryWrapper<VulInfo>().eq(Objects.nonNull(city),VulInfo::getCity,city).eq(VulInfo::getSeverity,2)).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataAnalysisResp getUserAndTaskDataCount() {
|
public DataAnalysisResp getUserAndTaskDataCount(String city) {
|
||||||
return DataAnalysisResp.builder().scanVulSUM("101125698234").useUserSUM(getUseUserSUM())
|
return DataAnalysisResp.builder().scanVulSUM("101125698234").useUserSUM(getUseUserSUM(city))
|
||||||
.taskSUM(getTaskSUM()).vulSUM(getVulSUM()).perilousVulSUM(getPerilousVulSUM()).build();
|
.taskSUM(getTaskSUM(city)).vulSUM(getVulSUM(city)).perilousVulSUM(getPerilousVulSUM(city)).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DataAnalysisResp.HoopVulCount> getHoopVulCountList() {
|
public List<DataAnalysisResp.HoopVulCount> getHoopVulCountList() {
|
||||||
|
Integer integer = Integer.decode(getVulSUM(null));
|
||||||
|
if (integer == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
QueryWrapper<VulInfo> wrapper = new QueryWrapper<>();
|
||||||
|
wrapper.select("city", "COUNT(*) as value")
|
||||||
|
.groupBy("city");
|
||||||
|
List<Map<String, Object>> listMaps = vulInfoDao.selectMaps(wrapper);
|
||||||
|
List<DataAnalysisResp.HoopVulCount> rest = new ArrayList<>();
|
||||||
|
listMaps.forEach(map -> {
|
||||||
|
DataAnalysisResp.HoopVulCount hoopVulCount = BeanUtil.mapToBean(map, DataAnalysisResp.HoopVulCount.class, false);
|
||||||
|
String format = new DecimalFormat("0.00%").format(hoopVulCount.getValue().divide(new BigDecimal(integer), 4, RoundingMode.HALF_UP));
|
||||||
|
hoopVulCount.setCount(format);
|
||||||
|
rest.add(hoopVulCount);
|
||||||
|
});
|
||||||
|
return rest;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DataAnalysisResp.ResourceDistCount> getResourceDistCountList() {
|
public List<DataAnalysisResp.ResourceDistCount> getResourceDistCountList(String city) {
|
||||||
|
|
||||||
List<MachineInfoDO> machineInfoDOS = machineInfoMapper.selectList();
|
List<MachineInfoDO> machineInfoDOS = machineInfoMapper.selectList();
|
||||||
List<DataAnalysisResp.ResourceDistCount> distCountList = machineInfoDOS.stream().map(obj -> {
|
List<DataAnalysisResp.ResourceDistCount> distCountList = machineInfoDOS.stream().map(obj -> {
|
||||||
DataAnalysisResp.ResourceDistCount distCount = new DataAnalysisResp.ResourceDistCount();
|
DataAnalysisResp.ResourceDistCount distCount = new DataAnalysisResp.ResourceDistCount();
|
||||||
BeanUtil.copyProperties(obj, distCount);
|
BeanUtil.copyProperties(obj, distCount);
|
||||||
return distCount;
|
return distCount;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
if (Objects.nonNull(city)) {
|
||||||
|
return distCountList.stream().filter(a -> city.equals(a.getCountry())).toList();
|
||||||
|
}
|
||||||
return distCountList;
|
return distCountList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<VulInfo> getVulMonitorCountList() {
|
public List<VulInfo> getVulMonitorCountList(String city) {
|
||||||
return vulInfoDao.selectList();
|
return vulInfoDao.selectList(new QueryWrapper<VulInfo>().lambda().eq(Objects.nonNull(city),VulInfo::getCity,city).orderByDesc(VulInfo::getCreateTime));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user