Browse Source

用户注册/用户列表字段

master
zhouyl 12 months ago
parent
commit
458ce36929
  1. 17
      tp-admin/src/main/java/com/inscloudtech/web/controller/system/TestReportController.java
  2. 8
      tp-common/src/main/java/com/inscloudtech/common/core/domain/entity/SysUser.java
  3. 20
      tp-common/src/main/java/com/inscloudtech/common/core/domain/model/LoginBody.java
  4. 69
      tp-functional/src/main/java/com/inscloudtech/functional/domain/vo/TestReportVo.java
  5. 3
      tp-functional/src/main/java/com/inscloudtech/functional/service/TestReportService.java
  6. 211
      tp-functional/src/main/java/com/inscloudtech/functional/service/impl/TestReportServiceImpl.java

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

@ -18,6 +18,7 @@ import com.inscloudtech.common.enums.BusinessType;
import com.inscloudtech.common.helper.LoginHelper;
import com.inscloudtech.common.utils.file.FileUploadUtils;
import com.inscloudtech.functional.domain.TestReport;
import com.inscloudtech.functional.domain.vo.TestReportVo;
import com.inscloudtech.functional.service.TestReportService;
import com.inscloudtech.system.domain.SysOss;
import com.inscloudtech.system.domain.vo.SysOssVo;
@ -79,8 +80,22 @@ public class TestReportController {
return R.ok(testReportService.getById(id));
}
/**
* 提交测试报告
*
*/
@Log(title = "测试报告管理", businessType = BusinessType.INSERT)
@PostMapping(value = "/add")
public R add(@RequestBody TestReportVo vo) {
testReportService.add(vo);
return R.ok("操作成功!");
}
/**
* 上传测试报告/文件加密
* 上传测试报告文件
*
*/
@Log(title = "测试报告管理", businessType = BusinessType.INSERT)

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

@ -11,6 +11,7 @@ import com.inscloudtech.common.xss.Xss;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
@ -42,7 +43,7 @@ public class SysUser extends BaseEntity {
private Long deptId;
/**
* 用户账号
* 用户账号/手机号码
*/
@Xss(message = "用户账号不能包含脚本字符")
@NotBlank(message = "用户账号不能为空")
@ -158,6 +159,11 @@ public class SysUser extends BaseEntity {
@TableField(exist = false)
private Long roleId;
/**
* 公司名称
*/
private String companyName;
public SysUser(Long userId) {
this.userId = userId;
}

20
tp-common/src/main/java/com/inscloudtech/common/core/domain/model/LoginBody.java

@ -16,12 +16,28 @@ import javax.validation.constraints.NotBlank;
public class LoginBody {
/**
* 用户名
* 手机号
*/
@NotBlank(message = "{user.username.not.blank}")
@Length(min = UserConstants.USERNAME_MIN_LENGTH, max = UserConstants.USERNAME_MAX_LENGTH, message = "{user.username.length.valid}")
@Length(min = 11, max = 11, message = "{user.mobile.phone.number.not.valid}")
private String username;
/**
* 用户昵称
*/
@NotBlank(message = "{user.username.not.blank}")
@Length(min = UserConstants.USERNAME_MIN_LENGTH, max = UserConstants.USERNAME_MAX_LENGTH, message = "{user.username.length.valid}")
private String nickName;
/**
* 公司名称
*/
@NotBlank
@Length(min = 5, max =50, message = "{length.not.valid}")
private String companyName;
/**
* 用户密码
*/

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

@ -0,0 +1,69 @@
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;
}

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

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

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

@ -5,11 +5,14 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.inscloudtech.common.constant.CacheConstants;
import com.inscloudtech.common.constant.CacheNames;
import com.inscloudtech.common.exception.ServiceException;
import com.inscloudtech.common.helper.LoginHelper;
import com.inscloudtech.common.utils.file.FileUploadUtils;
import com.inscloudtech.functional.domain.CpuInfo;
import com.inscloudtech.functional.domain.TestReport;
import com.inscloudtech.functional.domain.vo.TestReportVo;
import com.inscloudtech.functional.mapper.CpuInfoMapper;
import com.inscloudtech.functional.mapper.TestReportMapper;
import com.inscloudtech.functional.service.CpuInfoService;
@ -17,6 +20,11 @@ import com.inscloudtech.functional.service.TestReportService;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* @author zfcf
@ -25,6 +33,15 @@ import org.springframework.web.multipart.MultipartFile;
@Service
public class TestReportServiceImpl extends ServiceImpl<TestReportMapper, TestReport> implements TestReportService {
private final static Map<String,String> REPORT_OPTION = new HashMap();
String[] apiErrorRate = {"char", "varchar", "nvarchar", "varchar2"};
static {
// REPORT_OPTION.put()
}
@Override
public void check(String reportName) {
TestReport dbObj = baseMapper.selectOne(new LambdaQueryWrapper<TestReport>().eq(TestReport::getReportName, reportName).eq(TestReport::getCreateBy, LoginHelper.getUserId()));
@ -33,4 +50,198 @@ public class TestReportServiceImpl extends ServiceImpl<TestReportMapper, TestRep
}
}
/**
* 框架稳定性-jmeter-聚合报告-错误率
* 通常错误率低于1%可能被认为是较好的性能错误率在1%-5%之间可能需要进一步调查和优化
* 而错误率超过5%可能需要立即解决重要的是要根据具体的业务场景和性能目标来评估错误率是否可接受
*/
String getApiErrorRateResult(String apiErrorRate){
String result = "";
switch (apiErrorRate){
case "0"://错误率低于1%
result = "较好";
break;
case "1"://错误率低于1%-5%
result = "需优化";
break;
case "2"://错误率超过5%
result = "需立即解决";
break;
}
return result;
}
/**
* cpu性能-gips
* 并且得到了每秒100,000次的性能这可能意味着CPU在单核性能上表现良好如果多核性能达到了每秒1,000,000次
* 这可能表明CPU在多线程应用中具有很好的性能
*/
String getCpuResultXn(String apiErrorRate){
String result = "";
switch (apiErrorRate){
case "0"://多核性能达到了每秒1,000,000次
result = "优秀";
break;
case "1"://每秒100,000次的性能
result = "良好";
break;
case "2"://小于每秒100,000次的性能
result = "差";
break;
}
return result;
}
/**
* 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以下
*/
String getCpuResultTemperature(String temperature){
String result = "";
switch (temperature){
case "0"://40°C到60°C
result = "理想";
break;
case "1"://60°C到80°C
result = "可以接受,但长时间运行在高温度下可能会影响CPU的寿命和性能";
break;
}
return result;
}
/**
* 内存的大小对于计算机的性能有着重要影响不同的使用场景和需求会导致对内存大小的不同要求以下是一些关于内存大小优化的通用指南
*
* 日常办公和多任务处理对于大多数日常办公任务和多任务处理8GB内存已经可以提供良好的性能如果使用较为复杂的数据处理软件或者同时运行多个应用程序16GB内存可能更为合适
*
* 图形设计和视频编辑这类工作通常需要较大的内存来处理大量的数据和图形32GB内存可能是一个更好的选择以确保流畅的性能
*
* 科学计算和大数据分析这些领域通常需要大量的内存来处理复杂的数据集和计算64GB或更大的内存可能是必要的
*
* 游戏现代游戏对内存的需求也在不断提高特别是那些需要大量图形渲染和复杂场景的游戏一般而言16GB内存可以满足大多数游戏的需求但一些大型游戏或高分辨率模组可能需要32GB或更多
*
* 服务器和虚拟化服务器和虚拟化环境通常需要更多的内存来支持多个并发任务和虚拟机的运行至少32GB内存是常见的起点而高端服务器可能会有数百GB甚至更多
*
* 嵌入式设备和移动设备这些设备通常有较小的内存容量因为它们需要更小的体积和更高的能效例如智能手机和平板电脑可能会有4GB或8GB内存
*
* 总的来说内存的大小应该根据您的具体需求和使用场景来决定更大的内存可以提供更流畅的多任务处理能力和更好的性能但也会增加成本和能耗因此优化内存大小需要在性能成本和能效之间找到平衡
*/
String getMemorySizeResult(String temperature){
String result = "";
switch (temperature){
case "0"://8GB~16GB
result = "对于大多数日常办公任务和多任务处理,8GB内存已经可以提供良好的性能。";
break;
case "1"://32G
result = "这类工作通常需要较大的内存来处理大量的数据和图形。32GB内存可能是一个更好的选择,以确保流畅的性能。";
break;
case "2"://32G
result = "这些领域通常需要大量的内存来处理复杂的数据集和计算。64GB或更大的内存可能是必要的。";
break;
}
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 result = "";
switch (temperature){
case "0"://8GB~16GB
result = "对于大多数日常办公任务和多任务处理,8GB内存已经可以提供良好的性能。";
break;
case "1"://32G
result = "这类工作通常需要较大的内存来处理大量的数据和图形。32GB内存可能是一个更好的选择,以确保流畅的性能。";
break;
case "2"://32G
result = "这些领域通常需要大量的内存来处理复杂的数据集和计算。64GB或更大的内存可能是必要的。";
break;
}
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 result = "";
switch (temperature){
case "0"://8GB~16GB
result = "对于大多数日常办公任务和多任务处理,8GB内存已经可以提供良好的性能。";
break;
case "1"://32G
result = "这类工作通常需要较大的内存来处理大量的数据和图形。32GB内存可能是一个更好的选择,以确保流畅的性能。";
break;
case "2"://32G
result = "这些领域通常需要大量的内存来处理复杂的数据集和计算。64GB或更大的内存可能是必要的。";
break;
}
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 result = "";
switch (temperature){
case "0"://8GB~16GB
result = "对于大多数日常办公任务和多任务处理,8GB内存已经可以提供良好的性能。";
break;
case "1"://32G
result = "这类工作通常需要较大的内存来处理大量的数据和图形。32GB内存可能是一个更好的选择,以确保流畅的性能。";
break;
case "2"://32G
result = "这些领域通常需要大量的内存来处理复杂的数据集和计算。64GB或更大的内存可能是必要的。";
break;
}
return result;
}
@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());
}
}
Loading…
Cancel
Save