Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MeterSphere
metersphere
提交
592c8117
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,发现更多精彩内容 >>
提交
592c8117
编写于
5月 29, 2020
作者:
Q
q4speed
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
接口测试复制功能
上级
34d2fac5
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
43 addition
and
17 deletion
+43
-17
backend/src/main/java/io/metersphere/api/controller/APITestController.java
...java/io/metersphere/api/controller/APITestController.java
+5
-0
backend/src/main/java/io/metersphere/api/service/APITestService.java
.../main/java/io/metersphere/api/service/APITestService.java
+21
-0
backend/src/main/java/io/metersphere/service/FileService.java
...end/src/main/java/io/metersphere/service/FileService.java
+17
-17
未找到文件。
backend/src/main/java/io/metersphere/api/controller/APITestController.java
浏览文件 @
592c8117
...
...
@@ -61,6 +61,11 @@ public class APITestController {
apiTestService
.
update
(
request
,
files
);
}
@PostMapping
(
value
=
"/copy"
)
public
void
copy
(
@RequestBody
SaveAPITestRequest
request
)
{
apiTestService
.
copy
(
request
);
}
@GetMapping
(
"/get/{testId}"
)
public
ApiTestWithBLOBs
get
(
@PathVariable
String
testId
)
{
return
apiTestService
.
get
(
testId
);
...
...
backend/src/main/java/io/metersphere/api/service/APITestService.java
浏览文件 @
592c8117
...
...
@@ -23,6 +23,7 @@ import java.io.ByteArrayInputStream;
import
java.io.InputStream
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.UUID
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
...
...
@@ -69,6 +70,26 @@ public class APITestService {
saveFile
(
test
.
getId
(),
files
);
}
public
void
copy
(
SaveAPITestRequest
request
)
{
// copy test
ApiTestWithBLOBs
copy
=
get
(
request
.
getId
());
copy
.
setId
(
UUID
.
randomUUID
().
toString
());
copy
.
setName
(
copy
.
getName
()
+
" Copy"
);
copy
.
setCreateTime
(
System
.
currentTimeMillis
());
copy
.
setUpdateTime
(
System
.
currentTimeMillis
());
copy
.
setStatus
(
APITestStatus
.
Saved
.
name
());
copy
.
setUserId
(
Objects
.
requireNonNull
(
SessionUtils
.
getUser
()).
getId
());
apiTestMapper
.
insert
(
copy
);
// copy test file
ApiTestFile
apiTestFile
=
getFileByTestId
(
request
.
getId
());
if
(
apiTestFile
!=
null
)
{
FileMetadata
fileMetadata
=
fileService
.
copyFile
(
apiTestFile
.
getFileId
());
apiTestFile
.
setTestId
(
copy
.
getId
());
apiTestFile
.
setFileId
(
fileMetadata
.
getId
());
apiTestFileMapper
.
insert
(
apiTestFile
);
}
}
public
ApiTestWithBLOBs
get
(
String
id
)
{
return
apiTestMapper
.
selectByPrimaryKey
(
id
);
}
...
...
backend/src/main/java/io/metersphere/service/FileService.java
浏览文件 @
592c8117
...
...
@@ -3,22 +3,20 @@ package io.metersphere.service;
import
io.metersphere.base.domain.*
;
import
io.metersphere.base.mapper.FileContentMapper
;
import
io.metersphere.base.mapper.FileMetadataMapper
;
import
io.metersphere.base.mapper.ApiTestFileMapper
;
import
io.metersphere.base.mapper.LoadTestFileMapper
;
import
io.metersphere.commons.constants.FileType
;
import
io.metersphere.commons.exception.MSException
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
java.io.IOException
;
import
java.util.List
;
import
java.util.UUID
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
@Service
public
class
FileService
{
@Resource
...
...
@@ -26,8 +24,6 @@ public class FileService {
@Resource
private
LoadTestFileMapper
loadTestFileMapper
;
@Resource
private
ApiTestFileMapper
ApiTestFileMapper
;
@Resource
private
FileContentMapper
fileContentMapper
;
public
byte
[]
loadFileAsBytes
(
String
id
)
{
...
...
@@ -50,17 +46,6 @@ public class FileService {
return
fileMetadataMapper
.
selectByExample
(
example
);
}
public
FileMetadata
getApiFileMetadataByTestId
(
String
testId
)
{
ApiTestFileExample
ApiTestFileExample
=
new
ApiTestFileExample
();
ApiTestFileExample
.
createCriteria
().
andTestIdEqualTo
(
testId
);
final
List
<
ApiTestFile
>
loadTestFiles
=
ApiTestFileMapper
.
selectByExample
(
ApiTestFileExample
);
if
(
CollectionUtils
.
isEmpty
(
loadTestFiles
))
{
return
null
;
}
return
fileMetadataMapper
.
selectByPrimaryKey
(
loadTestFiles
.
get
(
0
).
getFileId
());
}
public
FileContent
getFileContent
(
String
fileId
)
{
return
fileContentMapper
.
selectByPrimaryKey
(
fileId
);
}
...
...
@@ -101,6 +86,21 @@ public class FileService {
return
fileMetadata
;
}
public
FileMetadata
copyFile
(
String
fileId
)
{
FileMetadata
fileMetadata
=
fileMetadataMapper
.
selectByPrimaryKey
(
fileId
);
FileContent
fileContent
=
getFileContent
(
fileId
);
if
(
fileMetadata
!=
null
&&
fileContent
!=
null
)
{
fileMetadata
.
setId
(
UUID
.
randomUUID
().
toString
());
fileMetadata
.
setCreateTime
(
System
.
currentTimeMillis
());
fileMetadata
.
setUpdateTime
(
System
.
currentTimeMillis
());
fileMetadataMapper
.
insert
(
fileMetadata
);
fileContent
.
setFileId
(
fileMetadata
.
getId
());
fileContentMapper
.
insert
(
fileContent
);
}
return
fileMetadata
;
}
private
FileType
getFileType
(
String
filename
)
{
int
s
=
filename
.
lastIndexOf
(
"."
)
+
1
;
String
type
=
filename
.
substring
(
s
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录