Browse Source

优化项目分页查询

pull/268/head
chenzhihang 8 months ago
parent
commit
dc7e8dc801
2 changed files with 30 additions and 13 deletions
  1. +4
    -2
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java
  2. +26
    -11
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java

+ 4
- 2
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java View File

@@ -114,6 +114,8 @@ public class ModelsServiceImpl implements ModelsService {
String gitCloneEndpoint;
@Value("${git.cloneEndpointIp}")
String gitCloneEndpointIp;
@Value("${git.projectCategoryId}")
Integer projectCategoryId;
@Value("${git.localPath}")
String localPath;
@Value("${minio.accessKey}")
@@ -591,7 +593,7 @@ public class ModelsServiceImpl implements ModelsService {
gitProjectVo.setDescription(modelsVo.getDescription());
gitProjectVo.setPrivate(!modelsVo.getIsPublic());
gitProjectVo.setUserId(userId);
gitProjectVo.setProjectCategoryId(Constant.Git_Category_Id);
gitProjectVo.setProjectCategoryId(projectCategoryId);

// 创建项目
Map project = gitService.createProject(token, gitProjectVo);
@@ -971,7 +973,7 @@ public class ModelsServiceImpl implements ModelsService {
String modelTypeName = modelsVo.getModelType();

//拼接查询url
String url = gitendpoint + "/api/projects.json?sort_direction=praises_count&sort_by=desc&category_id=" + Constant.Git_Category_Id;
String url = gitendpoint + "/api/projects.json?sort_direction=praises_count&sort_by=desc&category_id=" + projectCategoryId;

String name = modelsVo.getName();
if (StringUtils.isNotEmpty(name)) {


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

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

@Value("${minio.dataReleaseBucketName}")
private String bucketName;
@Value("${git.localPath}")
@@ -113,7 +116,7 @@ public class NewDatasetServiceImpl implements NewDatasetService {
gitProjectVo.setDescription(datasetVo.getDescription());
gitProjectVo.setPrivate(!datasetVo.getIsPublic());
gitProjectVo.setUserId(userId);
gitProjectVo.setProjectCategoryId(Constant.Git_Category_Id);
gitProjectVo.setProjectCategoryId(projectCategoryId);
// 创建项目
Map project = gitService.createProject(token, gitProjectVo);
Integer gitlinIid = (Integer) project.get("id");
@@ -343,27 +346,39 @@ public class NewDatasetServiceImpl implements NewDatasetService {

@Override
public Page<NewDatasetVo> newPubilcQueryByPage(Dataset dataset, PageRequest pageRequest) throws Exception {
List<NewDatasetVo> collect = new ArrayList<>();

for (int i = 0; ; i++) {
if (collect.size() < ((pageRequest.getPageNumber() + 1) * pageRequest.getPageSize())) {
List<Map<String, Object>> projects = PubilcQueryGitByPage(dataset.getName(), i);
if (projects == null) {
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()).
collect(Collectors.toList());
return new PageImpl<>(result, pageRequest, collect.size());
}

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

String name = dataset.getName();
if (StringUtils.isNotEmpty(name)) {
url = url + "&search=" + name;
}

String req = httpUtils.sendGetWithToken(url, null, token);
Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req);
List<Map<String, Object>> projects = (List<Map<String, Object>>) stringObjectMap.get("projects");
if (projects == null) {
return new PageImpl<>(new ArrayList<>(), pageRequest, 0);
}
List<NewDatasetVo> collect = convert(projects, Constant.Topic_Dataset, dataset.getDataTag(), dataset.getDataType());
List<NewDatasetVo> result = collect.stream().sorted(Comparator.comparing(NewDatasetVo::getPraisesCount).reversed()).skip((pageRequest.getPageNumber()) * pageRequest.getPageSize()).limit(pageRequest.getPageSize()).
collect(Collectors.toList());
return new PageImpl<>(result, pageRequest, collect.size());
return (List<Map<String, Object>>) stringObjectMap.get("projects");
}


@Override
public NewDatasetVo getNewDatasetDesc(Integer id, String name, String repo, String owner, String version, Boolean isPublic) throws Exception {
LoginUser loginUser = SecurityUtils.getLoginUser();


Loading…
Cancel
Save