提交 7ab813c0 authored 作者: mry's avatar mry

fix(web): 修复了,swagger快速查询接口问题

上级 e82e62c2
......@@ -38,6 +38,9 @@ public class Connect extends BaseEntity {
@ApiModelProperty("所用驱动")
private String driver;
@ApiModelProperty("项目id")
private Long projectId;
/**
* 转化为数据源DTO对象
*
......@@ -47,5 +50,4 @@ public class Connect extends BaseEntity {
return new DataSourceDTO(name, driver, url, username, password);
}
}
......@@ -22,9 +22,6 @@ import org.springframework.web.bind.annotation.*;
import java.sql.SQLException;
import java.util.Optional;
import static org.springframework.http.HttpStatus.NOT_IMPLEMENTED;
import static org.springframework.http.HttpStatus.NO_CONTENT;
/**
* <p>
* 前端控制器
......@@ -78,7 +75,7 @@ public class ConnectController {
* @return 分页查询的结果, 数据库信息
*/
@ApiOperation(value = "分页查询数据库信息")
@GetMapping
@GetMapping("/{projectId}")
@Cacheable(cacheNames = "connectPageCache",
key = "#pageSize + '_' + #pageNum + '_' + #projectId",
condition = "#pageNum != null && #pageSize != null",
......@@ -86,9 +83,10 @@ public class ConnectController {
public ResponseEntity<CommonResultObj<Page<Connect>>> findPageConnects(
@RequestParam(defaultValue = "10") int pageSize,
@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(required = false,defaultValue = "") String name) {
@RequestParam(required = false, defaultValue = "") String name,
@PathVariable Long projectId) {
Page<Connect> results = Optional.ofNullable(connectService.page(Page.of(pageNum, pageSize)
, Wrappers.lambdaQuery(Connect.class)
, Wrappers.lambdaQuery(Connect.class).eq(Connect::getProjectId, projectId)
.like(StringUtils.hasLength(name)
, Connect::getName, name))).orElse(new Page<>());
PageTools.pageTool(pageSize, pageNum, results);
......@@ -104,13 +102,14 @@ public class ConnectController {
* @return 分页查询的结果, 数据库信息
*/
@ApiOperation(value = "条件查询数据库信息")
@GetMapping("/condition")
@GetMapping("/condition/{projectId}")
public ResponseEntity<CommonResultObj<Page<Connect>>> findConditionConnects(
@RequestParam(defaultValue = "10") int pageSize,
@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(required = false,defaultValue = "") String name) {
@RequestParam(required = false, defaultValue = "") String name,
@PathVariable Long projectId) {
Page<Connect> results = Optional.ofNullable(connectService.page(Page.of(pageNum, pageSize)
, Wrappers.lambdaQuery(Connect.class)
, Wrappers.lambdaQuery(Connect.class).eq(Connect::getProjectId, projectId)
.like(StringUtils.hasLength(name)
, Connect::getName, name))).orElse(new Page<>());
PageTools.pageTool(pageSize, pageNum, results);
......@@ -148,8 +147,7 @@ public class ConnectController {
put = {@CachePut(cacheNames = "connectPageCache", key = "#result.body.data.id",
condition = "#p0 != null", unless = "#result.statusCodeValue != 200")
},
evict = {@CacheEvict(cacheNames = "connectPageCache", key = "#p0.id",
condition = "#p0 != null")}
evict = {@CacheEvict(cacheNames = "connectPageCache", allEntries = true)}
)
public ResponseEntity<CommonResultObj<Connect>> updateConnect(@RequestBody Connect connect) {
return CommonResult.pred(connectService::updateById, connect
......
......@@ -26,6 +26,7 @@ import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
* @author mry
......@@ -71,11 +72,11 @@ public class SwaggerController {
/**
* 根据标签名称模糊查询list集合
*
* @param name 查询条件: 名称
* @param name 查询条件: 标签名称
* @param list 查询的集合
* @return 模糊查询的结果
*/
public List<InterfaceInformation> search(String name, List<InterfaceInformation> list) {
public List<InterfaceInformation> tagSearch(String name, List<InterfaceInformation> list) {
@SuppressWarnings(value = "all") List<InterfaceInformation> results = new ArrayList();
Pattern pattern = Pattern.compile(name, Pattern.CASE_INSENSITIVE);
for (InterfaceInformation o : list) {
......@@ -87,6 +88,45 @@ public class SwaggerController {
return results;
}
/**
* 根据接口名称模糊查询list集合
*
* @param name 查询条件: 接口名称
* @param list 查询的集合
* @return 模糊查询的结果
*/
public List<InterfaceInformation> nameSearch(String name, List<InterfaceInformation> list) {
@SuppressWarnings(value = "all") List<InterfaceInformation> results = new ArrayList();
Pattern pattern = Pattern.compile(name, Pattern.CASE_INSENSITIVE);
for (InterfaceInformation o : list) {
Matcher matcher = pattern.matcher(o.getSummary());
if (matcher.find()) {
results.add(o);
}
}
return results;
}
/**
* 根据url糊查询list集合
*
* @param name 查询条件: url
* @param list 查询的集合
* @return 模糊查询的结果
*/
public List<InterfaceInformation> urlSearch(String name, List<InterfaceInformation> list) {
@SuppressWarnings(value = "all") List<InterfaceInformation> results = new ArrayList();
Pattern pattern = Pattern.compile(name, Pattern.CASE_INSENSITIVE);
for (InterfaceInformation o : list) {
Matcher matcher = pattern.matcher(o.getMethodUrl());
if (matcher.find()) {
results.add(o);
}
}
return results;
}
/**
* 用来获取Swagger中的信息
*
......@@ -154,8 +194,21 @@ public class SwaggerController {
return list;
}
// private List<InterfaceInformation> listSearch(List<InterfaceInformation> originalList){
// // nameIndex nameMap -> key name -> value List result1
// // methodIndex methodMap result2
// // tagIndex indexMap
// Map<String, List<InterfaceInformation>> nameMap = originalList.stream().collect(Collectors.groupingBy(InterfaceInformation::getSummary));
// Map<String, List<InterfaceInformation>> urlMap = originalList.stream().collect(Collectors.groupingBy(InterfaceInformation::getMethodUrl));
// Map<String, List<InterfaceInformation>> tagsMap = originalList.stream().collect(Collectors.groupingBy(InterfaceInformation::getTags));
//
// }
/**
* 查询快速添加的接口
* name -> summary
* url -> methodUrl
* label -> tags
*
* @param projectId 项目id
* @param id 环境id
......@@ -174,7 +227,8 @@ public class SwaggerController {
@RequestParam(defaultValue = "10") int pageSize,
@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(required = false, defaultValue = "") String name,
@RequestParam(required = false, defaultValue = "") String url) {
@RequestParam(required = false, defaultValue = "") String url,
@RequestParam(required = false, defaultValue = "") String tag) {
//将所有的默认选项置为false
environmentService.setIsDefaultByWrapper(false, Wrappers.lambdaQuery(Environment.class).eq(Environment::getProjectId, projectId));
//将选中的环境置为true,后续默认选择这个环境
......@@ -184,21 +238,33 @@ public class SwaggerController {
//获得json字符串
String json = loadJson(swaggerUrl);
List<InterfaceInformation> list = getList(json);
List<InterfaceInformation> swaggerSearch;
List<InterfaceInformation> swaggerUrlSearch;
List<InterfaceInformation> swaggerNameSearch;
if ("".equals(url) && "".equals(name)) {
swaggerNameSearch = list;
} else if (!"".equals(url) && "".equals(name)) {
swaggerUrlSearch = search(url, list);
swaggerNameSearch = swaggerUrlSearch;
} else if ("".equals(url) && !"".equals(name)) {
swaggerNameSearch = search(name, list);
List<InterfaceInformation> swaggerTagSearch;
if ("".equals(url) && "".equals(tag) && "".equals(name)) {
swaggerSearch = list;
} else if (!"".equals(url) && "".equals(tag) && "".equals(name)) {
swaggerSearch = urlSearch(url, list);
} else if ("".equals(url) && !"".equals(tag) && "".equals(name)) {
swaggerSearch = tagSearch(tag, list);
} else if ("".equals(url) && "".equals(tag) && !"".equals(name)) {
swaggerSearch = nameSearch(name, list);
} else if (!"".equals(url) && !"".equals(tag) && "".equals(name)) {
swaggerUrlSearch = urlSearch(url, list);
swaggerSearch = tagSearch(tag, swaggerUrlSearch);
} else if (!"".equals(url) && "".equals(tag) && !"".equals(name)) {
swaggerUrlSearch = urlSearch(url, list);
swaggerSearch = nameSearch(name, swaggerUrlSearch);
} else if ("".equals(url) && !"".equals(tag) && !"".equals(name)) {
swaggerTagSearch = tagSearch(tag, list);
swaggerSearch = nameSearch(name, swaggerTagSearch);
} else {
swaggerUrlSearch = search(url, list);
swaggerNameSearch = search(name, swaggerUrlSearch);
swaggerUrlSearch = urlSearch(url, list);
swaggerTagSearch = tagSearch(tag, swaggerUrlSearch);
swaggerSearch = nameSearch(name, swaggerTagSearch);
}
int total = swaggerNameSearch.size();
List<InterfaceInformation> subList = swaggerNameSearch.subList(pageSize * (pageNum - 1), (Math.min((pageNum * pageSize), total)));
int total = swaggerSearch.size();
List<InterfaceInformation> subList = swaggerSearch.subList(pageSize * (pageNum - 1), (Math.min((pageNum * pageSize), total)));
CommonPage<List<InterfaceInformation>> listCommonPage = new CommonPage<>();
listCommonPage.setList(subList);
listCommonPage.setTotal(total);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论