Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MeterSphere
metersphere
提交
feeebf72
M
metersphere
项目概览
MeterSphere
/
metersphere
上一次同步 大约 3 年
通知
25
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
metersphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
feeebf72
编写于
7月 21, 2020
作者:
C
chenjianxing
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 模块重名校验
上级
1f94c618
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
43 addition
and
19 deletion
+43
-19
backend/src/main/java/io/metersphere/track/service/TestCaseNodeService.java
...ava/io/metersphere/track/service/TestCaseNodeService.java
+31
-7
backend/src/main/java/io/metersphere/track/service/TestCaseService.java
...in/java/io/metersphere/track/service/TestCaseService.java
+7
-12
backend/src/main/resources/i18n/messages_en_US.properties
backend/src/main/resources/i18n/messages_en_US.properties
+1
-0
backend/src/main/resources/i18n/messages_zh_CN.properties
backend/src/main/resources/i18n/messages_zh_CN.properties
+1
-0
backend/src/main/resources/i18n/messages_zh_TW.properties
backend/src/main/resources/i18n/messages_zh_TW.properties
+1
-0
frontend/src/business/components/track/common/NodeTree.vue
frontend/src/business/components/track/common/NodeTree.vue
+2
-0
未找到文件。
backend/src/main/java/io/metersphere/track/service/TestCaseNodeService.java
浏览文件 @
feeebf72
...
...
@@ -45,11 +45,7 @@ public class TestCaseNodeService {
SqlSessionFactory
sqlSessionFactory
;
public
String
addNode
(
TestCaseNode
node
)
{
if
(
node
.
getLevel
()
>
TestCaseConstants
.
MAX_NODE_DEPTH
){
throw
new
RuntimeException
(
Translator
.
get
(
"test_case_node_level_tip"
)
+
TestCaseConstants
.
MAX_NODE_DEPTH
+
Translator
.
get
(
"test_case_node_level"
));
}
validateNode
(
node
);
node
.
setCreateTime
(
System
.
currentTimeMillis
());
node
.
setUpdateTime
(
System
.
currentTimeMillis
());
node
.
setId
(
UUID
.
randomUUID
().
toString
());
...
...
@@ -57,6 +53,34 @@ public class TestCaseNodeService {
return
node
.
getId
();
}
private
void
validateNode
(
TestCaseNode
node
)
{
if
(
node
.
getLevel
()
>
TestCaseConstants
.
MAX_NODE_DEPTH
){
throw
new
RuntimeException
(
Translator
.
get
(
"test_case_node_level_tip"
)
+
TestCaseConstants
.
MAX_NODE_DEPTH
+
Translator
.
get
(
"test_case_node_level"
));
}
checkTestCaseNodeExist
(
node
);
}
private
void
checkTestCaseNodeExist
(
TestCaseNode
node
)
{
if
(
node
.
getName
()
!=
null
)
{
TestCaseNodeExample
example
=
new
TestCaseNodeExample
();
TestCaseNodeExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andNameEqualTo
(
node
.
getName
())
.
andProjectIdEqualTo
(
node
.
getProjectId
());
if
(
StringUtils
.
isNotBlank
(
node
.
getParentId
()))
{
criteria
.
andParentIdEqualTo
(
node
.
getParentId
());
}
else
{
criteria
.
andParentIdIsNull
();
}
if
(
StringUtils
.
isNotBlank
(
node
.
getId
()))
{
criteria
.
andIdNotEqualTo
(
node
.
getId
());
}
if
(
testCaseNodeMapper
.
selectByExample
(
example
).
size
()
>
0
)
{
MSException
.
throwException
(
Translator
.
get
(
"test_case_module_already_exists"
));
}
}
}
public
List
<
TestCaseNodeDTO
>
getNodeTreeByProjectId
(
String
projectId
)
{
TestCaseNodeExample
testCaseNodeExample
=
new
TestCaseNodeExample
();
testCaseNodeExample
.
createCriteria
().
andProjectIdEqualTo
(
projectId
);
...
...
@@ -119,7 +143,7 @@ public class TestCaseNodeService {
public
int
editNode
(
DragNodeRequest
request
)
{
request
.
setUpdateTime
(
System
.
currentTimeMillis
());
checkTestCaseNodeExist
(
request
);
List
<
TestCaseDTO
>
testCases
=
QueryTestCaseByNodeIds
(
request
.
getNodeIds
());
testCases
.
forEach
(
testCase
->
{
...
...
@@ -376,7 +400,7 @@ public class TestCaseNodeService {
public
void
dragNode
(
DragNodeRequest
request
)
{
// editNode
(request);
checkTestCaseNodeExist
(
request
);
List
<
String
>
nodeIds
=
request
.
getNodeIds
();
...
...
backend/src/main/java/io/metersphere/track/service/TestCaseService.java
浏览文件 @
feeebf72
...
...
@@ -73,14 +73,7 @@ public class TestCaseService {
public
void
addTestCase
(
TestCaseWithBLOBs
testCase
)
{
testCase
.
setName
(
testCase
.
getName
());
TestCaseExample
testCaseExample
=
new
TestCaseExample
();
testCaseExample
.
createCriteria
()
.
andProjectIdEqualTo
(
testCase
.
getProjectId
())
.
andNameEqualTo
(
testCase
.
getName
());
List
<
TestCase
>
testCases
=
testCaseMapper
.
selectByExample
(
testCaseExample
);
if
(
testCases
.
size
()
>
0
)
{
MSException
.
throwException
(
Translator
.
get
(
"test_case_exist"
)
+
testCase
.
getName
());
}
checkTestCaseExist
(
testCase
);
testCase
.
setId
(
UUID
.
randomUUID
().
toString
());
testCase
.
setCreateTime
(
System
.
currentTimeMillis
());
testCase
.
setUpdateTime
(
System
.
currentTimeMillis
());
...
...
@@ -107,10 +100,12 @@ public class TestCaseService {
private
void
checkTestCaseExist
(
TestCaseWithBLOBs
testCase
)
{
if
(
testCase
.
getName
()
!=
null
)
{
TestCaseExample
example
=
new
TestCaseExample
();
example
.
createCriteria
()
.
andNameEqualTo
(
testCase
.
getName
())
.
andProjectIdEqualTo
(
testCase
.
getProjectId
())
.
andIdNotEqualTo
(
testCase
.
getId
());
TestCaseExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andNameEqualTo
(
testCase
.
getName
())
.
andProjectIdEqualTo
(
testCase
.
getProjectId
());
if
(
StringUtils
.
isNotBlank
(
testCase
.
getId
()))
{
criteria
.
andIdNotEqualTo
(
testCase
.
getId
());
}
if
(
testCaseMapper
.
selectByExample
(
example
).
size
()
>
0
)
{
MSException
.
throwException
(
Translator
.
get
(
"test_case_already_exists"
));
}
...
...
backend/src/main/resources/i18n/messages_en_US.properties
浏览文件 @
feeebf72
...
...
@@ -115,6 +115,7 @@ please_input_workspace_member=Please input workspace merber
test_case_report_template_repeat
=
The workspace has the same name template
plan_name_already_exists
=
Test plan name already exists
test_case_already_exists_excel
=
There are duplicate test cases in the import file
test_case_module_already_exists
=
The module name already exists at the same level
api_test_name_already_exists
=
Test name already exists
#ldap
...
...
backend/src/main/resources/i18n/messages_zh_CN.properties
浏览文件 @
feeebf72
...
...
@@ -115,6 +115,7 @@ please_input_workspace_member=请填写该工作空间相关人员
test_case_report_template_repeat
=
同一工作空间下不能存在同名模版
plan_name_already_exists
=
测试计划名称已存在
test_case_already_exists_excel
=
导入文件中存在重复用例
test_case_module_already_exists
=
同层级下已存在该模块名称
api_test_name_already_exists
=
测试名称已经存在
#ldap
...
...
backend/src/main/resources/i18n/messages_zh_TW.properties
浏览文件 @
feeebf72
...
...
@@ -115,6 +115,7 @@ please_input_workspace_member=請填寫該工作空間相關人員
test_case_report_template_repeat
=
同壹工作空間下不能存在同名模版
plan_name_already_exists
=
測試計劃名稱已存在
test_case_already_exists_excel
=
導入文件中存在重復用例
test_case_module_already_exists
=
同層級下已存在該模塊名稱
api_test_name_already_exists
=
測試名稱已經存在
#ldap
...
...
frontend/src/business/components/track/common/NodeTree.vue
浏览文件 @
feeebf72
...
...
@@ -109,6 +109,8 @@ export default {
handleDragEnd
(
draggingNode
,
dropNode
,
dropType
,
ev
)
{
let
param
=
{};
param
.
id
=
draggingNode
.
data
.
id
;
param
.
name
=
draggingNode
.
data
.
name
;
param
.
projectId
=
draggingNode
.
data
.
projectId
;
if
(
dropType
===
"
inner
"
)
{
param
.
parentId
=
dropNode
.
data
.
id
;
param
.
level
=
dropNode
.
data
.
level
+
1
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录