Browse Source

优化项目分页查询

pull/268/head
chenzhihang 10 months ago
parent
commit
3a5845b623
1 changed files with 12 additions and 17 deletions
  1. +12
    -17
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java

+ 12
- 17
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java View File

@@ -75,8 +75,8 @@ public class NewDatasetServiceImpl implements NewDatasetService {
String gitCloneEndpoint; String gitCloneEndpoint;
@Value("${git.cloneEndpointIp}") @Value("${git.cloneEndpointIp}")
String gitCloneEndpointIp; String gitCloneEndpointIp;
@Value("${git.projectCategoryId}")
Integer projectCategoryId;
@Value("${git.projectDatasetId}")
Integer projectDatasetId;


@Value("${minio.dataReleaseBucketName}") @Value("${minio.dataReleaseBucketName}")
private String bucketName; private String bucketName;
@@ -112,11 +112,11 @@ public class NewDatasetServiceImpl implements NewDatasetService {
String repositoryName = ci4sUsername + "_dataset_" + DateUtils.dateTimeNow(); String repositoryName = ci4sUsername + "_dataset_" + DateUtils.dateTimeNow();
GitProjectVo gitProjectVo = new GitProjectVo(); GitProjectVo gitProjectVo = new GitProjectVo();
gitProjectVo.setRepositoryName(repositoryName); gitProjectVo.setRepositoryName(repositoryName);
gitProjectVo.setName(Constant.Topic_Dataset + "-" + datasetVo.getName());
gitProjectVo.setName(datasetVo.getName());
gitProjectVo.setDescription(datasetVo.getDescription()); gitProjectVo.setDescription(datasetVo.getDescription());
gitProjectVo.setPrivate(!datasetVo.getIsPublic()); gitProjectVo.setPrivate(!datasetVo.getIsPublic());
gitProjectVo.setUserId(userId); gitProjectVo.setUserId(userId);
gitProjectVo.setProjectCategoryId(projectCategoryId);
gitProjectVo.setProjectCategoryId(projectDatasetId);
// 创建项目 // 创建项目
Map project = gitService.createProject(token, gitProjectVo); Map project = gitService.createProject(token, gitProjectVo);
Integer gitlinIid = (Integer) project.get("id"); Integer gitlinIid = (Integer) project.get("id");
@@ -347,31 +347,26 @@ public class NewDatasetServiceImpl implements NewDatasetService {
@Override @Override
public Page<NewDatasetVo> newPubilcQueryByPage(Dataset dataset, PageRequest pageRequest) throws Exception { public Page<NewDatasetVo> newPubilcQueryByPage(Dataset dataset, PageRequest pageRequest) throws Exception {
List<NewDatasetVo> collect = new ArrayList<>(); List<NewDatasetVo> collect = new ArrayList<>();
Map<String, Object> stringObjectMap = Collections.emptyMap();


for (int i = 1; ; i++) { for (int i = 1; ; i++) {
if (collect.size() < ((pageRequest.getPageNumber() + 1) * pageRequest.getPageSize())) {
stringObjectMap = PubilcQueryGitByPage(dataset.getName(), i);
List<Map<String, Object>> projects = (List<Map<String, Object>>) stringObjectMap.get("projects");
if (projects.isEmpty()) {
break;
} else {
List<NewDatasetVo> collecti = convert(projects, Constant.Topic_Dataset, dataset.getDataTag(), dataset.getDataType());
collect.addAll(collecti);
}
} else {
Map<String, Object> stringObjectMap = PubilcQueryGitByPage(dataset.getName(), i);
List<Map<String, Object>> projects = (List<Map<String, Object>>) stringObjectMap.get("projects");
if (projects.isEmpty()) {
break; break;
} else {
List<NewDatasetVo> collecti = convert(projects, Constant.Topic_Dataset, dataset.getDataTag(), dataset.getDataType());
collect.addAll(collecti);
} }
} }
List<NewDatasetVo> result = collect.stream().sorted(Comparator.comparing(NewDatasetVo::getPraisesCount).reversed()).skip((long) pageRequest.getPageNumber() * pageRequest.getPageSize()).limit(pageRequest.getPageSize()). List<NewDatasetVo> result = collect.stream().sorted(Comparator.comparing(NewDatasetVo::getPraisesCount).reversed()).skip((long) pageRequest.getPageNumber() * pageRequest.getPageSize()).limit(pageRequest.getPageSize()).
collect(Collectors.toList()); collect(Collectors.toList());
return new PageImpl<>(result, pageRequest, (Integer)stringObjectMap.get("total_count"));
return new PageImpl<>(result, pageRequest, collect.size());
} }


Map<String, Object> PubilcQueryGitByPage(String name, Integer page) throws Exception { Map<String, Object> PubilcQueryGitByPage(String name, Integer page) throws Exception {
String token = gitService.checkoutToken(); String token = gitService.checkoutToken();
// 拼接查询url // 拼接查询url
String url = gitendpoint + "/api/projects.json?page=" + page + "&limit=50sort_direction=praises_count&sort_by=desc&category_id=" + projectCategoryId;
String url = gitendpoint + "/api/projects.json?page=" + page + "&limit=50sort_direction=praises_count&sort_by=desc&category_id=" + projectDatasetId;


if (StringUtils.isNotEmpty(name)) { if (StringUtils.isNotEmpty(name)) {
url = url + "&search=" + name; url = url + "&search=" + name;


Loading…
Cancel
Save