Browse Source

用户列表增加角色名称

master
zhouyl 12 months ago
parent
commit
218b21aae8
  1. 4
      tp-admin/src/main/java/com/inscloudtech/web/controller/system/TestReportController.java
  2. 7
      tp-common/src/main/java/com/inscloudtech/common/core/domain/entity/SysUser.java
  3. 2
      tp-functional/src/main/java/com/inscloudtech/functional/domain/TestReport.java
  4. 47
      tp-functional/src/main/java/com/inscloudtech/functional/domain/TestReportSubmit.java
  5. 69
      tp-functional/src/main/java/com/inscloudtech/functional/domain/vo/TestReportVo.java
  6. 10
      tp-functional/src/main/java/com/inscloudtech/functional/mapper/SysDictDataMapper.java
  7. 19
      tp-functional/src/main/java/com/inscloudtech/functional/mapper/TestReportSubmitMapper.java
  8. 4
      tp-functional/src/main/java/com/inscloudtech/functional/service/TestReportService.java
  9. 174
      tp-functional/src/main/java/com/inscloudtech/functional/service/impl/TestReportServiceImpl.java
  10. 7
      tp-system/src/main/resources/mapper/system/SysUserMapper.xml

4
tp-admin/src/main/java/com/inscloudtech/web/controller/system/TestReportController.java

@ -18,7 +18,7 @@ import com.inscloudtech.common.enums.BusinessType;
import com.inscloudtech.common.helper.LoginHelper; import com.inscloudtech.common.helper.LoginHelper;
import com.inscloudtech.common.utils.file.FileUploadUtils; import com.inscloudtech.common.utils.file.FileUploadUtils;
import com.inscloudtech.functional.domain.TestReport; import com.inscloudtech.functional.domain.TestReport;
import com.inscloudtech.functional.domain.vo.TestReportVo;
import com.inscloudtech.functional.domain.vo.TestReportSubmit;
import com.inscloudtech.functional.service.TestReportService; import com.inscloudtech.functional.service.TestReportService;
import com.inscloudtech.system.domain.SysOss; import com.inscloudtech.system.domain.SysOss;
import com.inscloudtech.system.domain.vo.SysOssVo; import com.inscloudtech.system.domain.vo.SysOssVo;
@ -88,7 +88,7 @@ public class TestReportController {
*/ */
@Log(title = "测试报告管理", businessType = BusinessType.INSERT) @Log(title = "测试报告管理", businessType = BusinessType.INSERT)
@PostMapping(value = "/add") @PostMapping(value = "/add")
public R add(@RequestBody TestReportVo vo) {
public R add(@RequestBody TestReportSubmit vo) {
testReportService.add(vo); testReportService.add(vo);
return R.ok("操作成功!"); return R.ok("操作成功!");

7
tp-common/src/main/java/com/inscloudtech/common/core/domain/entity/SysUser.java

@ -129,6 +129,13 @@ public class SysUser extends BaseEntity {
*/ */
private String remark; private String remark;
/**
* 角色名称
*/
@TableField(exist = false)
private String roleName;
/** /**
* 部门对象 * 部门对象
*/ */

2
tp-functional/src/main/java/com/inscloudtech/functional/domain/TestReport.java

@ -48,7 +48,7 @@ public class TestReport extends BaseEntity {
private Long resultOssId; private Long resultOssId;
/** /**
* 上传类型-报告/数据
* 上传类型-报告/数据(uploadType)
*/ */
private String updateType; private String updateType;

47
tp-functional/src/main/java/com/inscloudtech/functional/domain/TestReportSubmit.java

@ -0,0 +1,47 @@
package com.inscloudtech.functional.domain;
import com.baomidou.mybatisplus.annotation.SqlCondition;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.inscloudtech.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 测试报告管理对象 test_report
*
* @author inscloudtech
* @date 2024-09-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class TestReportSubmit extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键
*/
@TableId(value = "id")
private Long id;
private String reportOption1;
private String reportOption2;
private String reportOption3;
private String reportOption4;
private String reportOption5;
private String reportOption6;
private String reportOption7;
private String reportOptionResult7;
private String reportOptionResult6;
private String reportOptionResult5;
private String reportOptionResult4;
private String reportOptionResult3;
private String reportOptionResult2;
private String reportOptionResult1;
}

69
tp-functional/src/main/java/com/inscloudtech/functional/domain/vo/TestReportVo.java

@ -1,69 +0,0 @@
package com.inscloudtech.functional.domain.vo;
import com.baomidou.mybatisplus.annotation.SqlCondition;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.inscloudtech.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 测试报告对象 test_report
*
* @author inscloudtech
* @date 2024-09-02
*/
@Data
public class TestReportVo {
/**
* 框架稳定性-jmeter-聚合报告-错误率
* 通常错误率低于1%可能被认为是较好的性能错误率在1%-5%之间可能需要进一步调查和优化
* 而错误率超过5%可能需要立即解决重要的是要根据具体的业务场景和性能目标来评估错误率是否可接受
*/
private String apiErrorRate;
/**
* cpu性能-gips
* 并且得到了每秒100,000次的性能这可能意味着CPU在单核性能上表现良好如果多核性能达到了每秒1,000,000次
* 这可能表明CPU在多线程应用中具有很好的性能
*/
private String gips;
/**
* cpu温度
然而可以提供一些一般性的指导原则对于台式机CPU通常认为在空载或轻负载条件下CPU温度保持在40°C到60°C之间是理想的在重负载条件下CPU温度上升至60°C到80°C可能是可以接受的但长时间运行在高温度下可能会影响CPU的寿命和性能
对于笔记本电脑CPU由于空间限制和散热挑战温度通常会较高在空载或轻负载条件下CPU温度在50°C到70°C之间可能是常见的而在重负载条件下温度可能会上升至70°C到90°C一些高性能的笔记本电脑可能会采用更先进的散热技术使得CPU在重负载下的温度保持在80°C以下
*/
private String temperature;
/**
* 内存的大小对于计算机的性能有着重要影响不同的使用场景和需求会导致对内存大小的不同要求以下是一些关于内存大小优化的通用指南
*
* 日常办公和多任务处理对于大多数日常办公任务和多任务处理8GB内存已经可以提供良好的性能如果使用较为复杂的数据处理软件或者同时运行多个应用程序16GB内存可能更为合适
*
* 图形设计和视频编辑这类工作通常需要较大的内存来处理大量的数据和图形32GB内存可能是一个更好的选择以确保流畅的性能
*
* 科学计算和大数据分析这些领域通常需要大量的内存来处理复杂的数据集和计算64GB或更大的内存可能是必要的
*
* 游戏现代游戏对内存的需求也在不断提高特别是那些需要大量图形渲染和复杂场景的游戏一般而言16GB内存可以满足大多数游戏的需求但一些大型游戏或高分辨率模组可能需要32GB或更多
*
* 服务器和虚拟化服务器和虚拟化环境通常需要更多的内存来支持多个并发任务和虚拟机的运行至少32GB内存是常见的起点而高端服务器可能会有数百GB甚至更多
*
* 嵌入式设备和移动设备这些设备通常有较小的内存容量因为它们需要更小的体积和更高的能效例如智能手机和平板电脑可能会有4GB或8GB内存
*
* 总的来说内存的大小应该根据您的具体需求和使用场景来决定更大的内存可以提供更流畅的多任务处理能力和更好的性能但也会增加成本和能耗因此优化内存大小需要在性能成本和能效之间找到平衡
*/
private String memorySize;
private String diskReadAndWriteSpeed;
private String netSpeed;
private String flawCount;
}

10
tp-functional/src/main/java/com/inscloudtech/functional/mapper/SysDictDataMapper.java

@ -0,0 +1,10 @@
package com.inscloudtech.functional.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.inscloudtech.common.core.domain.entity.SysDictData;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SysDictDataMapper extends BaseMapper<SysDictData> {
}

19
tp-functional/src/main/java/com/inscloudtech/functional/mapper/TestReportSubmitMapper.java

@ -0,0 +1,19 @@
package com.inscloudtech.functional.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.inscloudtech.functional.domain.TestReport;
import com.inscloudtech.functional.domain.TestReportSubmit;
import org.apache.ibatis.annotations.Mapper;
/**
* cpu信息
*
* @author zfcf
* @date 2024-08-28
*/
@Mapper
public interface TestReportSubmitMapper extends BaseMapper<TestReportSubmit> {
}

4
tp-functional/src/main/java/com/inscloudtech/functional/service/TestReportService.java

@ -4,7 +4,7 @@ package com.inscloudtech.functional.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.inscloudtech.functional.domain.CpuInfo; import com.inscloudtech.functional.domain.CpuInfo;
import com.inscloudtech.functional.domain.TestReport; import com.inscloudtech.functional.domain.TestReport;
import com.inscloudtech.functional.domain.vo.TestReportVo;
import com.inscloudtech.functional.domain.TestReportSubmit;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -17,6 +17,6 @@ public interface TestReportService extends IService<TestReport> {
void check(String reportName); void check(String reportName);
void add(TestReportVo vo);
void add(TestReportSubmit vo);
} }

174
tp-functional/src/main/java/com/inscloudtech/functional/service/impl/TestReportServiceImpl.java

@ -2,28 +2,26 @@ package com.inscloudtech.functional.service.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.inscloudtech.common.constant.CacheConstants;
import com.inscloudtech.common.constant.CacheNames;
import com.inscloudtech.common.constant.UserConstants;
import com.inscloudtech.common.core.domain.entity.SysDictData;
import com.inscloudtech.common.exception.ServiceException; import com.inscloudtech.common.exception.ServiceException;
import com.inscloudtech.common.helper.LoginHelper; import com.inscloudtech.common.helper.LoginHelper;
import com.inscloudtech.common.utils.file.FileUploadUtils;
import com.inscloudtech.functional.domain.CpuInfo;
import com.inscloudtech.functional.domain.FuncCarApi;
import com.inscloudtech.functional.domain.TestReport; import com.inscloudtech.functional.domain.TestReport;
import com.inscloudtech.functional.domain.vo.TestReportVo;
import com.inscloudtech.functional.mapper.CpuInfoMapper;
import com.inscloudtech.functional.domain.TestReportSubmit;
import com.inscloudtech.functional.mapper.SysDictDataMapper;
import com.inscloudtech.functional.mapper.TestReportMapper; import com.inscloudtech.functional.mapper.TestReportMapper;
import com.inscloudtech.functional.service.CpuInfoService;
import com.inscloudtech.functional.service.TestReportService; import com.inscloudtech.functional.service.TestReportService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* *
@ -31,17 +29,12 @@ import java.util.Map;
* @date 2024-08-28 * @date 2024-08-28
*/ */
@Service @Service
@RequiredArgsConstructor
public class TestReportServiceImpl extends ServiceImpl<TestReportMapper, TestReport> implements TestReportService { public class TestReportServiceImpl extends ServiceImpl<TestReportMapper, TestReport> implements TestReportService {
private final static Map<String,String> REPORT_OPTION = new HashMap();
private final SysDictDataMapper sysDictDataMapper;
String[] apiErrorRate = {"char", "varchar", "nvarchar", "varchar2"};
static {
// REPORT_OPTION.put()
}
@Override @Override
public void check(String reportName) { public void check(String reportName) {
TestReport dbObj = baseMapper.selectOne(new LambdaQueryWrapper<TestReport>().eq(TestReport::getReportName, reportName).eq(TestReport::getCreateBy, LoginHelper.getUserId())); TestReport dbObj = baseMapper.selectOne(new LambdaQueryWrapper<TestReport>().eq(TestReport::getReportName, reportName).eq(TestReport::getCreateBy, LoginHelper.getUserId()));
@ -50,6 +43,14 @@ public class TestReportServiceImpl extends ServiceImpl<TestReportMapper, TestRep
} }
} }
/**
* 数据库文本类型
*/
List<String> dictTypeList = Arrays.asList("report_option_1", "report_option_2", "report_option_3", "report_option_4",
"report_option_4", "report_option_5", "report_option_6", "report_option_7");
/** /**
* 框架稳定性-jmeter-聚合报告-错误率 * 框架稳定性-jmeter-聚合报告-错误率
* 通常错误率低于1%可能被认为是较好的性能错误率在1%-5%之间可能需要进一步调查和优化 * 通常错误率低于1%可能被认为是较好的性能错误率在1%-5%之间可能需要进一步调查和优化
@ -59,13 +60,19 @@ public class TestReportServiceImpl extends ServiceImpl<TestReportMapper, TestRep
String result = ""; String result = "";
switch (apiErrorRate){ switch (apiErrorRate){
case "0"://错误率低于1% case "0"://错误率低于1%
result = "较好";
result = "非常优秀,几乎所有的请求都成功处理,适用于高可靠性的系统。";
break; break;
case "1"://错误率低于1%-5% case "1"://错误率低于1%-5%
result = "需优化";
result = "良好,系统能够处理大多数请求,但偶尔会有失败的情况。";
break; break;
case "2"://错误率超过5% case "2"://错误率超过5%
result = "需立即解决";
result = "一般,系统在处理请求时有一定的失败率,可能需要进一步的性能优化。";
break;
case "3"://错误率超过5%
result = "较差,系统的失败率较高,可能影响用户体验,需要立即调查和解决。";
break;
case "4"://错误率超过5%
result = "非常差,系统的稳定性严重问题,需要紧急修复。";
break; break;
} }
return result; return result;
@ -80,13 +87,16 @@ public class TestReportServiceImpl extends ServiceImpl<TestReportMapper, TestRep
String result = ""; String result = "";
switch (apiErrorRate){ switch (apiErrorRate){
case "0"://多核性能达到了每秒1,000,000次 case "0"://多核性能达到了每秒1,000,000次
result = "优秀";
result = "低性能CPU:这类CPU通常属于入门级或老旧的处理器,可能适用于基本的办公和家庭使用,但不适合高性能计算任务。";
break; break;
case "1"://每秒100,000次的性能 case "1"://每秒100,000次的性能
result = "良好";
result = "中等性能CPU:这类CPU适合大多数家庭和办公室使用,以及一些轻度的多媒体编辑和游戏需求。";
break; break;
case "2"://小于每秒100,000次的性能 case "2"://小于每秒100,000次的性能
result = "差";
result = "高性能CPU:这类CPU通常用于高性能桌面计算机、服务器和工作站,适合专业的多媒体编辑、3D渲染和高级游戏玩家。";
break;
case "3"://小于每秒100,000次的性能
result = "极高性能CPU:这类CPU通常属于高端服务器或工作站级别,适合高性能计算、科学模拟、大数据分析和虚拟化等复杂任务。";
break; break;
} }
return result; return result;
@ -101,130 +111,81 @@ public class TestReportServiceImpl extends ServiceImpl<TestReportMapper, TestRep
String result = ""; String result = "";
switch (temperature){ switch (temperature){
case "0"://40°C到60°C case "0"://40°C到60°C
result = "理想";
result = "电脑空闲状态下:CPU温度一般应在30-60摄氏度之间。温度低于这个范围可能表示散热系统效果很好,高于这个范围可能需要检查散热系统是否正常。";
break; break;
case "1"://60°C到80°C case "1"://60°C到80°C
result = "可以接受,但长时间运行在高温度下可能会影响CPU的寿命和性能";
result = "高负荷状态:当笔记本电脑处于高负荷状态,比如运行大型游戏或进行视频编辑等任务时,CPU温度会上升。一般来说,CPU温度在60-85摄氏度之间是可接受的范围。但长时间运行在高温度下可能会影响CPU的寿命和性能";
break; break;
} }
return result; return result;
} }
/**
* 内存的大小对于计算机的性能有着重要影响不同的使用场景和需求会导致对内存大小的不同要求以下是一些关于内存大小优化的通用指南
*
* 日常办公和多任务处理对于大多数日常办公任务和多任务处理8GB内存已经可以提供良好的性能如果使用较为复杂的数据处理软件或者同时运行多个应用程序16GB内存可能更为合适
*
* 图形设计和视频编辑这类工作通常需要较大的内存来处理大量的数据和图形32GB内存可能是一个更好的选择以确保流畅的性能
*
* 科学计算和大数据分析这些领域通常需要大量的内存来处理复杂的数据集和计算64GB或更大的内存可能是必要的
*
* 游戏现代游戏对内存的需求也在不断提高特别是那些需要大量图形渲染和复杂场景的游戏一般而言16GB内存可以满足大多数游戏的需求但一些大型游戏或高分辨率模组可能需要32GB或更多
*
* 服务器和虚拟化服务器和虚拟化环境通常需要更多的内存来支持多个并发任务和虚拟机的运行至少32GB内存是常见的起点而高端服务器可能会有数百GB甚至更多
*
* 嵌入式设备和移动设备这些设备通常有较小的内存容量因为它们需要更小的体积和更高的能效例如智能手机和平板电脑可能会有4GB或8GB内存
*
* 总的来说内存的大小应该根据您的具体需求和使用场景来决定更大的内存可以提供更流畅的多任务处理能力和更好的性能但也会增加成本和能耗因此优化内存大小需要在性能成本和能效之间找到平衡
*/
String getMemorySizeResult(String temperature){ String getMemorySizeResult(String temperature){
String result = ""; String result = "";
switch (temperature){ switch (temperature){
case "0"://8GB~16GB case "0"://8GB~16GB
result = "对于大多数日常办公任务和多任务处理,8GB内存已经可以提供良好的性能。";
result = "对于大多数日常办公任务和多任务处理,8GB内存已经可以提供良好的性能。如果使用较为复杂的数据处理软件或者同时运行多个应用程序,16GB内存可能更为合适。";
break; break;
case "1"://32G case "1"://32G
result = "这类工作通常需要较大的内存来处理大量的数据和图形。32GB内存可能是一个更好的选择,以确保流畅的性能。";
result = "图形设计和视频编辑:这类工作通常需要较大的内存来处理大量的数据和图形。32GB内存可能是一个更好的选择,以确保流畅的性能。";
break; break;
case "2"://32G case "2"://32G
result = "这些领域通常需要大量的内存来处理复杂的数据集和计算。64GB或更大的内存可能是必要的。";
result = "科学计算和大数据分析:这些领域通常需要大量的内存来处理复杂的数据集和计算。64GB或更大的内存可能是必要的。";
break; break;
} }
return result; return result;
} }
/**
* 硬盘的读写速度是衡量其性能的重要指标之一不同的使用场景对硬盘速度的需求不同以下是一些关于硬盘读写速度优化的通用指南
* 1. **日常办公和互联网应用**对于大多数日常办公任务和互联网应用如网页浏览文档编辑轻量级多媒体使用等硬盘的读写速度通常在50MB/s到150MB/s之间可能已经足够满足需求
* 2. **照片和视频编辑**对于需要处理较大文件的照片和视频编辑工作较快的硬盘速度例如读写速度在200MB/s到300MB/s之间可以提供更流畅的体验因为它们可以更快地访问和保存大型文件
* 3. **游戏**现代游戏可能会受益于更高的硬盘读写速度特别是在加载游戏世界纹理和模组时读写速度在300MB/s到500MB/s之间的硬盘可以提供更快的游戏体验
* 4. **服务器和数据中心**服务器和数据中心通常需要更高的硬盘读写速度来处理大量的并发请求和数据传输读写速度在500MB/s到1000MB/s或更高的硬盘可能更为合适
* 5. **固态硬盘SSD**固态硬盘的读写速度通常远高于机械硬盘对于SSD读写速度在500MB/s到2000MB/s之间通常被认为是优秀的而顶级的SSD甚至可以提供超过3000MB/s的读写速度
* 6. **混合硬盘SSHD**混合硬盘结合了固态硬盘和机械硬盘的优势它们通常有一个较快的固态部分用于频繁访问的数据而较大的机械部分用于存储容量对于混合硬盘固态部分的读写速度在100MB/s到500MB/s之间可能是一个合理的期望
* 需要注意的是硬盘的实际性能不仅取决于其标称的读写速度还受到其他因素的影响如接口类型如SATA IIINVMe over PCIe硬盘控制器主机控制器接口HCI速度队列深度QD和系统总线带宽等此外硬盘的持续读写速度和随机读写速度IOPS也是衡量其性能的重要指标
* 在选择硬盘时应该根据您的具体需求和使用场景来考虑所需的读写速度对于大多数消费者和企业用户中等速度的硬盘如500MB/s到1000MB/s通常可以提供良好的性能对于需要处理大量高速数据的专业用户和数据中心可能需要更高速度的硬盘
* @param temperature
* @return
*/
String getDiskReadAndWriteSpeedResult(String temperature){ String getDiskReadAndWriteSpeedResult(String temperature){
String result = ""; String result = "";
switch (temperature){ switch (temperature){
case "0"://8GB~16GB case "0"://8GB~16GB
result = "对于大多数日常办公任务和多任务处理,8GB内存已经可以提供良好的性能。";
result = "对于大多数日常办公任务和互联网应用,如网页浏览、文档编辑、轻量级多媒体使用等,硬盘的读写速度通常在50MB/s到150MB/s之间可能已经足够满足需求。";
break; break;
case "1"://32G case "1"://32G
result = "这类工作通常需要较大的内存来处理大量的数据和图形。32GB内存可能是一个更好的选择,以确保流畅的性能。";
result = "对于需要处理较大文件的照片和视频编辑工作,较快的硬盘速度(例如,读写速度在200MB/s到300MB/s之间)可以提供更流畅的体验,因为它们可以更快地访问和保存大型文件";
break; break;
case "2"://32G case "2"://32G
result = "这些领域通常需要大量的内存来处理复杂的数据集和计算。64GB或更大的内存可能是必要的。";
result = "现代游戏可能会受益于更高的硬盘读写速度,特别是在加载游戏世界、纹理和模组时。读写速度在300MB/s到500MB/s之间的硬盘可以提供更快的游戏体验。";
break;
case "3"://32G
result = "服务器和数据中心通常需要更高的硬盘读写速度来处理大量的并发请求和数据传输。读写速度在500MB/s到1000MB/s或更高的硬盘可能更为合适。";
break;
case "4"://32G
result = "固态硬盘的读写速度通常远高于机械硬盘。对于SSD,读写速度在500MB/s到2000MB/s之间通常被认为是优秀的,而顶级的SSD甚至可以提供超过3000MB/s的读写速度。";
break; break;
} }
return result; return result;
} }
/**
* 网络速度的优劣取决于多种因素包括用户的需求网络技术网络拥堵程度服务提供商的服务质量等以下是一些关于网络速度优化的通用指南
* 1. **家庭和小型企业网络**对于家庭和小型企业用户网络速度通常在10Mbps到100Mbps之间被认为是较好的这可以满足大多数日常使用需求包括网页浏览视频流媒体播放在线游戏和远程工作
* 2. **中等企业网络**对于中型企业网络速度可能在100Mbps到1000Mbps或更高之间被认为是优的这样的速度可以支持更多的用户同时连接以及更高速度的数据传输和应用程序运行
* 3. **大型企业和数据中心**对于大型企业和服务提供商网络速度可能需要达到1Gbps千兆每秒或更高这样可以满足大量用户的高并发需求以及支持高速的数据中心服务和高性能计算
* 4. **互联网服务提供商ISP**互联网服务提供商提供的网络速度可以从几十Mbps到几个Gbps不等这些速度取决于ISP的基础设施和技术能力
* 5. **移动网络**移动网络的速度因运营商地区和网络技术如4G5G而异一般来说4G网络的速度在10Mbps到100Mbps之间而5G网络则可以提供更高的速度有时可以达到1Gbps以上
* 需要注意的是网络速度不仅仅是一个简单的数字实际的用户体验还受到网络延迟Latency丢包率Packet Loss和网络拥塞Network Congestion等因素的影响因此即使网络速度很快如果延迟高或丢包率严重用户体验也可能不佳
* 此外网络速度也受到用户所在位置和服务提供商覆盖范围的限制在选择网络服务时应该考虑这些因素并选择最适合自己需求的网络计划
* @param temperature
* @return
*/
String getNetSpeedResult(String temperature){ String getNetSpeedResult(String temperature){
String result = ""; String result = "";
switch (temperature){ switch (temperature){
case "0"://8GB~16GB case "0"://8GB~16GB
result = "对于大多数日常办公任务和多任务处理,8GB内存已经可以提供良好的性能。";
result = "对于家庭和小型企业用户,网络速度通常在10Mbps到100Mbps之间被认为是较好的。这可以满足大多数日常使用需求,包括网页浏览、视频流媒体播放、在线游戏和远程工作。";
break; break;
case "1"://32G case "1"://32G
result = "这类工作通常需要较大的内存来处理大量的数据和图形。32GB内存可能是一个更好的选择,以确保流畅的性能。";
result = "对于中型企业,网络速度可能在100Mbps到1000Mbps(或更高)之间被认为是优的。这样的速度可以支持更多的用户同时连接,以及更高速度的数据传输和应用程序运行。";
break; break;
case "2"://32G case "2"://32G
result = "这些领域通常需要大量的内存来处理复杂的数据集和计算。64GB或更大的内存可能是必要的。";
result = "对于大型企业和服务提供商,网络速度可能需要达到1Gbps(千兆每秒)或更高。这样可以满足大量用户的高并发需求,以及支持高速的数据中心服务和高性能计算。";
break; break;
} }
return result; return result;
} }
/**
* OWASP ZAPZed Attack Proxy扫描出多少高严重性High Severity漏洞算优秀并没有一个固定的标准因为这取决于多种因素包括应用程序的复杂性攻击面安全措施的实施情况以及扫描的全面性然而可以提供一些一般性的指导原则来评估ZAP扫描结果的质量
* 1. **漏洞密度**一个应用程序发现的漏洞数量尤其是高严重性漏洞的数量可以作为其安全状况的一个指标通常发现的漏洞越少尤其是在高严重性类别中可能表明应用程序的安全性越好
* 2. **漏洞修复**ZAP提供了每个漏洞的修复建议如果ZAP能够提供有效的修复建议并且这些建议能够被应用开发者或安全团队采纳并修复那么这本身就是扫描结果的一个优势
* 3. **合规性和标准**如果应用程序需要遵守特定的安全标准或法规如PCI DSSGDPR等那么扫描结果应该符合这些要求高严重性漏洞的数量在这种情况下可能是一个关键指标
* 4. **扫描策略**ZAP提供了多种扫描策略包括快速扫描全面扫描等扫描的策略和设置也会影响发现的漏洞数量一个全面的扫描可能会发现更多的漏洞
* 5. **应用的性质**不同的应用程序有不同的安全需求例如一个面向公众的电子商务网站可能需要更高的安全性而一个内部使用的简单应用可能安全性要求较低
* 综合考虑以上因素通常认为如果在一次ZAP扫描中高严重性漏洞的数量少于5个且这些漏洞都能被迅速修复那么可以认为扫描结果是优秀的如果高严重性漏洞的数量超过10个那么可能需要进一步的深入分析和改进应用程序的安全措施
* 重要的是应该将扫描结果视为一个持续改进的过程的一部分而不是仅仅关注漏洞的数量即使是发现了高严重性漏洞只要能够及时修复并从中学习提高未来的安全性那么这个过程就是成功的
* @param temperature
* @return
*/
String getFlawCountResult(String temperature){ String getFlawCountResult(String temperature){
String result = ""; String result = "";
switch (temperature){ switch (temperature){
case "0"://8GB~16GB case "0"://8GB~16GB
result = "对于大多数日常办公任务和多任务处理,8GB内存已经可以提供良好的性能。";
result = "一次ZAP扫描中高严重性漏洞的数量少于5个,且这些漏洞都能被迅速修复,那么可以认为扫描结果是优秀的。";
break; break;
case "1"://32G case "1"://32G
result = "这类工作通常需要较大的内存来处理大量的数据和图形。32GB内存可能是一个更好的选择,以确保流畅的性能。";
break;
case "2"://32G
result = "这些领域通常需要大量的内存来处理复杂的数据集和计算。64GB或更大的内存可能是必要的。";
result = "如果高严重性漏洞的数量超过10个,如果高严重性漏洞较多,或者这些漏洞的风险很高且修复困难,那么即使漏洞数量不多,也可能需要进一步的安全加固和风险评估。";
break; break;
} }
return result; return result;
@ -232,14 +193,23 @@ public class TestReportServiceImpl extends ServiceImpl<TestReportMapper, TestRep
@Override @Override
public void add(TestReportVo vo) {
getApiErrorRateResult(vo.getApiErrorRate());
getCpuResultXn(vo.getGips());
getCpuResultTemperature(vo.getTemperature());
getMemorySizeResult(vo.getMemorySize());
getDiskReadAndWriteSpeedResult(vo.getDiskReadAndWriteSpeed());
getNetSpeedResult(vo.getNetSpeed());
getFlawCountResult(vo.getFlawCount());
public void add(TestReportSubmit vo) {
List<SysDictData> sysDictDataList = sysDictDataMapper.selectList(
new LambdaQueryWrapper<SysDictData>()
.eq(SysDictData::getStatus, UserConstants.DICT_NORMAL)
.in(SysDictData::getDictType, dictTypeList)
.orderByAsc(SysDictData::getDictSort));
Map<String, List<SysDictData>> groupByType = sysDictDataList.stream().collect(Collectors.groupingBy(SysDictData::getDictType));
getApiErrorRateResult(vo.getReportOption1());
getCpuResultXn(vo.getReportOption2());
getCpuResultTemperature(vo.getReportOption3());
getMemorySizeResult(vo.getReportOption4());
getDiskReadAndWriteSpeedResult(vo.getReportOption5());
getNetSpeedResult(vo.getReportOption6());
getFlawCountResult(vo.getReportOption7());
} }

7
tp-system/src/main/resources/mapper/system/SysUserMapper.xml

@ -25,6 +25,8 @@
<result property="updateTime" column="update_time"/> <result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/> <result property="remark" column="remark"/>
<result property="companyName" column="company_name"/> <result property="companyName" column="company_name"/>
<result property="roleName" column="role_name"/>
<association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult"/> <association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult"/>
<collection property="roles" javaType="java.util.List" resultMap="RoleResult"/> <collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
</resultMap> </resultMap>
@ -87,9 +89,12 @@
<select id="selectPageUserList" resultMap="SysUserResult"> <select id="selectPageUserList" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.company_name, d.dept_name, d.leader
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.company_name, d.dept_name, d.leader,
r.role_name
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role sur on u.user_id = sur.user_id
left join sys_role r on r.role_id = sur.role_id
${ew.getCustomSqlSegment} ${ew.getCustomSqlSegment}
</select> </select>

Loading…
Cancel
Save