fix(测试跟踪): 项目下模块默认节点创建重复的问题
--bug=1013696 --user=宋昌昌 【测试跟踪】github#14110 升级导致模块未规划用例重复问题 https://www.tapd.cn/55049933/s/1179384
This commit is contained in:
parent
63e5025952
commit
61b501513a
|
@ -73,8 +73,6 @@ public class ApiModuleService extends NodeTreeService<ApiModuleDTO> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ApiModuleDTO> getNodeTreeByProjectId(String projectId, String protocol, String versionId) {
|
public List<ApiModuleDTO> getNodeTreeByProjectId(String projectId, String protocol, String versionId) {
|
||||||
// 判断当前项目下是否有默认模块,没有添加默认模块
|
|
||||||
this.getDefaultNode(projectId, protocol);
|
|
||||||
List<ApiModuleDTO> apiModules = extApiModuleMapper.getNodeTreeByProjectId(projectId, protocol);
|
List<ApiModuleDTO> apiModules = extApiModuleMapper.getNodeTreeByProjectId(projectId, protocol);
|
||||||
ApiDefinitionRequest request = new ApiDefinitionRequest();
|
ApiDefinitionRequest request = new ApiDefinitionRequest();
|
||||||
request.setProjectId(projectId);
|
request.setProjectId(projectId);
|
||||||
|
|
|
@ -62,9 +62,6 @@ public class ApiScenarioModuleService extends NodeTreeService<ApiScenarioModuleD
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ApiScenarioModuleDTO> getNodeTreeByProjectId(String projectId) {
|
public List<ApiScenarioModuleDTO> getNodeTreeByProjectId(String projectId) {
|
||||||
// 判断当前项目下是否有默认模块,没有添加默认模块
|
|
||||||
this.getDefaultNode(projectId);
|
|
||||||
|
|
||||||
List<ApiScenarioModuleDTO> nodes = extApiScenarioModuleMapper.getNodeTreeByProjectId(projectId);
|
List<ApiScenarioModuleDTO> nodes = extApiScenarioModuleMapper.getNodeTreeByProjectId(projectId);
|
||||||
ApiScenarioRequest request = new ApiScenarioRequest();
|
ApiScenarioRequest request = new ApiScenarioRequest();
|
||||||
request.setProjectId(projectId);
|
request.setProjectId(projectId);
|
||||||
|
|
|
@ -8,4 +8,5 @@ import lombok.Data;
|
||||||
@Data
|
@Data
|
||||||
public class ModuleNode extends TestCaseNode {
|
public class ModuleNode extends TestCaseNode {
|
||||||
private Integer caseNum;
|
private Integer caseNum;
|
||||||
|
private String protocol;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
package io.metersphere.commons.constants;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目模块默认节点
|
||||||
|
* @author song-cc
|
||||||
|
*/
|
||||||
|
public enum ProjectModuleDefaultNodeEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试用例默认节点
|
||||||
|
*/
|
||||||
|
TEST_CASE_DEFAULT_NODE("未规划用例", "test_case_node"),
|
||||||
|
/**
|
||||||
|
* 接口默认节点
|
||||||
|
*/
|
||||||
|
API_MODULE_DEFAULT_NODE("未规划接口", "api_module"),
|
||||||
|
/**
|
||||||
|
* 接口场景默认节点
|
||||||
|
*/
|
||||||
|
API_SCENARIO_DEFAULT_NODE("未规划场景", "api_scenario_module"),
|
||||||
|
/**
|
||||||
|
* 接口场景默认节点
|
||||||
|
*/
|
||||||
|
UI_SCENARIO_DEFAULT_NODE("未规划场景", "ui_scenario_module");
|
||||||
|
|
||||||
|
private String nodeName;
|
||||||
|
private String tableName;
|
||||||
|
|
||||||
|
ProjectModuleDefaultNodeEnum(String nodeName, String tableName) {
|
||||||
|
this.nodeName = nodeName;
|
||||||
|
this.tableName = tableName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNodeName() {
|
||||||
|
return nodeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTableName() {
|
||||||
|
return tableName;
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,10 +8,7 @@ import io.metersphere.api.service.*;
|
||||||
import io.metersphere.api.tcp.TCPPool;
|
import io.metersphere.api.tcp.TCPPool;
|
||||||
import io.metersphere.base.domain.*;
|
import io.metersphere.base.domain.*;
|
||||||
import io.metersphere.base.mapper.*;
|
import io.metersphere.base.mapper.*;
|
||||||
import io.metersphere.base.mapper.ext.ExtProjectMapper;
|
import io.metersphere.base.mapper.ext.*;
|
||||||
import io.metersphere.base.mapper.ext.ExtProjectVersionMapper;
|
|
||||||
import io.metersphere.base.mapper.ext.ExtUserGroupMapper;
|
|
||||||
import io.metersphere.base.mapper.ext.ExtUserMapper;
|
|
||||||
import io.metersphere.commons.constants.*;
|
import io.metersphere.commons.constants.*;
|
||||||
import io.metersphere.commons.exception.MSException;
|
import io.metersphere.commons.exception.MSException;
|
||||||
import io.metersphere.commons.utils.*;
|
import io.metersphere.commons.utils.*;
|
||||||
|
@ -113,6 +110,10 @@ public class ProjectService {
|
||||||
private ProjectApplicationService projectApplicationService;
|
private ProjectApplicationService projectApplicationService;
|
||||||
@Resource
|
@Resource
|
||||||
private ProjectVersionMapper projectVersionMapper;
|
private ProjectVersionMapper projectVersionMapper;
|
||||||
|
@Resource
|
||||||
|
ExtModuleNodeMapper extModuleNodeMapper;
|
||||||
|
@Resource
|
||||||
|
ApiModuleMapper apiModuleMapper;
|
||||||
|
|
||||||
public Project addProject(AddProjectRequest project) {
|
public Project addProject(AddProjectRequest project) {
|
||||||
if (StringUtils.isBlank(project.getName())) {
|
if (StringUtils.isBlank(project.getName())) {
|
||||||
|
@ -175,6 +176,8 @@ public class ProjectService {
|
||||||
addProjectVersion(project);
|
addProjectVersion(project);
|
||||||
// 初始化项目应用管理
|
// 初始化项目应用管理
|
||||||
initProjectApplication(project.getId());
|
initProjectApplication(project.getId());
|
||||||
|
// 初始化项目默认节点
|
||||||
|
initProjectDefaultNode(project.getId());
|
||||||
return project;
|
return project;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,6 +232,36 @@ public class ProjectService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initProjectDefaultNode(String projectId) {
|
||||||
|
ModuleNode record = new ModuleNode();
|
||||||
|
record.setId(UUID.randomUUID().toString());
|
||||||
|
record.setCreateUser(SessionUtils.getUserId());
|
||||||
|
record.setPos(1.0);
|
||||||
|
record.setLevel(1);
|
||||||
|
record.setCreateTime(System.currentTimeMillis());
|
||||||
|
record.setUpdateTime(System.currentTimeMillis());
|
||||||
|
record.setProjectId(projectId);
|
||||||
|
//每个新项目的默认测试用例节点, 接口场景节点, UI自动化场景, 接口节点{HTTP, DUBBO, SQL, TCP}
|
||||||
|
record.setName(ProjectModuleDefaultNodeEnum.TEST_CASE_DEFAULT_NODE.getNodeName());
|
||||||
|
extModuleNodeMapper.insert(ProjectModuleDefaultNodeEnum.TEST_CASE_DEFAULT_NODE.getTableName(), record);
|
||||||
|
record.setId(UUID.randomUUID().toString());
|
||||||
|
record.setName(ProjectModuleDefaultNodeEnum.API_SCENARIO_DEFAULT_NODE.getNodeName());
|
||||||
|
extModuleNodeMapper.insert(ProjectModuleDefaultNodeEnum.API_SCENARIO_DEFAULT_NODE.getTableName(), record);
|
||||||
|
record.setId(UUID.randomUUID().toString());
|
||||||
|
record.setName(ProjectModuleDefaultNodeEnum.UI_SCENARIO_DEFAULT_NODE.getNodeName());
|
||||||
|
extModuleNodeMapper.insert(ProjectModuleDefaultNodeEnum.UI_SCENARIO_DEFAULT_NODE.getTableName(), record);
|
||||||
|
|
||||||
|
ApiModule apiRecord = new ApiModule();
|
||||||
|
BeanUtils.copyBean(apiRecord, record);
|
||||||
|
apiRecord.setName(ProjectModuleDefaultNodeEnum.API_MODULE_DEFAULT_NODE.getNodeName());
|
||||||
|
String[] protocols = {"HTTP", "DUBBO", "SQL", "TCP"};
|
||||||
|
for (String protocol : protocols) {
|
||||||
|
apiRecord.setProtocol(protocol);
|
||||||
|
apiRecord.setId(UUID.randomUUID().toString());
|
||||||
|
apiModuleMapper.insert(apiRecord);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void checkThirdProjectExist(Project project) {
|
public void checkThirdProjectExist(Project project) {
|
||||||
IssuesRequest issuesRequest = new IssuesRequest();
|
IssuesRequest issuesRequest = new IssuesRequest();
|
||||||
if (StringUtils.isBlank(project.getId())) {
|
if (StringUtils.isBlank(project.getId())) {
|
||||||
|
|
|
@ -148,8 +148,6 @@ public class TestCaseNodeService extends NodeTreeService<TestCaseNodeDTO> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<TestCaseNodeDTO> getNodeTreeByProjectId(String projectId, QueryTestCaseRequest request) {
|
public List<TestCaseNodeDTO> getNodeTreeByProjectId(String projectId, QueryTestCaseRequest request) {
|
||||||
// 判断当前项目下是否有默认模块,没有添加默认模块
|
|
||||||
this.getDefaultNode(projectId);
|
|
||||||
List<TestCaseNodeDTO> testCaseNodes = extTestCaseNodeMapper.getNodeTreeByProjectId(projectId);
|
List<TestCaseNodeDTO> testCaseNodes = extTestCaseNodeMapper.getNodeTreeByProjectId(projectId);
|
||||||
request.setUserId(SessionUtils.getUserId());
|
request.setUserId(SessionUtils.getUserId());
|
||||||
request.setProjectId(projectId);
|
request.setProjectId(projectId);
|
||||||
|
|
Loading…
Reference in New Issue