From 29dc3d76b157d493f02dc541e0c29c0e8216cf88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=B2=E5=85=88=E7=94=9F?= <821039958@qq.com> Date: Wed, 30 Jul 2025 14:52:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=B8=E7=94=A8=E6=95=B0=E6=8D=AE=20?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=88=86=E9=85=8D=E6=95=B0=E6=8D=AE=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=20=20=E6=A0=B9=E6=8D=AE=E5=9F=8E=E5=B8=82=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../casic/ci/api/DataAnalysisController.java | 14 ++--- .../resp/dataAnalysis/DataAnalysisResp.java | 9 ++-- .../dataAnalysis/DataAnalysisService.java | 12 ++--- .../Impl/DataAnalysisServiceImpl.java | 54 +++++++++++++------ 4 files changed, 56 insertions(+), 33 deletions(-) diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/DataAnalysisController.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/DataAnalysisController.java index 9fb78101..fb93ae18 100644 --- a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/DataAnalysisController.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/DataAnalysisController.java @@ -25,26 +25,26 @@ public class DataAnalysisController { @Operation(summary = "人数,任务次数,漏洞总数,高危漏洞 统计") @GetMapping("/userAndTaskCount") - public CommonResult userAndTaskDataCount(@RequestParam(required = false,value = "country") String country){ - return CommonResult.success(dataAnalysisService.getUserAndTaskDataCount()); + public CommonResult userAndTaskDataCount(@RequestParam(required = false,value = "city") String city){ + return CommonResult.success(dataAnalysisService.getUserAndTaskDataCount(city)); } @Operation(summary = "漏洞监测分布概览") @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()); } @Operation(summary = "资源分配数据概览") @GetMapping("/ResourceDistList") - public CommonResult ResourceDistList(@RequestParam(required = false,value = "country") String country){ - return CommonResult.success(dataAnalysisService.getResourceDistCountList()); + public CommonResult ResourceDistList(@RequestParam(required = false,value = "city") String city){ + return CommonResult.success(dataAnalysisService.getResourceDistCountList(city)); } @Operation(summary = "漏洞监测数据概览") @GetMapping("/VulMonitorDataList") - public CommonResult VulMonitorDataList(@RequestParam(required = false,value = "country") String country){ - return CommonResult.success(dataAnalysisService.getVulMonitorCountList()); + public CommonResult VulMonitorDataList(@RequestParam(required = false,value = "city") String city){ + return CommonResult.success(dataAnalysisService.getVulMonitorCountList(city)); } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/dataAnalysis/DataAnalysisResp.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/dataAnalysis/DataAnalysisResp.java index b5341cce..c9cc3012 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/dataAnalysis/DataAnalysisResp.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/dataAnalysis/DataAnalysisResp.java @@ -61,15 +61,18 @@ public class DataAnalysisResp { * 漏洞监测分布概览 */ @Data + @Builder public static class HoopVulCount{ /** * 城市 */ - private String country; + private String city; /** * 百分比 两位小数 */ private BigDecimal value; + + private String count; } /** @@ -78,8 +81,8 @@ public class DataAnalysisResp { @Data public static class ResourceDistCount{ private static final List CITIES = List.of( - "北京", "上海", "广州", "深圳", "杭州", - "成都", "武汉", "西安", "长沙", "厦门" + "北京", "上海", "天津", "重庆", + "成都", "长沙" ); /** * 机器id diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/dataAnalysis/DataAnalysisService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/dataAnalysis/DataAnalysisService.java index d1f179e0..779a11b3 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/dataAnalysis/DataAnalysisService.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/dataAnalysis/DataAnalysisService.java @@ -7,19 +7,19 @@ import java.util.List; 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 getHoopVulCountList(); - List getResourceDistCountList(); + List getResourceDistCountList(String city); - List getVulMonitorCountList(); + List getVulMonitorCountList(String city); diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/dataAnalysis/Impl/DataAnalysisServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/dataAnalysis/Impl/DataAnalysisServiceImpl.java index 0401031b..7ea3c693 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/dataAnalysis/Impl/DataAnalysisServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/dataAnalysis/Impl/DataAnalysisServiceImpl.java @@ -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.mysql.MachineInfoMapper; 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 org.springframework.stereotype.Service; - -import java.util.List; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.DecimalFormat; +import java.util.*; import java.util.stream.Collectors; /** @@ -35,50 +39,66 @@ public class DataAnalysisServiceImpl implements DataAnalysisService { private MachineInfoMapper machineInfoMapper; @Override - public String getUseUserSUM() { + public String getUseUserSUM(String city) { return userMapper.selectCount().toString(); } @Override - public String getTaskSUM() { + public String getTaskSUM(String city) { return pipelineHisInstanceDao.selectCount().toString(); } @Override - public String getVulSUM() { - return vulInfoDao.selectCount().toString(); + public String getVulSUM(String city) { + return vulInfoDao.selectCount(new QueryWrapper().lambda().eq(Objects.nonNull(city),VulInfo::getCity,city)).toString(); } - public String getPerilousVulSUM(){ - return vulInfoDao.selectCount("severity", 2).toString(); + public String getPerilousVulSUM(String city){ + return vulInfoDao.selectCount(new LambdaQueryWrapper().eq(Objects.nonNull(city),VulInfo::getCity,city).eq(VulInfo::getSeverity,2)).toString(); } @Override - public DataAnalysisResp getUserAndTaskDataCount() { - return DataAnalysisResp.builder().scanVulSUM("101125698234").useUserSUM(getUseUserSUM()) - .taskSUM(getTaskSUM()).vulSUM(getVulSUM()).perilousVulSUM(getPerilousVulSUM()).build(); + public DataAnalysisResp getUserAndTaskDataCount(String city) { + return DataAnalysisResp.builder().scanVulSUM("101125698234").useUserSUM(getUseUserSUM(city)) + .taskSUM(getTaskSUM(city)).vulSUM(getVulSUM(city)).perilousVulSUM(getPerilousVulSUM(city)).build(); } @Override public List getHoopVulCountList() { - - return null; + Integer integer = Integer.decode(getVulSUM(null)); + if (integer == 0) { + return null; + } + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("city", "COUNT(*) as value") + .groupBy("city"); + List> listMaps = vulInfoDao.selectMaps(wrapper); + List 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 - public List getResourceDistCountList() { - + public List getResourceDistCountList(String city) { List machineInfoDOS = machineInfoMapper.selectList(); List distCountList = machineInfoDOS.stream().map(obj -> { DataAnalysisResp.ResourceDistCount distCount = new DataAnalysisResp.ResourceDistCount(); BeanUtil.copyProperties(obj, distCount); return distCount; }).collect(Collectors.toList()); + if (Objects.nonNull(city)) { + return distCountList.stream().filter(a -> city.equals(a.getCountry())).toList(); + } return distCountList; } @Override - public List getVulMonitorCountList() { - return vulInfoDao.selectList(); + public List getVulMonitorCountList(String city) { + return vulInfoDao.selectList(new QueryWrapper().lambda().eq(Objects.nonNull(city),VulInfo::getCity,city).orderByDesc(VulInfo::getCreateTime)); } }