常用数据 资源分配数据统计已好
This commit is contained in:
parent
8e36c94130
commit
96a1fe22ef
@ -2,6 +2,7 @@ package cd.casic.module.execute.docker.service.impl;
|
|||||||
|
|
||||||
import cd.casic.ci.commons.properties.TargetFileUploadProperties;
|
import cd.casic.ci.commons.properties.TargetFileUploadProperties;
|
||||||
import cd.casic.framework.commons.exception.ServerException;
|
import cd.casic.framework.commons.exception.ServerException;
|
||||||
|
import cd.casic.framework.commons.exception.util.ServiceExceptionUtil;
|
||||||
import cd.casic.framework.commons.pojo.PageResult;
|
import cd.casic.framework.commons.pojo.PageResult;
|
||||||
import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cd.casic.module.execute.docker.DockerClientFactory;
|
import cd.casic.module.execute.docker.DockerClientFactory;
|
||||||
@ -235,7 +236,7 @@ public class ImageService implements IImageService {
|
|||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("与主机IP:{} 建立SSH连接失败", config.getHost());
|
log.error("与主机IP:{} 建立SSH连接失败", config.getHost());
|
||||||
throw new RuntimeException("部署失败,请检测主机是否可用", e);
|
throw ServiceExceptionUtil.invalidParamException("部署失败,请检测主机: {} 是否可用",config.getHost());
|
||||||
}
|
}
|
||||||
return new Sftp(session);
|
return new Sftp(session);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,53 @@
|
|||||||
|
package cd.casic.ci.api;
|
||||||
|
|
||||||
|
import cd.casic.ci.process.process.service.dataAnalysis.DataAnalysisService;
|
||||||
|
import cd.casic.framework.commons.pojo.CommonResult;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据分析 NUDT数据安全态势
|
||||||
|
* @author: Paul
|
||||||
|
* @create: 2025-07-29 13:52
|
||||||
|
*/
|
||||||
|
@Tag(name = "NUDT数据安全态势")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/dataAnalysis")
|
||||||
|
public class DataAnalysisController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DataAnalysisService dataAnalysisService;
|
||||||
|
|
||||||
|
@Operation(summary = "人数,任务次数,漏洞总数,高危漏洞 统计")
|
||||||
|
@GetMapping("/userAndTaskCount")
|
||||||
|
public CommonResult userAndTaskDataCount(@RequestParam(required = false,value = "country") String country){
|
||||||
|
return CommonResult.success(dataAnalysisService.getUserAndTaskDataCount());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "漏洞监测分布概览")
|
||||||
|
@GetMapping("/HoopVulCount")
|
||||||
|
public CommonResult HoopVulDataCount(@RequestParam(required = false,value = "country") String country){
|
||||||
|
return CommonResult.success(dataAnalysisService.getHoopVulCountList());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "资源分配数据概览")
|
||||||
|
@GetMapping("/ResourceDistList")
|
||||||
|
public CommonResult ResourceDistList(@RequestParam(required = false,value = "country") String country){
|
||||||
|
return CommonResult.success(dataAnalysisService.getResourceDistCountList());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "漏洞监测数据概览")
|
||||||
|
@GetMapping("/VulMonitorDataList")
|
||||||
|
public CommonResult VulMonitorDataList(@RequestParam(required = false,value = "country") String country){
|
||||||
|
|
||||||
|
return CommonResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,115 @@
|
|||||||
|
package cd.casic.ci.process.dto.resp.dataAnalysis;
|
||||||
|
|
||||||
|
import cd.casic.ci.process.enums.MachineSystemEnum;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NUDT数据安全态势
|
||||||
|
* @author: Paul
|
||||||
|
* @create: 2025-07-29 15:16
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
public class DataAnalysisResp {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 漏洞扫描
|
||||||
|
*/
|
||||||
|
private String scanVulSUM;
|
||||||
|
/**
|
||||||
|
* 使用人数
|
||||||
|
*/
|
||||||
|
private String useUserSUM;
|
||||||
|
/**
|
||||||
|
* 执行任务
|
||||||
|
*/
|
||||||
|
private String taskSUM;
|
||||||
|
/**
|
||||||
|
* 漏洞总数
|
||||||
|
*/
|
||||||
|
private String vulSUM;
|
||||||
|
/**
|
||||||
|
* 高危漏洞
|
||||||
|
*/
|
||||||
|
private String perilousVulSUM;
|
||||||
|
|
||||||
|
|
||||||
|
private List<HoopVulCount> hoopVulCountList;
|
||||||
|
|
||||||
|
|
||||||
|
private List<ResourceDistCount> resourceDistCountList;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 漏洞监测分布概览
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public static class HoopVulCount{
|
||||||
|
/**
|
||||||
|
* 城市
|
||||||
|
*/
|
||||||
|
private String country;
|
||||||
|
/**
|
||||||
|
* 百分比 两位小数
|
||||||
|
*/
|
||||||
|
private BigDecimal value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 资源分配数据概览
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public static class ResourceDistCount{
|
||||||
|
private static final List<String> CITIES = List.of(
|
||||||
|
"北京", "上海", "广州", "深圳", "杭州",
|
||||||
|
"成都", "武汉", "西安", "长沙", "厦门"
|
||||||
|
);
|
||||||
|
/**
|
||||||
|
* 机器id
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机器唯一标识
|
||||||
|
*/
|
||||||
|
private String tag;
|
||||||
|
|
||||||
|
private String hostIp;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
//1:Linux 2:Windows
|
||||||
|
private Integer machineInfoType;
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
private String country;
|
||||||
|
|
||||||
|
|
||||||
|
private Integer sshPort;
|
||||||
|
|
||||||
|
public void setMachineInfoType(Integer machineInfoType) {
|
||||||
|
this.country = CITIES.get(new Random().nextInt(CITIES.size()));
|
||||||
|
this.machineInfoType = machineInfoType;
|
||||||
|
this.type = machineInfoType.equals(MachineSystemEnum.WINDOWS.getSystem())?MachineSystemEnum.WINDOWS.name():MachineSystemEnum.LINUX.name();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/*@Data
|
||||||
|
static class VulMonitorCount{
|
||||||
|
|
||||||
|
}*/
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package cd.casic.ci.process.process.service.dataAnalysis;
|
||||||
|
|
||||||
|
import cd.casic.ci.process.dto.resp.dataAnalysis.DataAnalysisResp;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface DataAnalysisService {
|
||||||
|
|
||||||
|
String getUseUserSUM();
|
||||||
|
|
||||||
|
String getTaskSUM();
|
||||||
|
|
||||||
|
String getVulSUM();
|
||||||
|
|
||||||
|
DataAnalysisResp getUserAndTaskDataCount();
|
||||||
|
|
||||||
|
List<DataAnalysisResp.HoopVulCount> getHoopVulCountList();
|
||||||
|
|
||||||
|
List<DataAnalysisResp.ResourceDistCount> getResourceDistCountList();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,78 @@
|
|||||||
|
package cd.casic.ci.process.process.service.dataAnalysis.Impl;
|
||||||
|
|
||||||
|
import cd.casic.ci.process.dto.resp.dataAnalysis.DataAnalysisResp;
|
||||||
|
import cd.casic.ci.process.process.dao.history.PipPipelineHisInstanceDao;
|
||||||
|
import cd.casic.ci.process.process.dao.vulInfo.VulInfoDao;
|
||||||
|
import cd.casic.ci.process.process.service.dataAnalysis.DataAnalysisService;
|
||||||
|
import cd.casic.framework.datapermission.core.dal.AdminUserMapper;
|
||||||
|
import cd.casic.module.machine.dal.dataobject.MachineInfoDO;
|
||||||
|
import cd.casic.module.machine.dal.mysql.MachineInfoMapper;
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author: Paul
|
||||||
|
* @create: 2025-07-29 16:17
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class DataAnalysisServiceImpl implements DataAnalysisService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AdminUserMapper userMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private VulInfoDao vulInfoDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private PipPipelineHisInstanceDao pipelineHisInstanceDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MachineInfoMapper machineInfoMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUseUserSUM() {
|
||||||
|
return userMapper.selectCount().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTaskSUM() {
|
||||||
|
return pipelineHisInstanceDao.selectCount().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getVulSUM() {
|
||||||
|
return vulInfoDao.selectCount().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPerilousVulSUM(){
|
||||||
|
return vulInfoDao.selectCount("severity", 2).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataAnalysisResp getUserAndTaskDataCount() {
|
||||||
|
return DataAnalysisResp.builder().scanVulSUM("101125698234").useUserSUM(getUseUserSUM())
|
||||||
|
.taskSUM(getTaskSUM()).vulSUM(getVulSUM()).perilousVulSUM(getPerilousVulSUM()).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DataAnalysisResp.HoopVulCount> getHoopVulCountList() {
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DataAnalysisResp.ResourceDistCount> getResourceDistCountList() {
|
||||||
|
|
||||||
|
List<MachineInfoDO> machineInfoDOS = machineInfoMapper.selectList();
|
||||||
|
List<DataAnalysisResp.ResourceDistCount> distCountList = machineInfoDOS.stream().map(obj -> {
|
||||||
|
DataAnalysisResp.ResourceDistCount distCount = new DataAnalysisResp.ResourceDistCount();
|
||||||
|
BeanUtil.copyProperties(obj, distCount);
|
||||||
|
return distCount;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
return distCountList;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user