Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
kt-keystone
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
kt-keystone
Commits
01551216
提交
01551216
authored
8月 04, 2022
作者:
mry
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(web): swagger解析,以及数据导入
上级
25839107
显示空白字符变更
内嵌
并排
正在显示
25 个修改的文件
包含
773 行增加
和
171 行删除
+773
-171
Case.java
kt-database/src/main/java/org/matrix/entity/Case.java
+14
-8
InterfaceDoc.java
...atabase/src/main/java/org/matrix/entity/InterfaceDoc.java
+7
-0
InterfaceGrouping.java
...se/src/main/java/org/matrix/entity/InterfaceGrouping.java
+8
-0
SyncStatus.java
kt-database/src/main/java/org/matrix/enums/SyncStatus.java
+0
-1
ICaseService.java
...tabase/src/main/java/org/matrix/service/ICaseService.java
+13
-0
IEnvironmentService.java
...src/main/java/org/matrix/service/IEnvironmentService.java
+0
-1
IInterfaceDocService.java
...rc/main/java/org/matrix/service/IInterfaceDocService.java
+2
-2
IInterfaceGroupingService.java
...in/java/org/matrix/service/IInterfaceGroupingService.java
+1
-0
IMouldDocService.java
...se/src/main/java/org/matrix/service/IMouldDocService.java
+3
-2
CaseServiceImpl.java
...rc/main/java/org/matrix/service/impl/CaseServiceImpl.java
+140
-0
EnvironmentServiceImpl.java
.../java/org/matrix/service/impl/EnvironmentServiceImpl.java
+14
-0
InterfaceDocServiceImpl.java
...java/org/matrix/service/impl/InterfaceDocServiceImpl.java
+64
-41
MouldDocServiceImpl.java
...ain/java/org/matrix/service/impl/MouldDocServiceImpl.java
+40
-21
InterfaceDocVo.java
kt-database/src/main/java/org/matrix/vo/InterfaceDocVo.java
+116
-0
InterfaceGroupVo.java
...atabase/src/main/java/org/matrix/vo/InterfaceGroupVo.java
+89
-0
InterfaceVo.java
kt-database/src/main/java/org/matrix/vo/InterfaceVo.java
+64
-4
MouldVo.java
kt-database/src/main/java/org/matrix/vo/MouldVo.java
+21
-0
RecursionInterface.java
...abase/src/main/java/org/matrix/vo/RecursionInterface.java
+26
-0
TestCaseVo.java
kt-database/src/main/java/org/matrix/vo/TestCaseVo.java
+76
-0
CaseController.java
...n/java/org/matrix/autotest/controller/CaseController.java
+41
-9
InterfaceDocController.java
...rg/matrix/autotest/controller/InterfaceDocController.java
+11
-17
InterfaceGroupingController.java
...trix/autotest/controller/InterfaceGroupingController.java
+4
-12
MouldDocController.java
...va/org/matrix/autotest/controller/MouldDocController.java
+1
-20
MouldGroupingController.java
...g/matrix/autotest/controller/MouldGroupingController.java
+1
-14
SwaggerHandleController.java
...g/matrix/autotest/controller/SwaggerHandleController.java
+17
-19
没有找到文件。
kt-database/src/main/java/org/matrix/entity/Case.java
浏览文件 @
01551216
...
@@ -9,7 +9,8 @@ import lombok.AllArgsConstructor;
...
@@ -9,7 +9,8 @@ import lombok.AllArgsConstructor;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
org.matrix.entity.BaseEntity
;
import
org.matrix.vo.TestCaseVo
;
import
org.springframework.beans.BeanUtils
;
/**
/**
* <p>
* <p>
...
@@ -41,6 +42,13 @@ public class Case extends BaseEntity {
...
@@ -41,6 +42,13 @@ public class Case extends BaseEntity {
@ApiModelProperty
(
"接口文档id"
)
@ApiModelProperty
(
"接口文档id"
)
private
Long
docId
;
private
Long
docId
;
/**
* 请求方式
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"请求方式"
)
private
String
httpMethod
;
/**
/**
* 参数详情(包括参数值)
* 参数详情(包括参数值)
*/
*/
...
@@ -69,11 +77,9 @@ public class Case extends BaseEntity {
...
@@ -69,11 +77,9 @@ public class Case extends BaseEntity {
@ApiModelProperty
(
"项目id"
)
@ApiModelProperty
(
"项目id"
)
private
Long
projectId
;
private
Long
projectId
;
/**
public
TestCaseVo
toTestCaseVo
()
{
* 环境id
TestCaseVo
testCaseVo
=
new
TestCaseVo
();
*/
BeanUtils
.
copyProperties
(
this
,
testCaseVo
);
@TableField
(
fill
=
FieldFill
.
UPDATE
)
return
testCaseVo
;
@ApiModelProperty
(
"环境id"
)
}
private
Long
envId
;
}
}
kt-database/src/main/java/org/matrix/entity/InterfaceDoc.java
浏览文件 @
01551216
...
@@ -10,6 +10,8 @@ import lombok.Data;
...
@@ -10,6 +10,8 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
org.matrix.enums.SyncStatus
;
import
org.matrix.enums.SyncStatus
;
import
org.matrix.vo.InterfaceDocVo
;
import
org.springframework.beans.BeanUtils
;
/**
/**
* <p>
* <p>
...
@@ -111,4 +113,9 @@ public class InterfaceDoc extends BaseEntity {
...
@@ -111,4 +113,9 @@ public class InterfaceDoc extends BaseEntity {
@ApiModelProperty
(
"负责人"
)
@ApiModelProperty
(
"负责人"
)
private
String
dutyPeople
;
private
String
dutyPeople
;
public
InterfaceDocVo
toInterfaceDocVo
()
{
InterfaceDocVo
interfaceDocVo
=
new
InterfaceDocVo
();
BeanUtils
.
copyProperties
(
this
,
interfaceDocVo
);
return
interfaceDocVo
;
}
}
}
kt-database/src/main/java/org/matrix/entity/InterfaceGrouping.java
浏览文件 @
01551216
...
@@ -9,6 +9,8 @@ import lombok.AllArgsConstructor;
...
@@ -9,6 +9,8 @@ import lombok.AllArgsConstructor;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
org.matrix.vo.InterfaceGroupVo
;
import
org.springframework.beans.BeanUtils
;
/**
/**
* <p>
* <p>
...
@@ -75,4 +77,10 @@ public class InterfaceGrouping extends BaseEntity {
...
@@ -75,4 +77,10 @@ public class InterfaceGrouping extends BaseEntity {
@ApiModelProperty
(
"父类id(根目录默认为0)"
)
@ApiModelProperty
(
"父类id(根目录默认为0)"
)
private
Long
interfaceGroupingId
;
private
Long
interfaceGroupingId
;
public
InterfaceGroupVo
toInterfaceGroupVo
()
{
InterfaceGroupVo
interfaceGroupVo
=
new
InterfaceGroupVo
();
BeanUtils
.
copyProperties
(
this
,
interfaceGroupVo
);
return
interfaceGroupVo
;
}
}
}
kt-database/src/main/java/org/matrix/enums/SyncStatus.java
浏览文件 @
01551216
...
@@ -46,7 +46,6 @@ public enum SyncStatus {
...
@@ -46,7 +46,6 @@ public enum SyncStatus {
OTHER
(
4
,
"上次导入不存在"
);
OTHER
(
4
,
"上次导入不存在"
);
@EnumValue
@EnumValue
@JsonValue
private
final
int
code
;
private
final
int
code
;
/**
/**
...
...
kt-database/src/main/java/org/matrix/service/ICaseService.java
浏览文件 @
01551216
...
@@ -2,10 +2,23 @@ package org.matrix.service;
...
@@ -2,10 +2,23 @@ package org.matrix.service;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
org.matrix.entity.Case
;
import
org.matrix.entity.Case
;
import
org.matrix.vo.InterfaceGroupVo
;
import
org.matrix.vo.RecursionInterface
;
import
java.util.List
;
/**
/**
* @author mruny
* @author mruny
* @create 2022/7/18 11:28:08
* @create 2022/7/18 11:28:08
*/
*/
public
interface
ICaseService
extends
IService
<
Case
>
{
public
interface
ICaseService
extends
IService
<
Case
>
{
/**
* 查询所有数据
*
* @param projectId 项目id
* @return 所有结果
*/
InterfaceGroupVo
getAll
(
Long
projectId
);
}
}
kt-database/src/main/java/org/matrix/service/IEnvironmentService.java
浏览文件 @
01551216
...
@@ -16,7 +16,6 @@ import org.matrix.vo.StatusCode;
...
@@ -16,7 +16,6 @@ import org.matrix.vo.StatusCode;
public
interface
IEnvironmentService
extends
IService
<
Environment
>
{
public
interface
IEnvironmentService
extends
IService
<
Environment
>
{
/**
/**
*
* @param isDefault
* @param isDefault
* @param wrappers
* @param wrappers
*/
*/
...
...
kt-database/src/main/java/org/matrix/service/IInterfaceDocService.java
浏览文件 @
01551216
...
@@ -20,8 +20,8 @@ public interface IInterfaceDocService extends IService<InterfaceDoc> {
...
@@ -20,8 +20,8 @@ public interface IInterfaceDocService extends IService<InterfaceDoc> {
* @param envId 环境id
* @param envId 环境id
* @param pattern 导入方式(1:同url覆盖,2:同url同组覆盖,3:同url不同步,4:同url同组不同步,5:同时保留)
* @param pattern 导入方式(1:同url覆盖,2:同url同组覆盖,3:同url不同步,4:同url同组不同步,5:同时保留)
* @param interfaceId 上级分组
* @param interfaceId 上级分组
* @param bool 是否导入测试用例
* @return 导入结果
* @return 导入结果
*/
*/
StatusCode
importInterfaceDoc
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
int
pattern
,
Long
interfaceId
,
boolean
bool
);
StatusCode
importInterfaceDoc
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
int
pattern
,
Long
interfaceId
);
}
}
kt-database/src/main/java/org/matrix/service/IInterfaceGroupingService.java
浏览文件 @
01551216
...
@@ -14,4 +14,5 @@ public interface IInterfaceGroupingService extends IService<InterfaceGrouping> {
...
@@ -14,4 +14,5 @@ public interface IInterfaceGroupingService extends IService<InterfaceGrouping> {
* @param id 接口分组主键id
* @param id 接口分组主键id
*/
*/
void
removeInterfaceGrouping
(
Long
id
);
void
removeInterfaceGrouping
(
Long
id
);
}
}
kt-database/src/main/java/org/matrix/service/IMouldDocService.java
浏览文件 @
01551216
...
@@ -2,6 +2,7 @@ package org.matrix.service;
...
@@ -2,6 +2,7 @@ package org.matrix.service;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
org.matrix.entity.MouldDoc
;
import
org.matrix.entity.MouldDoc
;
import
org.matrix.vo.MouldVo
;
import
org.matrix.vo.StatusCode
;
import
org.matrix.vo.StatusCode
;
import
java.util.List
;
import
java.util.List
;
...
@@ -15,12 +16,12 @@ public interface IMouldDocService extends IService<MouldDoc> {
...
@@ -15,12 +16,12 @@ public interface IMouldDocService extends IService<MouldDoc> {
/**
/**
* 导入数据模型文档
* 导入数据模型文档
*
*
* @param mouldDocs 数据模型文档对象集合
* @param mouldDocs 数据模型文档对象集合
Vo
* @param projectId 项目id
* @param projectId 项目id
* @param pattern 导入方式(1:同名覆盖,2:同名同组覆盖,3:同名不同步,4:同名同组不同步,5:同时保留)
* @param pattern 导入方式(1:同名覆盖,2:同名同组覆盖,3:同名不同步,4:同名同组不同步,5:同时保留)
* @param mouldId 上级分组
* @param mouldId 上级分组
* @return 导入结果
* @return 导入结果
*/
*/
StatusCode
importMouldDoc
(
List
<
Mould
Doc
>
mouldDocs
,
Long
projectId
,
int
pattern
,
Long
mouldId
);
StatusCode
importMouldDoc
(
List
<
Mould
Vo
>
mouldDocs
,
Long
projectId
,
int
pattern
,
Long
mouldId
);
}
}
kt-database/src/main/java/org/matrix/service/impl/CaseServiceImpl.java
浏览文件 @
01551216
package
org
.
matrix
.
service
.
impl
;
package
org
.
matrix
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.matrix.entity.Case
;
import
org.matrix.entity.Case
;
import
org.matrix.entity.InterfaceDoc
;
import
org.matrix.entity.InterfaceGrouping
;
import
org.matrix.mapper.CaseMapper
;
import
org.matrix.mapper.CaseMapper
;
import
org.matrix.mapper.InterfaceDocMapper
;
import
org.matrix.mapper.InterfaceGroupingMapper
;
import
org.matrix.service.ICaseService
;
import
org.matrix.service.ICaseService
;
import
org.matrix.vo.InterfaceDocVo
;
import
org.matrix.vo.InterfaceGroupVo
;
import
org.matrix.vo.TestCaseVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
/**
/**
* @author mruny
* @author mruny
...
@@ -12,4 +28,128 @@ import org.springframework.stereotype.Service;
...
@@ -12,4 +28,128 @@ import org.springframework.stereotype.Service;
*/
*/
@Service
@Service
public
class
CaseServiceImpl
extends
ServiceImpl
<
CaseMapper
,
Case
>
implements
ICaseService
{
public
class
CaseServiceImpl
extends
ServiceImpl
<
CaseMapper
,
Case
>
implements
ICaseService
{
@Autowired
private
InterfaceDocMapper
interfaceDocMapper
;
@Autowired
private
InterfaceGroupingMapper
interfaceGroupingMapper
;
@Autowired
private
CaseMapper
caseMapper
;
/**
* 查出所有分组以及分组下的接口和测试用例(树状结构)
*
* @param interfaceDocVosMap 所有接口文档,key : 接口文档分组id , value : 接口文档集合
* @param interfaceGroupingVosMap 所有分组 key : 父分组id , value : 分组对象集合
* @param testCaseVosMap 所有测试用例 key : 接口文档主键id , value : 测试用例集合
* @param interfaceGroupVos 父级分组
*/
public
void
getRecursiveGrouping
(
Map
<
Long
,
List
<
InterfaceDocVo
>>
interfaceDocVosMap
,
Map
<
Long
,
List
<
InterfaceGroupVo
>>
interfaceGroupingVosMap
,
Map
<
Long
,
List
<
TestCaseVo
>>
testCaseVosMap
,
List
<
InterfaceGroupVo
>
interfaceGroupVos
)
{
if
(
interfaceGroupVos
.
size
()
!=
0
)
{
//根据父分组,查出所有的子分组
for
(
InterfaceGroupVo
interfaceGroupVo
:
interfaceGroupVos
)
{
if
(
interfaceGroupVo
.
getId
()
!=
null
)
{
//父分组id
Long
groupId
=
interfaceGroupVo
.
getId
();
//分组下的分组
List
<
InterfaceGroupVo
>
interfaceGroupVoList
=
interfaceGroupingVosMap
.
get
(
groupId
);
//分组下的接口
List
<
InterfaceDocVo
>
interfaceDocVoList
=
interfaceDocVosMap
.
get
(
groupId
);
//找接口下的测试用例
if
(
interfaceDocVoList
!=
null
)
{
for
(
InterfaceDocVo
interfaceDocVo
:
interfaceDocVoList
)
{
if
(
interfaceDocVo
.
getId
()
!=
null
)
{
Long
docId
=
interfaceDocVo
.
getId
();
List
<
TestCaseVo
>
testCaseVos
=
testCaseVosMap
.
get
(
docId
);
interfaceDocVo
.
setTestCaseVos
(
testCaseVos
);
}
}
}
interfaceGroupVo
.
setInterfaceGroupVos
(
interfaceGroupVoList
);
interfaceGroupVo
.
setInterfaceDocVos
(
interfaceDocVoList
);
if
(!
CollectionUtils
.
isEmpty
(
interfaceGroupVoList
))
{
getRecursiveGrouping
(
interfaceDocVosMap
,
interfaceGroupingVosMap
,
testCaseVosMap
,
interfaceGroupVoList
);
}
}
}
}
}
@Override
public
InterfaceGroupVo
getAll
(
Long
projectId
)
{
InterfaceGroupVo
groupVo
=
new
InterfaceGroupVo
();
//分组
List
<
InterfaceGroupVo
>
interfaceGroupVos
=
new
ArrayList
<>();
List
<
InterfaceGrouping
>
interfaceGroupings
=
Optional
.
ofNullable
(
interfaceGroupingMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
InterfaceGrouping
.
class
)
.
eq
(
InterfaceGrouping:
:
getProjectId
,
projectId
))).
orElse
(
new
ArrayList
<>());
for
(
InterfaceGrouping
interfaceGrouping
:
interfaceGroupings
)
{
InterfaceGroupVo
interfaceGroupVo
=
interfaceGrouping
.
toInterfaceGroupVo
();
interfaceGroupVos
.
add
(
interfaceGroupVo
);
}
//key: 父分组id value : 接口分组集合
Map
<
Long
,
List
<
InterfaceGroupVo
>>
interfaceGroupingVosMap
=
interfaceGroupVos
.
stream
()
.
filter
(
interfaceGroupVo
->
interfaceGroupVo
!=
null
&&
interfaceGroupVo
.
getInterfaceGroupingId
()
!=
null
)
.
collect
(
Collectors
.
groupingBy
(
InterfaceGroupVo:
:
getInterfaceGroupingId
));
//根目录下的所有分组
List
<
InterfaceGroupVo
>
firstInterfaceVoGroupings
=
new
ArrayList
<>();
if
(
interfaceGroupingVosMap
.
get
(-
1L
)
!=
null
)
{
firstInterfaceVoGroupings
=
interfaceGroupingVosMap
.
get
(-
1L
);
groupVo
.
setInterfaceGroupVos
(
firstInterfaceVoGroupings
);
}
//接口文档
List
<
InterfaceDocVo
>
interfaceDocVos
=
new
ArrayList
<>();
List
<
InterfaceDoc
>
interfaceDocs
=
Optional
.
ofNullable
(
interfaceDocMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
InterfaceDoc
.
class
)
.
eq
(
InterfaceDoc:
:
getProjectId
,
projectId
))).
orElse
(
new
ArrayList
<>());
for
(
InterfaceDoc
interfaceDoc
:
interfaceDocs
)
{
InterfaceDocVo
interfaceDocVo
=
interfaceDoc
.
toInterfaceDocVo
();
interfaceDocVos
.
add
(
interfaceDocVo
);
}
//key : 接口分组主键id value : 接口文档集合
Map
<
Long
,
List
<
InterfaceDocVo
>>
interfaceDocVosMap
=
interfaceDocVos
.
stream
()
.
filter
(
interfaceDocVo
->
interfaceDocVo
!=
null
&&
interfaceDocVo
.
getInterfaceGroupId
()
!=
null
)
.
collect
(
Collectors
.
groupingBy
(
InterfaceDocVo:
:
getInterfaceGroupId
));
//根目录下的接口
List
<
InterfaceDocVo
>
firstInterfaceDocVos
=
new
ArrayList
<>();
if
(
interfaceDocVosMap
.
get
(-
1L
)
!=
null
)
{
firstInterfaceDocVos
=
interfaceDocVosMap
.
get
(-
1L
);
groupVo
.
setInterfaceDocVos
(
firstInterfaceDocVos
);
}
//所有测试用例
List
<
TestCaseVo
>
testCaseVos
=
new
ArrayList
<>();
List
<
Case
>
cases
=
Optional
.
ofNullable
(
caseMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
Case
.
class
)
.
eq
(
Case:
:
getProjectId
,
projectId
))).
orElse
(
new
ArrayList
<>());
for
(
Case
aCase
:
cases
)
{
TestCaseVo
testCaseVo
=
aCase
.
toTestCaseVo
();
testCaseVos
.
add
(
testCaseVo
);
}
//key : 接口文档id value : 测试用例集合
Map
<
Long
,
List
<
TestCaseVo
>>
testCaseVosMap
=
testCaseVos
.
stream
()
.
filter
(
testCaseVo
->
testCaseVo
!=
null
&&
testCaseVo
.
getDocId
()
!=
null
)
.
collect
(
Collectors
.
groupingBy
(
TestCaseVo:
:
getDocId
));
//外层接口下的测试用例
for
(
InterfaceDocVo
firstInterfaceDocVo
:
firstInterfaceDocVos
)
{
if
(
firstInterfaceDocVo
.
getId
()
!=
null
)
{
Long
id
=
firstInterfaceDocVo
.
getId
();
//接口中所有的测试用例
List
<
TestCaseVo
>
testCaseVoList
=
testCaseVosMap
.
get
(
id
);
firstInterfaceDocVo
.
setTestCaseVos
(
testCaseVoList
);
}
}
getRecursiveGrouping
(
interfaceDocVosMap
,
interfaceGroupingVosMap
,
testCaseVosMap
,
firstInterfaceVoGroupings
);
return
groupVo
;
}
}
}
kt-database/src/main/java/org/matrix/service/impl/EnvironmentServiceImpl.java
浏览文件 @
01551216
package
org
.
matrix
.
service
.
impl
;
package
org
.
matrix
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.matrix.entity.Environment
;
import
org.matrix.entity.Environment
;
import
org.matrix.enums.SwaggerDataType
;
import
org.matrix.enums.SwaggerDataType
;
...
@@ -11,6 +12,8 @@ import org.matrix.vo.StatusCode;
...
@@ -11,6 +12,8 @@ import org.matrix.vo.StatusCode;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.Optional
;
/**
/**
...
@@ -43,9 +46,20 @@ public class EnvironmentServiceImpl extends ServiceImpl<EnvironmentMapper, Envir
...
@@ -43,9 +46,20 @@ public class EnvironmentServiceImpl extends ServiceImpl<EnvironmentMapper, Envir
StatusCode
statusCode
=
new
StatusCode
();
StatusCode
statusCode
=
new
StatusCode
();
statusCode
.
setSwaggerDataType
(
SwaggerDataType
.
ENV
);
statusCode
.
setSwaggerDataType
(
SwaggerDataType
.
ENV
);
if
(
environment
!=
null
&&
environment
.
getIp
()
!=
null
)
{
if
(
environment
!=
null
&&
environment
.
getIp
()
!=
null
)
{
List
<
Environment
>
environments
=
Optional
.
ofNullable
(
environmentMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
Environment
.
class
)
.
eq
(
Environment:
:
getProjectId
,
environment
.
getProjectId
()))).
orElse
(
new
ArrayList
<>());
for
(
Environment
env
:
environments
)
{
if
(
environment
.
getIp
().
equals
(
env
.
getIp
()))
{
Integer
integer
=
Optional
.
of
(
environmentMapper
.
updateById
(
environment
)).
orElseThrow
(()
->
new
GlobalException
(
"修改失败"
));
updateNum
=
updateNum
+
integer
;
}
break
;
}
if
(
updateNum
==
0
)
{
Integer
integer
=
Optional
.
of
(
environmentMapper
.
insert
(
environment
)).
orElseThrow
(()
->
new
GlobalException
(
"添加失败"
));
Integer
integer
=
Optional
.
of
(
environmentMapper
.
insert
(
environment
)).
orElseThrow
(()
->
new
GlobalException
(
"添加失败"
));
saveNum
=
saveNum
+
integer
;
saveNum
=
saveNum
+
integer
;
}
}
}
statusCode
.
setSaveNum
(
saveNum
);
statusCode
.
setSaveNum
(
saveNum
);
statusCode
.
setSaveNum
(
saveNum
);
statusCode
.
setSaveNum
(
saveNum
);
statusCode
.
setUpdateNum
(
updateNum
);
statusCode
.
setUpdateNum
(
updateNum
);
...
...
kt-database/src/main/java/org/matrix/service/impl/InterfaceDocServiceImpl.java
浏览文件 @
01551216
...
@@ -9,7 +9,6 @@ import org.matrix.enums.SyncStatus;
...
@@ -9,7 +9,6 @@ import org.matrix.enums.SyncStatus;
import
org.matrix.exception.GlobalException
;
import
org.matrix.exception.GlobalException
;
import
org.matrix.mapper.InterfaceDocMapper
;
import
org.matrix.mapper.InterfaceDocMapper
;
import
org.matrix.mapper.InterfaceGroupingMapper
;
import
org.matrix.mapper.InterfaceGroupingMapper
;
import
org.matrix.service.ICaseService
;
import
org.matrix.service.IInterfaceDocService
;
import
org.matrix.service.IInterfaceDocService
;
import
org.matrix.vo.ImportInterfaceDoc
;
import
org.matrix.vo.ImportInterfaceDoc
;
import
org.matrix.vo.InterfaceVo
;
import
org.matrix.vo.InterfaceVo
;
...
@@ -34,32 +33,29 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -34,32 +33,29 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
@Autowired
@Autowired
private
InterfaceGroupingMapper
interfaceGroupingMapper
;
private
InterfaceGroupingMapper
interfaceGroupingMapper
;
@Autowired
private
ICaseService
caseService
;
@Override
@Override
public
StatusCode
importInterfaceDoc
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
int
pattern
,
Long
interfaceId
,
boolean
bool
)
{
public
StatusCode
importInterfaceDoc
(
List
<
InterfaceVo
>
tagSummaries
,
Long
projectId
,
Long
envId
,
int
pattern
,
Long
interfaceId
)
{
StatusCode
statusCode
;
StatusCode
statusCode
;
switch
(
pattern
)
{
switch
(
pattern
)
{
//1. 同名覆盖
//1. 同名覆盖
case
ImportInterfaceDoc
.
URL_OVERWRITE
:
case
ImportInterfaceDoc
.
URL_OVERWRITE
:
statusCode
=
nameOverwrite
(
interfaceVos
,
projectId
,
envId
,
interfaceId
,
bool
);
statusCode
=
nameOverwrite
(
tagSummaries
,
projectId
,
envId
,
interfaceId
);
break
;
break
;
//2. 同名同组覆盖
//2. 同名同组覆盖
case
ImportInterfaceDoc
.
URL_GROUPING_OVERWRITE
:
case
ImportInterfaceDoc
.
URL_GROUPING_OVERWRITE
:
statusCode
=
nameGroupingOverwrite
(
interfaceVos
,
projectId
,
envId
,
interfaceId
,
bool
);
statusCode
=
nameGroupingOverwrite
(
tagSummaries
,
projectId
,
envId
,
interfaceId
);
break
;
break
;
//3. 同名不覆盖
//3. 同名不覆盖
case
ImportInterfaceDoc
.
NOT_URL_OVERWRITE
:
case
ImportInterfaceDoc
.
NOT_URL_OVERWRITE
:
statusCode
=
notNameOverwrite
(
interfaceVos
,
projectId
,
envId
,
interfaceId
,
bool
);
statusCode
=
notNameOverwrite
(
tagSummaries
,
projectId
,
envId
,
interfaceId
);
break
;
break
;
//4. 同名同组不覆盖
//4. 同名同组不覆盖
case
ImportInterfaceDoc
.
NOT_URL_GROUPING_OVERWRITE
:
case
ImportInterfaceDoc
.
NOT_URL_GROUPING_OVERWRITE
:
statusCode
=
notNameGroupingOverwrite
(
interfaceVos
,
projectId
,
envId
,
interfaceId
,
bool
);
statusCode
=
notNameGroupingOverwrite
(
tagSummaries
,
projectId
,
envId
,
interfaceId
);
break
;
break
;
//5. 同时存在
//5. 同时存在
case
ImportInterfaceDoc
.
COEXIST
:
case
ImportInterfaceDoc
.
COEXIST
:
statusCode
=
coexist
(
interfaceVos
,
projectId
,
envId
,
interfaceId
,
bool
);
statusCode
=
coexist
(
tagSummaries
,
projectId
,
envId
,
interfaceId
);
break
;
break
;
default
:
default
:
throw
new
GlobalException
(
"请选择正确的导入类型"
);
throw
new
GlobalException
(
"请选择正确的导入类型"
);
...
@@ -69,14 +65,15 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -69,14 +65,15 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
/**
/**
* 1. 同url覆盖
* 1. 同url覆盖
* <p>
* // * @param interfaceVos 接口文档Vo类
*
*
* @param interfaceVos 接口文档Vo类
* @param projectId 项目id
* @param projectId 项目id
* @param envId 环境id
* @param envId 环境id
* @param interfaceId 父级分组
* @param interfaceId 父级分组
* @return 导入情况
* @return 导入情况
*/
*/
private
StatusCode
nameOverwrite
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
Long
interfaceId
,
boolean
bool
)
{
private
StatusCode
nameOverwrite
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
Long
interfaceId
)
{
int
saveNum
=
0
;
int
saveNum
=
0
;
int
updateNum
=
0
;
int
updateNum
=
0
;
int
ignoreNum
=
0
;
int
ignoreNum
=
0
;
...
@@ -85,8 +82,8 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -85,8 +82,8 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
if
(!
CollectionUtils
.
isEmpty
(
interfaceVos
))
{
if
(!
CollectionUtils
.
isEmpty
(
interfaceVos
))
{
//导入的接口 将当前导入的对象按照tag分组
//导入的接口 将当前导入的对象按照tag分组
Map
<
String
,
List
<
InterfaceVo
>>
tagMap
=
interfaceVos
.
stream
()
Map
<
String
,
List
<
InterfaceVo
>>
tagMap
=
interfaceVos
.
stream
()
.
filter
(
interfaceVo
->
interfaceVo
!=
null
&&
interfaceVo
.
getTag
()
!=
null
&&
!
""
.
equals
(
interfaceVo
.
getTag
()))
.
filter
(
interfaceVo
->
interfaceVo
!=
null
&&
interfaceVo
.
getTag
s
()
!=
null
&&
!
""
.
equals
(
interfaceVo
.
getTags
()))
.
collect
(
Collectors
.
groupingBy
(
InterfaceVo:
:
getTag
));
.
collect
(
Collectors
.
groupingBy
(
InterfaceVo:
:
getTag
s
));
//当前项目中所有的pathUrl(唯一的),同名的取第一个
//当前项目中所有的pathUrl(唯一的),同名的取第一个
List
<
InterfaceDoc
>
interfaceDocList
=
getDocByPathUrl
(
projectId
);
List
<
InterfaceDoc
>
interfaceDocList
=
getDocByPathUrl
(
projectId
);
if
(!
CollectionUtils
.
isEmpty
(
tagMap
))
{
if
(!
CollectionUtils
.
isEmpty
(
tagMap
))
{
...
@@ -95,12 +92,18 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -95,12 +92,18 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
//tag 当前分组
//tag 当前分组
for
(
String
tag
:
tags
)
{
for
(
String
tag
:
tags
)
{
//判断分组是否存在,如果不存在就创建,存在就直接用存在的分组id(多个取第一个)
//判断分组是否存在,如果不存在就创建,存在就直接用存在的分组id(多个取第一个)
Long
groupingId
=
getInterfaceGroupingId
(
projectId
,
interfaceId
,
tag
);
Long
groupingId
=
getInterfaceGroupingId
(
projectId
,
interfaceId
,
tag
,
envId
);
//当前分组下的所有接口+tag
//当前分组下的所有接口+tag
List
<
InterfaceVo
>
interfaceVoList
=
tagMap
.
get
(
tag
);
List
<
InterfaceVo
>
interfaceVoList
=
tagMap
.
get
(
tag
);
for
(
InterfaceVo
interfaceVo
:
interfaceVoList
)
{
for
(
InterfaceVo
interfaceVo
:
interfaceVoList
)
{
//当前分组下的接口
//当前分组下的接口
InterfaceDoc
interfaceDoc
=
interfaceVo
.
toInterfaceDoc
();
InterfaceDoc
interfaceDoc
=
interfaceVo
.
toInterfaceDoc
();
// if (interfaceVo.getParameters().toJSONString() != null) {
// interfaceDoc.setParameters(interfaceVo.getParameters().toJSONString());
// }
// if (interfaceVo.getResponses().toJSONString() != null) {
// interfaceDoc.setResponses(interfaceVo.getResponses().toJSONString());
// }
interfaceDoc
.
setEnvId
(
envId
);
interfaceDoc
.
setEnvId
(
envId
);
interfaceDoc
.
setInterfaceGroupId
(
groupingId
);
interfaceDoc
.
setInterfaceGroupId
(
groupingId
);
interfaceDoc
.
setProjectId
(
projectId
);
interfaceDoc
.
setProjectId
(
projectId
);
...
@@ -116,9 +119,6 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -116,9 +119,6 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
//覆盖数据也就是更新
//覆盖数据也就是更新
Integer
integer
=
Optional
.
of
(
interfaceDocMapper
.
updateById
(
interfaceDoc
)).
orElseThrow
(()
->
new
GlobalException
(
"修改失败"
));
Integer
integer
=
Optional
.
of
(
interfaceDocMapper
.
updateById
(
interfaceDoc
)).
orElseThrow
(()
->
new
GlobalException
(
"修改失败"
));
//如果导入需要导入测试用例
//如果导入需要导入测试用例
if
(!
bool
)
{
}
updateNum
=
updateNum
+
integer
;
updateNum
=
updateNum
+
integer
;
//然后将查询到已经存在的数据删除掉,剩下的就是本次导入不存在,但是原始数据中存在的
//然后将查询到已经存在的数据删除掉,剩下的就是本次导入不存在,但是原始数据中存在的
interfaceDocList
.
remove
(
interfaceDoc
);
interfaceDocList
.
remove
(
interfaceDoc
);
...
@@ -147,13 +147,12 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -147,13 +147,12 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
/**
/**
* 2. 同url同分组覆盖
* 2. 同url同分组覆盖
*
*
* @param interfaceVos 接口文档Vo类
* @param projectId 项目id
* @param projectId 项目id
* @param envId 环境id
* @param envId 环境id
* @param interfaceId 父级分组
* @param interfaceId 父级分组
* @return 导入情况
* @return 导入情况
*/
*/
private
StatusCode
nameGroupingOverwrite
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
Long
interfaceId
,
boolean
bool
)
{
private
StatusCode
nameGroupingOverwrite
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
Long
interfaceId
)
{
int
saveNum
=
0
;
int
saveNum
=
0
;
int
updateNum
=
0
;
int
updateNum
=
0
;
int
ignoreNum
=
0
;
int
ignoreNum
=
0
;
...
@@ -164,22 +163,28 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -164,22 +163,28 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
List
<
InterfaceDoc
>
docByPathUrlAndGrouping
=
getDocByPathUrlAndGrouping
(
projectId
);
List
<
InterfaceDoc
>
docByPathUrlAndGrouping
=
getDocByPathUrlAndGrouping
(
projectId
);
//导入的数据根据tag分组
//导入的数据根据tag分组
Map
<
String
,
List
<
InterfaceVo
>>
tagsMap
=
interfaceVos
.
stream
()
Map
<
String
,
List
<
InterfaceVo
>>
tagsMap
=
interfaceVos
.
stream
()
.
filter
(
interfaceVo
->
interfaceVo
!=
null
&&
interfaceVo
.
getTag
()
!=
null
&&
!
""
.
equals
(
interfaceVo
.
getTag
()))
.
filter
(
interfaceVo
->
interfaceVo
!=
null
&&
interfaceVo
.
getTag
s
()
!=
null
&&
!
""
.
equals
(
interfaceVo
.
getTags
()))
.
collect
(
Collectors
.
groupingBy
(
InterfaceVo:
:
getTag
));
.
collect
(
Collectors
.
groupingBy
(
InterfaceVo:
:
getTag
s
));
if
(!
CollectionUtils
.
isEmpty
(
tagsMap
))
{
if
(!
CollectionUtils
.
isEmpty
(
tagsMap
))
{
Set
<
String
>
tags
=
tagsMap
.
keySet
();
Set
<
String
>
tags
=
tagsMap
.
keySet
();
if
(!
CollectionUtils
.
isEmpty
(
tags
))
{
if
(!
CollectionUtils
.
isEmpty
(
tags
))
{
for
(
String
tag
:
tags
)
{
for
(
String
tag
:
tags
)
{
//判断分组是否存在,如果不存在就创建,存在就直接用存在的分组id(多个取第一个)
//判断分组是否存在,如果不存在就创建,存在就直接用存在的分组id(多个取第一个)
Long
groupingId
=
getInterfaceGroupingId
(
projectId
,
interfaceId
,
tag
);
Long
groupingId
=
getInterfaceGroupingId
(
projectId
,
interfaceId
,
tag
,
envId
);
//当前分组中的所有接口(导入的数据)
//当前分组中的所有接口(导入的数据)
List
<
InterfaceVo
>
interfaceVoList
=
tagsMap
.
get
(
tag
);
List
<
InterfaceVo
>
interfaceVoList
=
tagsMap
.
get
(
tag
);
for
(
InterfaceVo
interfaceVo
:
interfaceVoList
)
{
for
(
InterfaceVo
interfaceVo
:
interfaceVoList
)
{
//当前分组下的接口
//当前分组下的接口
InterfaceDoc
interfaceDoc
=
interfaceVo
.
toInterfaceDoc
();
InterfaceDoc
interfaceDoc
=
interfaceVo
.
toInterfaceDoc
();
// if (interfaceVo.getParameters().toJSONString() != null) {
// interfaceDoc.setParameters(interfaceVo.getParameters().toJSONString());
// }
// if (interfaceVo.getResponses().toJSONString() != null) {
// interfaceDoc.setResponses(interfaceVo.getResponses().toJSONString());
// }
interfaceDoc
.
setProjectId
(
projectId
);
interfaceDoc
.
setEnvId
(
envId
);
interfaceDoc
.
setEnvId
(
envId
);
interfaceDoc
.
setInterfaceGroupId
(
groupingId
);
interfaceDoc
.
setInterfaceGroupId
(
groupingId
);
interfaceDoc
.
setProjectId
(
projectId
);
//判断这条数据是否存在(当前项目,分组,url)
//判断这条数据是否存在(当前项目,分组,url)
List
<
InterfaceDoc
>
interfaceDocs
=
Optional
.
ofNullable
(
interfaceDocMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
InterfaceDoc
.
class
)
List
<
InterfaceDoc
>
interfaceDocs
=
Optional
.
ofNullable
(
interfaceDocMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
InterfaceDoc
.
class
)
.
eq
(
InterfaceDoc:
:
getProjectId
,
projectId
)
.
eq
(
InterfaceDoc:
:
getProjectId
,
projectId
)
...
@@ -221,13 +226,12 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -221,13 +226,12 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
/**
/**
* 3. 同url不覆盖
* 3. 同url不覆盖
*
*
* @param interfaceVos 接口文档Vo类
* @param projectId 项目id
* @param projectId 项目id
* @param envId 环境id
* @param envId 环境id
* @param interfaceId 父级分组
* @param interfaceId 父级分组
* @return 导入情况
* @return 导入情况
*/
*/
private
StatusCode
notNameOverwrite
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
Long
interfaceId
,
boolean
bool
)
{
private
StatusCode
notNameOverwrite
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
Long
interfaceId
)
{
int
saveNum
=
0
;
int
saveNum
=
0
;
int
updateNum
=
0
;
int
updateNum
=
0
;
int
ignoreNum
=
0
;
int
ignoreNum
=
0
;
...
@@ -238,15 +242,15 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -238,15 +242,15 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
List
<
InterfaceDoc
>
interfaceDocList
=
getDocByPathUrl
(
projectId
);
List
<
InterfaceDoc
>
interfaceDocList
=
getDocByPathUrl
(
projectId
);
//导入的接口 将当前导入的对象按照tag分组
//导入的接口 将当前导入的对象按照tag分组
Map
<
String
,
List
<
InterfaceVo
>>
tagMap
=
interfaceVos
.
stream
()
Map
<
String
,
List
<
InterfaceVo
>>
tagMap
=
interfaceVos
.
stream
()
.
filter
(
interfaceVo
->
interfaceVo
!=
null
&&
interfaceVo
.
getTag
()
!=
null
&&
!
""
.
equals
(
interfaceVo
.
getTag
()))
.
filter
(
interfaceVo
->
interfaceVo
!=
null
&&
interfaceVo
.
getTag
s
()
!=
null
&&
!
""
.
equals
(
interfaceVo
.
getTags
()))
.
collect
(
Collectors
.
groupingBy
(
InterfaceVo:
:
getTag
));
.
collect
(
Collectors
.
groupingBy
(
InterfaceVo:
:
getTag
s
));
if
(!
CollectionUtils
.
isEmpty
(
tagMap
))
{
if
(!
CollectionUtils
.
isEmpty
(
tagMap
))
{
Set
<
String
>
tags
=
tagMap
.
keySet
();
Set
<
String
>
tags
=
tagMap
.
keySet
();
if
(!
CollectionUtils
.
isEmpty
(
tags
))
{
if
(!
CollectionUtils
.
isEmpty
(
tags
))
{
//tag 当前分组
//tag 当前分组
for
(
String
tag
:
tags
)
{
for
(
String
tag
:
tags
)
{
//判断分组是否存在,如果不存在就创建,存在就直接用存在的分组id(多个取第一个)
//判断分组是否存在,如果不存在就创建,存在就直接用存在的分组id(多个取第一个)
Long
groupingId
=
getInterfaceGroupingId
(
projectId
,
interfaceId
,
tag
);
Long
groupingId
=
getInterfaceGroupingId
(
projectId
,
interfaceId
,
tag
,
envId
);
//当前分组下的所有接口+tag
//当前分组下的所有接口+tag
List
<
InterfaceVo
>
interfaceVoList
=
tagMap
.
get
(
tag
);
List
<
InterfaceVo
>
interfaceVoList
=
tagMap
.
get
(
tag
);
for
(
InterfaceVo
interfaceVo
:
interfaceVoList
)
{
for
(
InterfaceVo
interfaceVo
:
interfaceVoList
)
{
...
@@ -266,6 +270,12 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -266,6 +270,12 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
}
else
{
}
else
{
interfaceDoc
.
setEnvId
(
envId
);
interfaceDoc
.
setEnvId
(
envId
);
interfaceDoc
.
setInterfaceGroupId
(
groupingId
);
interfaceDoc
.
setInterfaceGroupId
(
groupingId
);
// if (interfaceVo.getParameters().toJSONString() != null) {
// interfaceDoc.setParameters(interfaceVo.getParameters().toJSONString());
// }
// if (interfaceVo.getResponses().toJSONString() != null) {
// interfaceDoc.setResponses(interfaceVo.getResponses().toJSONString());
// }
//不存在的话直接新增
//不存在的话直接新增
Integer
integer
=
Optional
.
of
(
interfaceDocMapper
.
insert
(
interfaceDoc
)).
orElseThrow
(()
->
new
GlobalException
(
"添加失败"
));
Integer
integer
=
Optional
.
of
(
interfaceDocMapper
.
insert
(
interfaceDoc
)).
orElseThrow
(()
->
new
GlobalException
(
"添加失败"
));
saveNum
=
saveNum
+
integer
;
saveNum
=
saveNum
+
integer
;
...
@@ -290,13 +300,12 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -290,13 +300,12 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
/**
/**
* 4. 同url同分组不覆盖
* 4. 同url同分组不覆盖
*
*
* @param interfaceVos 接口文档Vo类
* @param projectId 项目id
* @param projectId 项目id
* @param envId 环境id
* @param envId 环境id
* @param interfaceId 父级分组
* @param interfaceId 父级分组
* @return 导入情况
* @return 导入情况
*/
*/
private
StatusCode
notNameGroupingOverwrite
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
Long
interfaceId
,
boolean
bool
)
{
private
StatusCode
notNameGroupingOverwrite
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
Long
interfaceId
)
{
int
saveNum
=
0
;
int
saveNum
=
0
;
int
updateNum
=
0
;
int
updateNum
=
0
;
int
ignoreNum
=
0
;
int
ignoreNum
=
0
;
...
@@ -305,8 +314,8 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -305,8 +314,8 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
if
(!
CollectionUtils
.
isEmpty
(
interfaceVos
))
{
if
(!
CollectionUtils
.
isEmpty
(
interfaceVos
))
{
//导入的数据根据tag分组
//导入的数据根据tag分组
Map
<
String
,
List
<
InterfaceVo
>>
tagsMap
=
interfaceVos
.
stream
()
Map
<
String
,
List
<
InterfaceVo
>>
tagsMap
=
interfaceVos
.
stream
()
.
filter
(
interfaceVo
->
interfaceVo
!=
null
&&
interfaceVo
.
getTag
()
!=
null
&&
!
""
.
equals
(
interfaceVo
.
getTag
()))
.
filter
(
interfaceVo
->
interfaceVo
!=
null
&&
interfaceVo
.
getTag
s
()
!=
null
&&
!
""
.
equals
(
interfaceVo
.
getTags
()))
.
collect
(
Collectors
.
groupingBy
(
InterfaceVo:
:
getTag
));
.
collect
(
Collectors
.
groupingBy
(
InterfaceVo:
:
getTag
s
));
//当前项目中存在的数据,同名同组的取第一个
//当前项目中存在的数据,同名同组的取第一个
List
<
InterfaceDoc
>
docByPathUrlAndGrouping
=
getDocByPathUrlAndGrouping
(
projectId
);
List
<
InterfaceDoc
>
docByPathUrlAndGrouping
=
getDocByPathUrlAndGrouping
(
projectId
);
if
(!
CollectionUtils
.
isEmpty
(
tagsMap
))
{
if
(!
CollectionUtils
.
isEmpty
(
tagsMap
))
{
...
@@ -314,7 +323,7 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -314,7 +323,7 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
if
(!
CollectionUtils
.
isEmpty
(
tags
))
{
if
(!
CollectionUtils
.
isEmpty
(
tags
))
{
for
(
String
tag
:
tags
)
{
for
(
String
tag
:
tags
)
{
//判断分组是否存在,如果不存在就创建,存在就直接用存在的分组id(多个取第一个)
//判断分组是否存在,如果不存在就创建,存在就直接用存在的分组id(多个取第一个)
Long
groupingId
=
getInterfaceGroupingId
(
projectId
,
interfaceId
,
tag
);
Long
groupingId
=
getInterfaceGroupingId
(
projectId
,
interfaceId
,
tag
,
envId
);
//当前分组中的所有接口(导入的数据)
//当前分组中的所有接口(导入的数据)
List
<
InterfaceVo
>
interfaceVoList
=
tagsMap
.
get
(
tag
);
List
<
InterfaceVo
>
interfaceVoList
=
tagsMap
.
get
(
tag
);
for
(
InterfaceVo
interfaceVo
:
interfaceVoList
)
{
for
(
InterfaceVo
interfaceVo
:
interfaceVoList
)
{
...
@@ -323,6 +332,12 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -323,6 +332,12 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
interfaceDoc
.
setEnvId
(
envId
);
interfaceDoc
.
setEnvId
(
envId
);
interfaceDoc
.
setInterfaceGroupId
(
groupingId
);
interfaceDoc
.
setInterfaceGroupId
(
groupingId
);
interfaceDoc
.
setProjectId
(
projectId
);
interfaceDoc
.
setProjectId
(
projectId
);
// if (interfaceVo.getParameters().toJSONString() != null) {
// interfaceDoc.setParameters(interfaceVo.getParameters().toJSONString());
// }
// if (interfaceVo.getResponses().toJSONString() != null) {
// interfaceDoc.setResponses(interfaceVo.getResponses().toJSONString());
// }
//判断这条数据是否存在(当前项目,分组,url)
//判断这条数据是否存在(当前项目,分组,url)
List
<
InterfaceDoc
>
interfaceDocs
=
Optional
.
ofNullable
(
interfaceDocMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
InterfaceDoc
.
class
)
List
<
InterfaceDoc
>
interfaceDocs
=
Optional
.
ofNullable
(
interfaceDocMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
InterfaceDoc
.
class
)
.
eq
(
InterfaceDoc:
:
getProjectId
,
projectId
)
.
eq
(
InterfaceDoc:
:
getProjectId
,
projectId
)
...
@@ -360,13 +375,12 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -360,13 +375,12 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
/**
/**
* 5. 同时存在
* 5. 同时存在
*
*
* @param interfaceVos 接口文档Vo类
* @param projectId 项目id
* @param projectId 项目id
* @param envId 环境id
* @param envId 环境id
* @param interfaceId 父级分组
* @param interfaceId 父级分组
* @return 导入情况
* @return 导入情况
*/
*/
private
StatusCode
coexist
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
Long
interfaceId
,
boolean
bool
)
{
private
StatusCode
coexist
(
List
<
InterfaceVo
>
interfaceVos
,
Long
projectId
,
Long
envId
,
Long
interfaceId
)
{
int
saveNum
=
0
;
int
saveNum
=
0
;
int
updateNum
=
0
;
int
updateNum
=
0
;
int
ignoreNum
=
0
;
int
ignoreNum
=
0
;
...
@@ -393,13 +407,13 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -393,13 +407,13 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
}
}
//导入的数据
//导入的数据
Map
<
String
,
List
<
InterfaceVo
>>
tagsMap
=
interfaceVos
.
stream
()
Map
<
String
,
List
<
InterfaceVo
>>
tagsMap
=
interfaceVos
.
stream
()
.
filter
(
interfaceVo
->
interfaceVo
!=
null
&&
interfaceVo
.
getTag
()
!=
null
&&
!
""
.
equals
(
interfaceVo
.
getTag
()))
.
filter
(
interfaceVo
->
interfaceVo
!=
null
&&
interfaceVo
.
getTag
s
()
!=
null
&&
!
""
.
equals
(
interfaceVo
.
getTags
()))
.
collect
(
Collectors
.
groupingBy
(
InterfaceVo:
:
getTag
));
.
collect
(
Collectors
.
groupingBy
(
InterfaceVo:
:
getTag
s
));
if
(!
CollectionUtils
.
isEmpty
(
tagsMap
))
{
if
(!
CollectionUtils
.
isEmpty
(
tagsMap
))
{
Set
<
String
>
tags
=
tagsMap
.
keySet
();
Set
<
String
>
tags
=
tagsMap
.
keySet
();
if
(!
CollectionUtils
.
isEmpty
(
tags
))
{
if
(!
CollectionUtils
.
isEmpty
(
tags
))
{
for
(
String
tag
:
tags
)
{
for
(
String
tag
:
tags
)
{
Long
groupingId
=
getInterfaceGroupingId
(
projectId
,
interfaceId
,
tag
);
Long
groupingId
=
getInterfaceGroupingId
(
projectId
,
interfaceId
,
tag
,
envId
);
//tag分组下的所有接口
//tag分组下的所有接口
List
<
InterfaceVo
>
interfaceVoList
=
tagsMap
.
get
(
tag
);
List
<
InterfaceVo
>
interfaceVoList
=
tagsMap
.
get
(
tag
);
for
(
InterfaceVo
interfaceVo
:
interfaceVoList
)
{
for
(
InterfaceVo
interfaceVo
:
interfaceVoList
)
{
...
@@ -407,7 +421,13 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -407,7 +421,13 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
interfaceDoc
.
setInterfaceGroupId
(
groupingId
);
interfaceDoc
.
setInterfaceGroupId
(
groupingId
);
interfaceDoc
.
setProjectId
(
projectId
);
interfaceDoc
.
setProjectId
(
projectId
);
interfaceDoc
.
setStatus
(
SyncStatus
.
COPY
);
interfaceDoc
.
setStatus
(
SyncStatus
.
COPY
);
interfaceDoc
.
setEnvId
(
envId
);
// if (interfaceVo.getParameters().toJSONString() != null) {
// interfaceDoc.setParameters(interfaceVo.getParameters().toJSONString());
// }
// interfaceDoc.setEnvId(envId);
// if (interfaceVo.getResponses().toJSONString() != null) {
// interfaceDoc.setResponses(interfaceVo.getResponses().toJSONString());
// }
//todo 负责人,以及开发状态未添加
//todo 负责人,以及开发状态未添加
Integer
integer
=
Optional
.
of
(
interfaceDocMapper
.
insert
(
interfaceDoc
)).
orElseThrow
(()
->
new
GlobalException
(
"添加失败"
));
Integer
integer
=
Optional
.
of
(
interfaceDocMapper
.
insert
(
interfaceDoc
)).
orElseThrow
(()
->
new
GlobalException
(
"添加失败"
));
saveNum
=
saveNum
+
integer
;
saveNum
=
saveNum
+
integer
;
...
@@ -447,7 +467,7 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -447,7 +467,7 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
* @param tag 分组名称
* @param tag 分组名称
* @return 分组的主键id
* @return 分组的主键id
*/
*/
private
Long
getInterfaceGroupingId
(
Long
projectId
,
Long
interfaceGroupingId
,
String
tag
)
{
private
Long
getInterfaceGroupingId
(
Long
projectId
,
Long
interfaceGroupingId
,
String
tag
,
Long
envId
)
{
Long
id
;
Long
id
;
//查询分组是否存在
//查询分组是否存在
List
<
InterfaceGrouping
>
interfaceGroupings
=
Optional
.
of
(
interfaceGroupingMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
InterfaceGrouping
.
class
)
List
<
InterfaceGrouping
>
interfaceGroupings
=
Optional
.
of
(
interfaceGroupingMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
InterfaceGrouping
.
class
)
...
@@ -456,6 +476,8 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -456,6 +476,8 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
.
eq
(
InterfaceGrouping:
:
getTag
,
tag
))).
orElse
(
new
ArrayList
<>());
.
eq
(
InterfaceGrouping:
:
getTag
,
tag
))).
orElse
(
new
ArrayList
<>());
if
(
interfaceGroupings
.
size
()
!=
0
)
{
if
(
interfaceGroupings
.
size
()
!=
0
)
{
InterfaceGrouping
interfaceGrouping
=
interfaceGroupings
.
get
(
0
);
InterfaceGrouping
interfaceGrouping
=
interfaceGroupings
.
get
(
0
);
interfaceGrouping
.
setEnvId
(
envId
);
interfaceGroupingMapper
.
updateById
(
interfaceGrouping
);
id
=
interfaceGrouping
.
getId
();
id
=
interfaceGrouping
.
getId
();
}
else
{
}
else
{
//添加接口分组
//添加接口分组
...
@@ -463,6 +485,7 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
...
@@ -463,6 +485,7 @@ public class InterfaceDocServiceImpl extends ServiceImpl<InterfaceDocMapper, Int
interfaceGrouping
.
setInterfaceGroupingId
(
interfaceGroupingId
);
interfaceGrouping
.
setInterfaceGroupingId
(
interfaceGroupingId
);
interfaceGrouping
.
setProjectId
(
projectId
);
interfaceGrouping
.
setProjectId
(
projectId
);
interfaceGrouping
.
setTag
(
tag
);
interfaceGrouping
.
setTag
(
tag
);
interfaceGrouping
.
setEnvId
(
envId
);
interfaceGroupingMapper
.
insert
(
interfaceGrouping
);
interfaceGroupingMapper
.
insert
(
interfaceGrouping
);
id
=
interfaceGroupingMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
InterfaceGrouping
.
class
)
id
=
interfaceGroupingMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
InterfaceGrouping
.
class
)
.
eq
(
InterfaceGrouping:
:
getProjectId
,
projectId
)
.
eq
(
InterfaceGrouping:
:
getProjectId
,
projectId
)
...
...
kt-database/src/main/java/org/matrix/service/impl/MouldDocServiceImpl.java
浏览文件 @
01551216
...
@@ -11,6 +11,7 @@ import org.matrix.mapper.MouldDocMapper;
...
@@ -11,6 +11,7 @@ import org.matrix.mapper.MouldDocMapper;
import
org.matrix.mapper.MouldGroupingMapper
;
import
org.matrix.mapper.MouldGroupingMapper
;
import
org.matrix.service.IMouldDocService
;
import
org.matrix.service.IMouldDocService
;
import
org.matrix.vo.ImportMouldDoc
;
import
org.matrix.vo.ImportMouldDoc
;
import
org.matrix.vo.MouldVo
;
import
org.matrix.vo.StatusCode
;
import
org.matrix.vo.StatusCode
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -33,28 +34,28 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
...
@@ -33,28 +34,28 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
private
MouldGroupingMapper
mouldGroupingMapper
;
private
MouldGroupingMapper
mouldGroupingMapper
;
@Override
@Override
public
StatusCode
importMouldDoc
(
List
<
Mould
Doc
>
mouldDoc
s
,
Long
projectId
,
int
pattern
,
Long
mouldId
)
{
public
StatusCode
importMouldDoc
(
List
<
Mould
Vo
>
mouldVo
s
,
Long
projectId
,
int
pattern
,
Long
mouldId
)
{
StatusCode
statusCode
;
StatusCode
statusCode
;
switch
(
pattern
)
{
switch
(
pattern
)
{
//1. 同名覆盖
//1. 同名覆盖
case
ImportMouldDoc
.
NAME_OVERWRITE
:
case
ImportMouldDoc
.
NAME_OVERWRITE
:
statusCode
=
nameOverwrite
(
mould
Doc
s
,
projectId
,
mouldId
);
statusCode
=
nameOverwrite
(
mould
Vo
s
,
projectId
,
mouldId
);
break
;
break
;
//2. 同名同组覆盖
//2. 同名同组覆盖
case
ImportMouldDoc
.
NAME_GROUPING_OVERWRITE
:
case
ImportMouldDoc
.
NAME_GROUPING_OVERWRITE
:
statusCode
=
nameGroupingOverwrite
(
mould
Doc
s
,
projectId
,
mouldId
);
statusCode
=
nameGroupingOverwrite
(
mould
Vo
s
,
projectId
,
mouldId
);
break
;
break
;
//3. 同名不覆盖
//3. 同名不覆盖
case
ImportMouldDoc
.
NOT_NAME_OVERWRITE
:
case
ImportMouldDoc
.
NOT_NAME_OVERWRITE
:
statusCode
=
notNameOverwrite
(
mould
Doc
s
,
projectId
,
mouldId
);
statusCode
=
notNameOverwrite
(
mould
Vo
s
,
projectId
,
mouldId
);
break
;
break
;
//4. 同名同组不覆盖
//4. 同名同组不覆盖
case
ImportMouldDoc
.
NOT_NAME_GROUPING_OVERWRITE
:
case
ImportMouldDoc
.
NOT_NAME_GROUPING_OVERWRITE
:
statusCode
=
notNameGroupingOverwrite
(
mould
Doc
s
,
projectId
,
mouldId
);
statusCode
=
notNameGroupingOverwrite
(
mould
Vo
s
,
projectId
,
mouldId
);
break
;
break
;
//5. 同时存在
//5. 同时存在
case
ImportMouldDoc
.
COEXIST
:
case
ImportMouldDoc
.
COEXIST
:
statusCode
=
coexist
(
mould
Doc
s
,
projectId
,
mouldId
);
statusCode
=
coexist
(
mould
Vo
s
,
projectId
,
mouldId
);
break
;
break
;
default
:
default
:
throw
new
GlobalException
(
"请选择正确的导入类型"
);
throw
new
GlobalException
(
"请选择正确的导入类型"
);
...
@@ -62,21 +63,35 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
...
@@ -62,21 +63,35 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
return
statusCode
;
return
statusCode
;
}
}
public
List
<
MouldDoc
>
getMouldDoc
(
List
<
MouldVo
>
mouldVos
)
{
List
<
MouldDoc
>
mouldDocs
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
mouldVos
))
{
for
(
MouldVo
mouldVo
:
mouldVos
)
{
MouldDoc
mouldDoc
=
new
MouldDoc
();
mouldDoc
.
setObjName
(
mouldVo
.
getObjName
());
// mouldDoc.setAttributeOutVo(mouldVo.getAttributeOutVo());
mouldDocs
.
add
(
mouldDoc
);
}
}
return
mouldDocs
;
}
/**
/**
* 1. 同名覆盖
* 1. 同名覆盖
*
*
* @param mould
Docs
swagger导入的数据模型集合
* @param mould
Vos
swagger导入的数据模型集合
* @param projectId 项目id
* @param projectId 项目id
* @param mouldId 分组Id(导入时选择导入到哪个分组中)
* @param mouldId 分组Id(导入时选择导入到哪个分组中)
* @return 导入结果
* @return 导入结果
*/
*/
public
StatusCode
nameOverwrite
(
List
<
Mould
Doc
>
mouldDoc
s
,
Long
projectId
,
Long
mouldId
)
{
public
StatusCode
nameOverwrite
(
List
<
Mould
Vo
>
mouldVo
s
,
Long
projectId
,
Long
mouldId
)
{
int
saveNum
=
0
;
int
saveNum
=
0
;
int
updateNum
=
0
;
int
updateNum
=
0
;
int
ignoreNum
=
0
;
int
ignoreNum
=
0
;
StatusCode
statusCode
=
new
StatusCode
();
StatusCode
statusCode
=
new
StatusCode
();
statusCode
.
setSwaggerDataType
(
SwaggerDataType
.
MOULD_DOC
);
statusCode
.
setSwaggerDataType
(
SwaggerDataType
.
MOULD_DOC
);
if
(
mouldDocs
.
size
()
!=
0
)
{
if
(
mouldVos
.
size
()
!=
0
)
{
List
<
MouldDoc
>
mouldDocs
=
getMouldDoc
(
mouldVos
);
List
<
Long
>
longList
=
getIdList
(
projectId
);
List
<
Long
>
longList
=
getIdList
(
projectId
);
Long
groupingId
=
getGroupingId
(
mouldId
,
projectId
);
Long
groupingId
=
getGroupingId
(
mouldId
,
projectId
);
for
(
MouldDoc
mouldDoc
:
mouldDocs
)
{
for
(
MouldDoc
mouldDoc
:
mouldDocs
)
{
...
@@ -114,18 +129,19 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
...
@@ -114,18 +129,19 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
/**
/**
* 2. 同名同组覆盖
* 2. 同名同组覆盖
*
*
* @param mould
Docs
swagger导入的数据模型集合
* @param mould
Vos
swagger导入的数据模型集合
* @param projectId 项目id
* @param projectId 项目id
* @param mouldId 分组Id(导入时选择导入到哪个分组中)
* @param mouldId 分组Id(导入时选择导入到哪个分组中)
* @return 导入结果
* @return 导入结果
*/
*/
public
StatusCode
nameGroupingOverwrite
(
List
<
Mould
Doc
>
mouldDoc
s
,
Long
projectId
,
Long
mouldId
)
{
public
StatusCode
nameGroupingOverwrite
(
List
<
Mould
Vo
>
mouldVo
s
,
Long
projectId
,
Long
mouldId
)
{
int
saveNum
=
0
;
int
saveNum
=
0
;
int
updateNum
=
0
;
int
updateNum
=
0
;
int
ignoreNum
=
0
;
int
ignoreNum
=
0
;
StatusCode
statusCode
=
new
StatusCode
();
StatusCode
statusCode
=
new
StatusCode
();
statusCode
.
setSwaggerDataType
(
SwaggerDataType
.
MOULD_DOC
);
statusCode
.
setSwaggerDataType
(
SwaggerDataType
.
MOULD_DOC
);
if
(
mouldDocs
.
size
()
!=
0
)
{
if
(
mouldVos
.
size
()
!=
0
)
{
List
<
MouldDoc
>
mouldDocs
=
getMouldDoc
(
mouldVos
);
List
<
Long
>
longList
=
getIdList
(
projectId
);
List
<
Long
>
longList
=
getIdList
(
projectId
);
Long
groupingId
=
getGroupingId
(
mouldId
,
projectId
);
Long
groupingId
=
getGroupingId
(
mouldId
,
projectId
);
for
(
MouldDoc
mouldDoc
:
mouldDocs
)
{
for
(
MouldDoc
mouldDoc
:
mouldDocs
)
{
...
@@ -163,18 +179,19 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
...
@@ -163,18 +179,19 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
/**
/**
* 3. 同名不覆盖
* 3. 同名不覆盖
*
*
* @param mould
Docs
swagger导入的数据模型集合
* @param mould
Vos
swagger导入的数据模型集合
* @param projectId 项目id
* @param projectId 项目id
* @param mouldId 分组Id(导入时选择导入到哪个分组中)
* @param mouldId 分组Id(导入时选择导入到哪个分组中)
* @return 导入结果
* @return 导入结果
*/
*/
public
StatusCode
notNameOverwrite
(
List
<
Mould
Doc
>
mouldDoc
s
,
Long
projectId
,
Long
mouldId
)
{
public
StatusCode
notNameOverwrite
(
List
<
Mould
Vo
>
mouldVo
s
,
Long
projectId
,
Long
mouldId
)
{
int
saveNum
=
0
;
int
saveNum
=
0
;
int
updateNum
=
0
;
int
updateNum
=
0
;
int
ignoreNum
=
0
;
int
ignoreNum
=
0
;
StatusCode
statusCode
=
new
StatusCode
();
StatusCode
statusCode
=
new
StatusCode
();
statusCode
.
setSwaggerDataType
(
SwaggerDataType
.
MOULD_DOC
);
statusCode
.
setSwaggerDataType
(
SwaggerDataType
.
MOULD_DOC
);
if
(
mouldDocs
.
size
()
!=
0
)
{
if
(
mouldVos
.
size
()
!=
0
)
{
List
<
MouldDoc
>
mouldDocs
=
getMouldDoc
(
mouldVos
);
List
<
Long
>
longList
=
getIdList
(
projectId
);
List
<
Long
>
longList
=
getIdList
(
projectId
);
Long
groupingId
=
getGroupingId
(
mouldId
,
projectId
);
Long
groupingId
=
getGroupingId
(
mouldId
,
projectId
);
for
(
MouldDoc
mouldDoc
:
mouldDocs
)
{
for
(
MouldDoc
mouldDoc
:
mouldDocs
)
{
...
@@ -205,18 +222,19 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
...
@@ -205,18 +222,19 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
/**
/**
* 4. 同名同组不覆盖
* 4. 同名同组不覆盖
*
*
* @param mould
Docs
swagger导入的数据模型集合
* @param mould
Vos
swagger导入的数据模型集合
* @param projectId 项目id
* @param projectId 项目id
* @param mouldId 分组Id(导入时选择导入到哪个分组中)
* @param mouldId 分组Id(导入时选择导入到哪个分组中)
* @return 导入结果
* @return 导入结果
*/
*/
public
StatusCode
notNameGroupingOverwrite
(
List
<
Mould
Doc
>
mouldDoc
s
,
Long
projectId
,
Long
mouldId
)
{
public
StatusCode
notNameGroupingOverwrite
(
List
<
Mould
Vo
>
mouldVo
s
,
Long
projectId
,
Long
mouldId
)
{
int
saveNum
=
0
;
int
saveNum
=
0
;
int
updateNum
=
0
;
int
updateNum
=
0
;
int
ignoreNum
=
0
;
int
ignoreNum
=
0
;
StatusCode
statusCode
=
new
StatusCode
();
StatusCode
statusCode
=
new
StatusCode
();
statusCode
.
setSwaggerDataType
(
SwaggerDataType
.
MOULD_DOC
);
statusCode
.
setSwaggerDataType
(
SwaggerDataType
.
MOULD_DOC
);
if
(
mouldDocs
.
size
()
!=
0
)
{
if
(
mouldVos
.
size
()
!=
0
)
{
List
<
MouldDoc
>
mouldDocs
=
getMouldDoc
(
mouldVos
);
List
<
Long
>
longList
=
getIdList
(
projectId
);
List
<
Long
>
longList
=
getIdList
(
projectId
);
Long
groupingId
=
getGroupingId
(
mouldId
,
projectId
);
Long
groupingId
=
getGroupingId
(
mouldId
,
projectId
);
for
(
MouldDoc
mouldDoc
:
mouldDocs
)
{
for
(
MouldDoc
mouldDoc
:
mouldDocs
)
{
...
@@ -254,18 +272,19 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
...
@@ -254,18 +272,19 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
/**
/**
* 5. 同名时保留两者
* 5. 同名时保留两者
*
*
* @param mould
Docs
swagger导入的数据模型集合
* @param mould
Vos
swagger导入的数据模型集合
* @param mouldId 分组Id(导入时选择导入到哪个分组中)
* @param mouldId 分组Id(导入时选择导入到哪个分组中)
* @param projectId 项目id
* @param projectId 项目id
* @return 导入结果
* @return 导入结果
*/
*/
public
StatusCode
coexist
(
List
<
Mould
Doc
>
mouldDoc
s
,
Long
projectId
,
Long
mouldId
)
{
public
StatusCode
coexist
(
List
<
Mould
Vo
>
mouldVo
s
,
Long
projectId
,
Long
mouldId
)
{
int
saveNum
=
0
;
int
saveNum
=
0
;
int
updateNum
=
0
;
int
updateNum
=
0
;
int
ignoreNum
=
0
;
int
ignoreNum
=
0
;
StatusCode
statusCode
=
new
StatusCode
();
StatusCode
statusCode
=
new
StatusCode
();
statusCode
.
setSwaggerDataType
(
SwaggerDataType
.
MOULD_DOC
);
statusCode
.
setSwaggerDataType
(
SwaggerDataType
.
MOULD_DOC
);
if
(
mouldDocs
.
size
()
!=
0
)
{
if
(
mouldVos
.
size
()
!=
0
)
{
List
<
MouldDoc
>
mouldDocs
=
getMouldDoc
(
mouldVos
);
//当前项目中的所有数据模型
//当前项目中的所有数据模型
List
<
MouldDoc
>
mouldDocList
=
Optional
.
ofNullable
(
mouldDocMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
MouldDoc
.
class
)
List
<
MouldDoc
>
mouldDocList
=
Optional
.
ofNullable
(
mouldDocMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
MouldDoc
.
class
)
.
eq
(
MouldDoc:
:
getProjectId
,
projectId
))).
orElse
(
new
ArrayList
<>());
.
eq
(
MouldDoc:
:
getProjectId
,
projectId
))).
orElse
(
new
ArrayList
<>());
...
...
kt-database/src/main/java/org/matrix/vo/InterfaceDocVo.java
0 → 100644
浏览文件 @
01551216
package
org
.
matrix
.
vo
;
import
com.baomidou.mybatisplus.annotation.FieldFill
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.matrix.enums.SyncStatus
;
import
java.util.List
;
/**
* @author mruny
* @create 2022/8/3 15:31:12
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
"接口文档Vo"
)
public
class
InterfaceDocVo
{
@ApiModelProperty
(
"接口文档下可以存在多个测试用例"
)
private
List
<
TestCaseVo
>
testCaseVos
;
/**
* id
*/
@ApiModelProperty
(
"主键id"
)
private
Long
id
;
/**
* 名称
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"名称"
)
private
String
summary
;
/**
* 说明
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"说明"
)
private
String
des
;
/**
* 请求方式
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"请求方式"
)
private
String
httpMethod
;
/**
* 接口相对路径
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"接口相对路径"
)
private
String
pathUrl
;
/**
* 参数详情(整段json)
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"参数详情(整段json)"
)
private
String
parameters
;
/**
* 返回值信息(整段json)
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"返回值信息(整段json)"
)
private
String
responses
;
/**
* 项目id
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"项目id"
)
private
Long
projectId
;
/**
* 环境id
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"环境id"
)
private
Long
envId
;
/**
* 分组id
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"分组id"
)
private
Long
interfaceGroupId
;
/**
* 同步状态
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"同步状态"
)
private
SyncStatus
status
;
/**
* 开发状态
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"开发状态"
)
private
String
devStatus
;
/**
* 负责人
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"负责人"
)
private
String
dutyPeople
;
}
kt-database/src/main/java/org/matrix/vo/InterfaceGroupVo.java
0 → 100644
浏览文件 @
01551216
package
org
.
matrix
.
vo
;
import
com.baomidou.mybatisplus.annotation.FieldFill
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @author mruny
* @create 2022/8/3 15:19:39
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
"项目中的所有接口分组,接口,测试用例"
)
public
class
InterfaceGroupVo
{
/**
* 分组下可以存在多个分组
*/
@ApiModelProperty
(
"分组下可以存在多个分组"
)
private
List
<
InterfaceGroupVo
>
interfaceGroupVos
;
/**
* 分组下可以存在多个接口
*/
@ApiModelProperty
(
"分组下可以存在多个接口"
)
private
List
<
InterfaceDocVo
>
interfaceDocVos
;
/**
* id
*/
@ApiModelProperty
(
"主键id"
)
private
Long
id
;
/**
* 名称(标签/分组(存在根目录))
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"名称(标签/分组(存在根目录))"
)
private
String
tag
;
/**
* 说明
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"说明"
)
private
String
des
;
/**
* 环境id
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"环境id"
)
private
Long
envId
;
/**
* 项目id
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"项目id"
)
private
Long
projectId
;
/**
* 前置操作id
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"前置操作id"
)
private
Long
moveBefore
;
/**
* 后置操作id
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"后置操作id"
)
private
Long
moveAfter
;
/**
* 父类id(根目录默认为0)
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"父类id(根目录默认为0)"
)
private
Long
interfaceGroupingId
;
}
kt-database/src/main/java/org/matrix/vo/InterfaceVo.java
浏览文件 @
01551216
package
org
.
matrix
.
vo
;
package
org
.
matrix
.
vo
;
import
com.alibaba.fastjson.JSONArray
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
org.matrix.entity.InterfaceDoc
;
import
org.matrix.entity.InterfaceDoc
;
import
org.matrix.enums.SyncStatus
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
/**
/**
...
@@ -12,12 +13,71 @@ import org.springframework.beans.BeanUtils;
...
@@ -12,12 +13,71 @@ import org.springframework.beans.BeanUtils;
* @create 2022/7/18 15:53:34
* @create 2022/7/18 15:53:34
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@AllArgsConstructor
@AllArgsConstructor
@NoArgsConstructor
@NoArgsConstructor
public
class
InterfaceVo
extends
InterfaceDoc
{
public
class
InterfaceVo
{
private
String
tag
;
/**
* 名称
*/
private
String
summary
;
/**
* 说明
*/
private
String
des
;
/**
* 请求方式
*/
private
String
httpMethod
;
/**
* 接口相对路径
*/
private
String
pathUrl
;
/**
* 参数详情(整段json)
*/
private
JSONArray
parameters
;
/**
* 返回值信息(整段json)
*/
private
JSONArray
responses
;
/**
* 项目id
*/
private
Long
projectId
;
/**
* 环境id
*/
private
Long
envId
;
/**
* 分组id
*/
private
Long
interfaceGroupId
;
/**
* 同步状态
*/
private
SyncStatus
status
;
/**
* 开发状态
*/
private
String
devStatus
;
/**
* 负责人
*/
private
String
dutyPeople
;
private
String
tags
;
public
InterfaceDoc
toInterfaceDoc
()
{
public
InterfaceDoc
toInterfaceDoc
()
{
InterfaceDoc
interfaceDoc
=
new
InterfaceDoc
();
InterfaceDoc
interfaceDoc
=
new
InterfaceDoc
();
...
...
kt-database/src/main/java/org/matrix/vo/MouldVo.java
0 → 100644
浏览文件 @
01551216
package
org
.
matrix
.
vo
;
import
com.alibaba.fastjson.JSONObject
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author mruny
* @create 2022/8/2 17:35:50
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
MouldVo
{
private
String
objName
;
private
JSONObject
attributeOutVo
;
}
kt-database/src/main/java/org/matrix/vo/RecursionInterface.java
0 → 100644
浏览文件 @
01551216
package
org
.
matrix
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @author mruny
* @create 2022/8/3 16:56:26
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
"项目中的所有接口分组,接口,测试用例"
)
public
class
RecursionInterface
{
@ApiModelProperty
(
"接口"
)
private
List
<
InterfaceGroupVo
>
interfaceGroupVos
;
@ApiModelProperty
(
"接口"
)
private
List
<
InterfaceDocVo
>
interfaceDocVos
;
}
kt-database/src/main/java/org/matrix/vo/TestCaseVo.java
0 → 100644
浏览文件 @
01551216
package
org
.
matrix
.
vo
;
import
com.baomidou.mybatisplus.annotation.FieldFill
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author mruny
* @create 2022/8/3 15:40:01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
"测试用例Vo类"
)
public
class
TestCaseVo
{
/**
* id
*/
@ApiModelProperty
(
"主键id"
)
private
Long
id
;
/**
* 名称
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"名称"
)
private
String
name
;
/**
* 接口文档id
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"接口文档id"
)
private
Long
docId
;
/**
* 请求方式
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"请求方式"
)
private
String
httpMethod
;
/**
* 参数详情(包括参数值)
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"参数详情(包括参数值)"
)
private
String
parameters
;
/**
* 前置动作id
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"前置动作id"
)
private
Long
moveBefore
;
/**
* 后置动作id
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"后置动作id"
)
private
Long
moveAfter
;
/**
* 项目id
*/
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
"项目id"
)
private
Long
projectId
;
}
kt-web/src/main/java/org/matrix/autotest/controller/CaseController.java
浏览文件 @
01551216
...
@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
...
@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.matrix.entity.Case
;
import
org.matrix.entity.Case
;
import
org.matrix.exception.GlobalException
;
import
org.matrix.service.ICaseService
;
import
org.matrix.service.ICaseService
;
import
org.matrix.vo.InterfaceGroupVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -26,21 +29,50 @@ public class CaseController {
...
@@ -26,21 +29,50 @@ public class CaseController {
@Autowired
@Autowired
private
ICaseService
caseService
;
private
ICaseService
caseService
;
@ApiOperation
(
"查询所有当前项目中的测试用例"
)
@ApiOperation
(
"根据主键id查询测试用例"
)
@GetMapping
(
"/id"
)
public
ResponseEntity
<
Case
>
findByIdCase
(
@RequestParam
Long
id
)
{
Case
aCase
=
Optional
.
ofNullable
(
caseService
.
getById
(
id
)).
orElse
(
new
Case
());
return
ResponseEntity
.
ok
(
aCase
);
}
@ApiOperation
(
"根据主键id删除测试用例"
)
@DeleteMapping
(
"/{id}"
)
public
ResponseEntity
<
String
>
removeCase
(
@PathVariable
Long
id
)
{
caseService
.
removeById
(
id
);
return
ResponseEntity
.
ok
(
String
.
format
(
"删除成功,删除的接口文档id为: %d"
,
id
));
}
@ApiOperation
(
"添加测试用例"
)
@PostMapping
public
ResponseEntity
<
Case
>
insertCase
(
@RequestBody
Case
aCase
)
{
return
Optional
.
of
(
caseService
.
save
(
aCase
)).
orElseThrow
(()
->
new
GlobalException
(
"添加失败"
))
?
ResponseEntity
.
ok
(
aCase
)
:
ResponseEntity
.
status
(
HttpStatus
.
BAD_REQUEST
).
body
(
aCase
);
}
@ApiOperation
(
"修改测试用例"
)
@PutMapping
public
ResponseEntity
<
Case
>
updateCase
(
@RequestBody
Case
aCase
)
{
return
Optional
.
of
(
caseService
.
updateById
(
aCase
)).
orElseThrow
(()
->
new
GlobalException
(
"修改失败"
))
?
ResponseEntity
.
ok
(
aCase
)
:
ResponseEntity
.
status
(
HttpStatus
.
BAD_REQUEST
).
body
(
aCase
);
}
@ApiOperation
(
"查询快捷请求"
)
@GetMapping
@GetMapping
public
ResponseEntity
<
List
<
Case
>>
findCase
(
@RequestParam
Long
projectId
)
{
public
ResponseEntity
<
List
<
Case
>>
findCase
(
@RequestParam
Long
projectId
)
{
List
<
Case
>
cases
=
Optional
.
ofNullable
(
caseService
.
list
(
Wrappers
.
lambdaQuery
(
Case
.
class
)
List
<
Case
>
cases
=
Optional
.
ofNullable
(
caseService
.
list
(
Wrappers
.
lambdaQuery
(
Case
.
class
)
.
eq
(
Case:
:
getProjectId
,
projectId
))).
orElse
(
new
ArrayList
<>());
.
eq
(
Case:
:
getProjectId
,
projectId
)
.
eq
(
Case:
:
getDocId
,
-
1L
))).
orElse
(
new
ArrayList
<>());
return
ResponseEntity
.
ok
(
cases
);
return
ResponseEntity
.
ok
(
cases
);
}
}
@ApiOperation
(
"
根据主键id查询测试用例
"
)
@ApiOperation
(
"
查询当前项目下所有分组,以及分组下的接口,测试用例等
"
)
@GetMapping
(
"/
id
"
)
@GetMapping
(
"/
all
"
)
public
ResponseEntity
<
Case
>
findByIdCase
(
@RequestParam
Long
i
d
)
{
public
ResponseEntity
<
InterfaceGroupVo
>
findAll
(
@RequestParam
Long
projectI
d
)
{
Case
aCase
=
Optional
.
ofNullable
(
caseService
.
getById
(
id
)).
orElse
(
new
Case
()
);
InterfaceGroupVo
result
=
caseService
.
getAll
(
projectId
);
return
ResponseEntity
.
ok
(
aCase
);
return
ResponseEntity
.
ok
(
result
);
}
}
// @ApiOperation("根据测试用例所在的接口查询")
// @GetMapping("/")
}
}
kt-web/src/main/java/org/matrix/autotest/controller/InterfaceDocController.java
浏览文件 @
01551216
...
@@ -4,12 +4,15 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
...
@@ -4,12 +4,15 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.matrix.entity.Case
;
import
org.matrix.entity.InterfaceDoc
;
import
org.matrix.entity.InterfaceDoc
;
import
org.matrix.exception.GlobalException
;
import
org.matrix.exception.GlobalException
;
import
org.matrix.service.ICaseService
;
import
org.matrix.service.IInterfaceDocService
;
import
org.matrix.service.IInterfaceDocService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -29,9 +32,16 @@ public class InterfaceDocController {
...
@@ -29,9 +32,16 @@ public class InterfaceDocController {
@Autowired
@Autowired
private
IInterfaceDocService
interfaceDocService
;
private
IInterfaceDocService
interfaceDocService
;
@ApiOperation
(
"根据id删除接口文档"
)
@Autowired
private
ICaseService
caseService
;
@ApiOperation
(
"根据id删除接口文档,以及接口文档中的测试用例"
)
@DeleteMapping
(
"/{id}"
)
@DeleteMapping
(
"/{id}"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResponseEntity
<
String
>
removeInterfaceDoc
(
@PathVariable
Long
id
)
{
public
ResponseEntity
<
String
>
removeInterfaceDoc
(
@PathVariable
Long
id
)
{
List
<
Case
>
cases
=
Optional
.
of
(
caseService
.
list
(
Wrappers
.
lambdaQuery
(
Case
.
class
)
.
eq
(
Case:
:
getDocId
,
id
))).
orElse
(
new
ArrayList
<>());
caseService
.
removeByIds
(
cases
);
interfaceDocService
.
removeById
(
id
);
interfaceDocService
.
removeById
(
id
);
return
ResponseEntity
.
ok
(
String
.
format
(
"删除成功,删除的接口文档id为: %d"
,
id
));
return
ResponseEntity
.
ok
(
String
.
format
(
"删除成功,删除的接口文档id为: %d"
,
id
));
}
}
...
@@ -52,14 +62,6 @@ public class InterfaceDocController {
...
@@ -52,14 +62,6 @@ public class InterfaceDocController {
:
ResponseEntity
.
status
(
HttpStatus
.
BAD_REQUEST
).
body
(
interfaceDoc
);
:
ResponseEntity
.
status
(
HttpStatus
.
BAD_REQUEST
).
body
(
interfaceDoc
);
}
}
@ApiOperation
(
"查询当前项目下所有接口文档"
)
@GetMapping
public
ResponseEntity
<
List
<
InterfaceDoc
>>
findInterfaceDoc
(
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
projectId
)
{
List
<
InterfaceDoc
>
interfaceDocList
=
Optional
.
ofNullable
(
interfaceDocService
.
list
(
Wrappers
.
lambdaQuery
(
InterfaceDoc
.
class
)
.
eq
(
InterfaceDoc:
:
getProjectId
,
projectId
))).
orElse
(
new
ArrayList
<>());
return
ResponseEntity
.
ok
(
interfaceDocList
);
}
@ApiOperation
(
"根据主键id查询接口文档"
)
@ApiOperation
(
"根据主键id查询接口文档"
)
@GetMapping
(
"/id"
)
@GetMapping
(
"/id"
)
public
ResponseEntity
<
InterfaceDoc
>
findByIdInterfaceDoc
(
@RequestParam
Long
id
)
{
public
ResponseEntity
<
InterfaceDoc
>
findByIdInterfaceDoc
(
@RequestParam
Long
id
)
{
...
@@ -67,12 +69,4 @@ public class InterfaceDocController {
...
@@ -67,12 +69,4 @@ public class InterfaceDocController {
return
ResponseEntity
.
ok
(
interfaceDoc
);
return
ResponseEntity
.
ok
(
interfaceDoc
);
}
}
@ApiOperation
(
"根据分组id查询接口文档"
)
@GetMapping
(
"/groupingId"
)
public
ResponseEntity
<
List
<
InterfaceDoc
>>
findByGroupingIdInterfaceDoc
(
@RequestParam
Long
groupingId
)
{
List
<
InterfaceDoc
>
interfaceDocList
=
Optional
.
ofNullable
(
interfaceDocService
.
list
(
Wrappers
.
lambdaQuery
(
InterfaceDoc
.
class
)
.
eq
(
InterfaceDoc:
:
getInterfaceGroupId
,
groupingId
))).
orElse
(
new
ArrayList
<>());
return
ResponseEntity
.
ok
(
interfaceDocList
);
}
}
}
kt-web/src/main/java/org/matrix/autotest/controller/InterfaceGroupingController.java
浏览文件 @
01551216
package
org
.
matrix
.
autotest
.
controller
;
package
org
.
matrix
.
autotest
.
controller
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.matrix.entity.InterfaceGrouping
;
import
org.matrix.entity.InterfaceGrouping
;
...
@@ -9,10 +8,9 @@ import org.matrix.service.IInterfaceGroupingService;
...
@@ -9,10 +8,9 @@ import org.matrix.service.IInterfaceGroupingService;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.Optional
;
/**
/**
...
@@ -44,14 +42,6 @@ public class InterfaceGroupingController {
...
@@ -44,14 +42,6 @@ public class InterfaceGroupingController {
:
ResponseEntity
.
status
(
HttpStatus
.
BAD_REQUEST
).
body
(
interfaceGrouping
);
:
ResponseEntity
.
status
(
HttpStatus
.
BAD_REQUEST
).
body
(
interfaceGrouping
);
}
}
@ApiOperation
(
"查询当前项目下所有接口分组"
)
@GetMapping
public
ResponseEntity
<
List
<
InterfaceGrouping
>>
findInterfaceGrouping
(
@RequestParam
Long
projectId
)
{
List
<
InterfaceGrouping
>
interfaceGroupings
=
Optional
.
ofNullable
(
interfaceGroupingService
.
list
(
Wrappers
.
lambdaQuery
(
InterfaceGrouping
.
class
)
.
eq
(
InterfaceGrouping:
:
getProjectId
,
projectId
))).
orElse
(
new
ArrayList
<>());
return
ResponseEntity
.
ok
(
interfaceGroupings
);
}
@ApiOperation
(
"根据主键id查询接口分组"
)
@ApiOperation
(
"根据主键id查询接口分组"
)
@GetMapping
(
"/id"
)
@GetMapping
(
"/id"
)
public
ResponseEntity
<
InterfaceGrouping
>
findByIdInterfaceGrouping
(
@RequestParam
Long
id
)
{
public
ResponseEntity
<
InterfaceGrouping
>
findByIdInterfaceGrouping
(
@RequestParam
Long
id
)
{
...
@@ -59,10 +49,12 @@ public class InterfaceGroupingController {
...
@@ -59,10 +49,12 @@ public class InterfaceGroupingController {
return
ResponseEntity
.
ok
(
interfaceGrouping
);
return
ResponseEntity
.
ok
(
interfaceGrouping
);
}
}
@ApiOperation
(
"根据接口分组主键id删除分组以及分组下
的
接口文档"
)
@ApiOperation
(
"根据接口分组主键id删除分组以及分组下
所有分组和
接口文档"
)
@DeleteMapping
(
"/{id}"
)
@DeleteMapping
(
"/{id}"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResponseEntity
<
String
>
removeInterfaceGrouping
(
@PathVariable
Long
id
)
{
public
ResponseEntity
<
String
>
removeInterfaceGrouping
(
@PathVariable
Long
id
)
{
interfaceGroupingService
.
removeInterfaceGrouping
(
id
);
interfaceGroupingService
.
removeInterfaceGrouping
(
id
);
return
ResponseEntity
.
ok
(
String
.
format
(
"删除成功,删除的接口分组id为: %d"
,
id
));
return
ResponseEntity
.
ok
(
String
.
format
(
"删除成功,删除的接口分组id为: %d"
,
id
));
}
}
}
}
kt-web/src/main/java/org/matrix/autotest/controller/MouldDocController.java
浏览文件 @
01551216
package
org
.
matrix
.
autotest
.
controller
;
package
org
.
matrix
.
autotest
.
controller
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.matrix.entity.MouldDoc
;
import
org.matrix.entity.MouldDoc
;
...
@@ -11,8 +10,6 @@ import org.springframework.http.HttpStatus;
...
@@ -11,8 +10,6 @@ import org.springframework.http.HttpStatus;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.Optional
;
/**
/**
...
@@ -51,27 +48,11 @@ public class MouldDocController {
...
@@ -51,27 +48,11 @@ public class MouldDocController {
:
ResponseEntity
.
status
(
HttpStatus
.
BAD_REQUEST
).
body
(
mouldDoc
);
:
ResponseEntity
.
status
(
HttpStatus
.
BAD_REQUEST
).
body
(
mouldDoc
);
}
}
@ApiOperation
(
"查询当前项目下所有数据模型"
)
@ApiOperation
(
"根据主键id查询数据模型"
)
@GetMapping
public
ResponseEntity
<
List
<
MouldDoc
>>
findMouldDoc
(
@RequestParam
Long
projectId
)
{
List
<
MouldDoc
>
mouldDocList
=
Optional
.
ofNullable
(
mouldDocService
.
list
(
Wrappers
.
lambdaQuery
(
MouldDoc
.
class
)
.
eq
(
MouldDoc:
:
getProjectId
,
projectId
))).
orElse
(
new
ArrayList
<>());
return
ResponseEntity
.
ok
(
mouldDocList
);
}
@ApiOperation
(
"根据主键id数据模型"
)
@GetMapping
(
"/id"
)
@GetMapping
(
"/id"
)
public
ResponseEntity
<
MouldDoc
>
findByIdMouldDoc
(
@RequestParam
Long
id
)
{
public
ResponseEntity
<
MouldDoc
>
findByIdMouldDoc
(
@RequestParam
Long
id
)
{
MouldDoc
mouldDoc
=
Optional
.
ofNullable
(
mouldDocService
.
getById
(
id
)).
orElse
(
new
MouldDoc
());
MouldDoc
mouldDoc
=
Optional
.
ofNullable
(
mouldDocService
.
getById
(
id
)).
orElse
(
new
MouldDoc
());
return
ResponseEntity
.
ok
(
mouldDoc
);
return
ResponseEntity
.
ok
(
mouldDoc
);
}
}
@ApiOperation
(
"根据分组id查询数据模型"
)
@GetMapping
(
"/groupingId"
)
public
ResponseEntity
<
List
<
MouldDoc
>>
findByGroupingIdMouldDoc
(
@RequestParam
Long
groupingId
)
{
List
<
MouldDoc
>
mouldDocList
=
Optional
.
ofNullable
(
mouldDocService
.
list
(
Wrappers
.
lambdaQuery
(
MouldDoc
.
class
)
.
eq
(
MouldDoc:
:
getMouldGroupingId
,
groupingId
))).
orElse
(
new
ArrayList
<>());
return
ResponseEntity
.
ok
(
mouldDocList
);
}
}
}
kt-web/src/main/java/org/matrix/autotest/controller/MouldGroupingController.java
浏览文件 @
01551216
package
org
.
matrix
.
autotest
.
controller
;
package
org
.
matrix
.
autotest
.
controller
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.matrix.entity.MouldGrouping
;
import
org.matrix.entity.MouldGrouping
;
...
@@ -12,8 +11,6 @@ import org.springframework.http.ResponseEntity;
...
@@ -12,8 +11,6 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.Optional
;
/**
/**
...
@@ -45,16 +42,6 @@ public class MouldGroupingController {
...
@@ -45,16 +42,6 @@ public class MouldGroupingController {
:
ResponseEntity
.
status
(
HttpStatus
.
BAD_REQUEST
).
body
(
mouldGrouping
);
:
ResponseEntity
.
status
(
HttpStatus
.
BAD_REQUEST
).
body
(
mouldGrouping
);
}
}
@GetMapping
@ApiOperation
(
"查询当前项目下所有数据模型分组"
)
public
ResponseEntity
<
List
<
MouldGrouping
>>
findMouldGrouping
(
@RequestParam
Long
projectId
)
{
List
<
MouldGrouping
>
mouldGroupings
=
Optional
.
of
(
mouldGroupingService
.
list
(
Wrappers
.
lambdaQuery
(
MouldGrouping
.
class
)
.
eq
(
MouldGrouping:
:
getProjectId
,
projectId
))).
orElse
(
new
ArrayList
<>());
return
ResponseEntity
.
ok
(
mouldGroupings
);
}
@ApiOperation
(
"根据主键id查询数据模型分组"
)
@ApiOperation
(
"根据主键id查询数据模型分组"
)
@GetMapping
(
"/id"
)
@GetMapping
(
"/id"
)
public
ResponseEntity
<
MouldGrouping
>
findByMouldGrouping
(
@RequestParam
Long
id
)
{
public
ResponseEntity
<
MouldGrouping
>
findByMouldGrouping
(
@RequestParam
Long
id
)
{
...
@@ -62,7 +49,7 @@ public class MouldGroupingController {
...
@@ -62,7 +49,7 @@ public class MouldGroupingController {
return
ResponseEntity
.
ok
(
mouldGrouping
);
return
ResponseEntity
.
ok
(
mouldGrouping
);
}
}
@ApiOperation
(
"根据数据模型分组主键id,删除分组以及分组下
的
数据模型"
)
@ApiOperation
(
"根据数据模型分组主键id,删除分组以及分组下
所有分组和
数据模型"
)
@DeleteMapping
(
"/{id}"
)
@DeleteMapping
(
"/{id}"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResponseEntity
<
String
>
removeMouldGrouping
(
@PathVariable
Long
id
)
{
public
ResponseEntity
<
String
>
removeMouldGrouping
(
@PathVariable
Long
id
)
{
...
...
kt-web/src/main/java/org/matrix/autotest/controller/SwaggerHandleController.java
浏览文件 @
01551216
package
org
.
matrix
.
autotest
.
controller
;
package
org
.
matrix
.
autotest
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.matrix.entity.Environment
;
import
org.matrix.entity.Environment
;
import
org.matrix.entity.MouldDoc
;
import
org.matrix.exception.GlobalException
;
import
org.matrix.exception.GlobalException
;
import
org.matrix.service.IEnvironmentService
;
import
org.matrix.service.IEnvironmentService
;
import
org.matrix.service.IInterfaceDocService
;
import
org.matrix.service.IInterfaceDocService
;
import
org.matrix.service.IMouldDocService
;
import
org.matrix.service.IMouldDocService
;
import
org.matrix.vo.InterfaceVo
;
import
org.matrix.vo.InterfaceVo
;
import
org.matrix.vo.MouldVo
;
import
org.matrix.vo.StatusCode
;
import
org.matrix.vo.StatusCode
;
import
org.matrix.vo.swaggerEntityVo.AttributeInVo
;
import
org.matrix.vo.swaggerEntityVo.AttributeInVo
;
import
org.matrix.vo.swaggerEntityVo.definitionsEntity.AttributeOutVo
;
import
org.matrix.vo.swaggerEntityVo.definitionsEntity.AttributeOutVo
;
...
@@ -70,6 +69,7 @@ public class SwaggerHandleController {
...
@@ -70,6 +69,7 @@ public class SwaggerHandleController {
*/
*/
@ApiOperation
(
"导入环境"
)
@ApiOperation
(
"导入环境"
)
@PostMapping
(
"/environment"
)
@PostMapping
(
"/environment"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResponseEntity
<
StatusCode
>
insertEnv
(
@RequestBody
Environment
environment
)
{
public
ResponseEntity
<
StatusCode
>
insertEnv
(
@RequestBody
Environment
environment
)
{
StatusCode
statusCode
=
environmentService
.
importEnv
(
environment
);
StatusCode
statusCode
=
environmentService
.
importEnv
(
environment
);
return
ResponseEntity
.
ok
(
statusCode
);
return
ResponseEntity
.
ok
(
statusCode
);
...
@@ -78,7 +78,7 @@ public class SwaggerHandleController {
...
@@ -78,7 +78,7 @@ public class SwaggerHandleController {
/**
/**
* 导入数据模型
* 导入数据模型
*
*
* @param mould
Docs 数据模型对象
* @param mould
Vos 数据模型对象VO
* @param projectId 项目id
* @param projectId 项目id
* @param pattern 导入类型
* @param pattern 导入类型
* @param mouldId 上级分组
* @param mouldId 上级分组
...
@@ -86,12 +86,12 @@ public class SwaggerHandleController {
...
@@ -86,12 +86,12 @@ public class SwaggerHandleController {
*/
*/
@ApiOperation
(
"导入数据模型"
)
@ApiOperation
(
"导入数据模型"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@PostMapping
(
"/mouldDoc
/{projectId}/{pattern}/{mouldId}
"
)
@PostMapping
(
"/mouldDoc"
)
public
ResponseEntity
<
StatusCode
>
insertMouldDoc
(
@RequestBody
List
<
Mould
Doc
>
mouldDoc
s
,
public
ResponseEntity
<
StatusCode
>
insertMouldDoc
(
@RequestBody
List
<
Mould
Vo
>
mouldVo
s
,
@
PathVariable
Long
projectId
,
@
RequestParam
Long
projectId
,
@
PathVariable
int
pattern
,
@
RequestParam
int
pattern
,
@
PathVariable
Long
mouldId
)
{
@
RequestParam
Long
mouldId
)
{
StatusCode
statusCode
=
mouldDocService
.
importMouldDoc
(
mould
Doc
s
,
projectId
,
pattern
,
mouldId
);
StatusCode
statusCode
=
mouldDocService
.
importMouldDoc
(
mould
Vo
s
,
projectId
,
pattern
,
mouldId
);
return
ResponseEntity
.
ok
(
statusCode
);
return
ResponseEntity
.
ok
(
statusCode
);
}
}
...
@@ -103,19 +103,17 @@ public class SwaggerHandleController {
...
@@ -103,19 +103,17 @@ public class SwaggerHandleController {
* @param pattern 导入方式
* @param pattern 导入方式
* @param interfaceId 上级分组
* @param interfaceId 上级分组
* @param envId 环境id
* @param envId 环境id
* @param bool 是否导入测试用例
* @return 导入结果
* @return 导入结果
*/
*/
@ApiOperation
(
"导入接口文档"
)
@ApiOperation
(
"导入接口文档"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@PostMapping
(
"/interfaceDoc
/{projectId}/{envId}/{pattern}/{interfaceId}/{bool}
"
)
@PostMapping
(
"/interfaceDoc"
)
public
ResponseEntity
<
StatusCode
>
insertInterfaceDoc
(
@RequestBody
List
<
InterfaceVo
>
interfaceVos
,
public
ResponseEntity
<
StatusCode
>
insertInterfaceDoc
(
@RequestBody
List
<
InterfaceVo
>
interfaceVos
,
@PathVariable
Long
projectId
,
@RequestParam
Long
projectId
,
@PathVariable
int
pattern
,
@RequestParam
int
pattern
,
@PathVariable
Long
interfaceId
,
@RequestParam
Long
interfaceId
,
@PathVariable
Long
envId
,
@RequestParam
Long
envId
)
{
@PathVariable
boolean
bool
)
{
StatusCode
statusCode
=
interfaceDocService
.
importInterfaceDoc
(
interfaceVos
,
projectId
,
envId
,
pattern
,
interfaceId
);
StatusCode
statusCode
=
interfaceDocService
.
importInterfaceDoc
(
interfaceVos
,
projectId
,
envId
,
pattern
,
interfaceId
,
bool
);
return
ResponseEntity
.
ok
(
statusCode
);
return
ResponseEntity
.
ok
(
statusCode
);
}
}
...
@@ -124,7 +122,7 @@ public class SwaggerHandleController {
...
@@ -124,7 +122,7 @@ public class SwaggerHandleController {
*/
*/
@GetMapping
@GetMapping
@ApiOperation
(
"获取并解析swagger数据"
)
@ApiOperation
(
"获取并解析swagger数据"
)
public
JSONObject
handleSwagger
(
@RequestParam
String
url
)
{
public
SwaggerOuter
handleSwagger
(
@RequestParam
String
url
)
{
String
loadJson
=
loadJson
(
url
);
String
loadJson
=
loadJson
(
url
);
SwaggerOuter
json
=
new
SwaggerOuter
();
SwaggerOuter
json
=
new
SwaggerOuter
();
if
(
loadJson
!=
null
&&
!
""
.
equals
(
loadJson
))
{
if
(
loadJson
!=
null
&&
!
""
.
equals
(
loadJson
))
{
...
@@ -195,7 +193,7 @@ public class SwaggerHandleController {
...
@@ -195,7 +193,7 @@ public class SwaggerHandleController {
json
.
setTagSummaryList
(
tagSummaryList
);
json
.
setTagSummaryList
(
tagSummaryList
);
}
}
}
}
return
JSONObject
.
parseObject
(
JSON
.
toJSONString
(
json
))
;
return
json
;
}
}
/**
/**
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论