From f0b70feca7940ae57a281e7279e6bebdddeffd51 Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 28 May 2025 17:14:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=A1=B9=E7=9B=AE=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/platform/service/GitService.java | 4 ++ .../platform/service/impl/GitServiceImpl.java | 23 +++++++ .../service/impl/ModelsServiceImpl.java | 61 ++++++++----------- .../service/impl/NewDatasetServiceImpl.java | 31 +--------- .../service/impl/WorkspaceServiceImpl.java | 39 ++++-------- 5 files changed, 68 insertions(+), 90 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/GitService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/GitService.java index bf788d3a..1fe39e39 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/GitService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/GitService.java @@ -38,4 +38,8 @@ public interface GitService { void resetPhoneNum(SysUser sysUser) throws Exception; void deleteUser(SysUser sysUser) throws Exception; + + List> PersonalQueryGitByPage(String token, String login, String name, Integer page) throws Exception; + + List> PubilcQueryGitByPage(String token, String name, Integer page, Integer projectCategoryId) throws Exception; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java index c68b7dec..d81e234e 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java @@ -240,4 +240,27 @@ public class GitServiceImpl implements GitService { throw new Exception("用户不可删除:" + resultMap.get("message")); } } + + @Override + public List> PersonalQueryGitByPage(String token, String login, String name, Integer page) throws Exception { + // 拼接查询url + String url = gitendpoint + "/api/users/" + login + "/projects.json?page=" + page + "&limit=50&category=manage&sort_direction=praises_count&sort_by=desc"; + if (StringUtils.isNotEmpty(name)) { + url = url + "&search=" + name; + } + String req = httpUtils.sendGetWithToken(url, null, token); + Map stringObjectMap = JacksonUtil.parseJSONStr2Map(req); + return (List>) stringObjectMap.get("projects"); + } + + public List> PubilcQueryGitByPage(String token, String name, Integer page, Integer projectCategoryId) throws Exception { + // 拼接查询url + String url = gitendpoint + "/api/projects.json?page=" + page + "&limit=50sort_direction=praises_count&sort_by=desc&category_id=" + projectCategoryId; + if (StringUtils.isNotEmpty(name)) { + url = url + "&search=" + name; + } + String req = httpUtils.sendGetWithToken(url, null, token); + Map stringObjectMap = JacksonUtil.parseJSONStr2Map(req); + return (List>) stringObjectMap.get("projects"); + } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java index 93fa3f0c..2971d368 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java @@ -114,8 +114,8 @@ public class ModelsServiceImpl implements ModelsService { String gitCloneEndpoint; @Value("${git.cloneEndpointIp}") String gitCloneEndpointIp; - @Value("${git.projectCategoryId}") - Integer projectCategoryId; + @Value("${git.projectModelId}") + Integer projectModelId; @Value("${git.localPath}") String localPath; @Value("${minio.accessKey}") @@ -593,7 +593,7 @@ public class ModelsServiceImpl implements ModelsService { gitProjectVo.setDescription(modelsVo.getDescription()); gitProjectVo.setPrivate(!modelsVo.getIsPublic()); gitProjectVo.setUserId(userId); - gitProjectVo.setProjectCategoryId(projectCategoryId); + gitProjectVo.setProjectCategoryId(projectModelId); // 创建项目 Map project = gitService.createProject(token, gitProjectVo); @@ -936,55 +936,45 @@ public class ModelsServiceImpl implements ModelsService { LoginUser loginUser = SecurityUtils.getLoginUser(); String ci4sUsername = loginUser.getUsername(); String gitLinkPassword = loginUser.getSysUser().getOriginPassword(); - Map userInfo = getUserInfo(ci4sUsername, gitLinkPassword); String token = (String) userInfo.get("token"); + String login = (String) userInfo.get("login"); - //拼接查询url - String modelTagName = modelsVo.getModelTag(); - String modelTypeName = modelsVo.getModelType(); - - String url = gitendpoint + "/api/users/" + userInfo.get("login") + "/projects.json?category=manage&sort_direction=praises_count&sort_by=desc"; - - String name = modelsVo.getName(); - if (StringUtils.isNotEmpty(name)) { - url = url + "&search=" + name; + List collect = new ArrayList<>(); + for (int i = 1; ; i++) { + List> projects = gitService.PersonalQueryGitByPage(token, login, modelsVo.getName(), i); + if (projects.isEmpty()) { + break; + } else { + List collecti = convert(projects, Constant.Topic_model, modelsVo.getModelTag(), modelsVo.getModelType()); + collect.addAll(collecti); + } } - - String req = httpUtils.sendGetWithToken(url, null, token); - Map stringObjectMap = JacksonUtil.parseJSONStr2Map(req); - List> projects = (List>) stringObjectMap.get("projects"); - List collect = convert(projects, Constant.Topic_model, modelTagName, modelTypeName); List result = collect.stream().sorted(Comparator.comparing(ModelsVo::getPraisesCount).reversed()).skip((pageRequest.getPageNumber()) * pageRequest.getPageSize()).limit(pageRequest.getPageSize()). collect(Collectors.toList()); return new PageImpl<>(result, pageRequest, collect.size()); } + @Override public Page newPubilcQueryByPage(ModelsVo modelsVo, PageRequest pageRequest) throws Exception { LoginUser loginUser = SecurityUtils.getLoginUser(); String ci4sUsername = loginUser.getUsername(); String gitLinkPassword = loginUser.getSysUser().getOriginPassword(); - Map userInfo = getUserInfo(ci4sUsername, gitLinkPassword); String token = (String) userInfo.get("token"); - String modelTagName = modelsVo.getModelTag(); - String modelTypeName = modelsVo.getModelType(); - - //拼接查询url - String url = gitendpoint + "/api/projects.json?sort_direction=praises_count&sort_by=desc&category_id=" + projectCategoryId; - - String name = modelsVo.getName(); - if (StringUtils.isNotEmpty(name)) { - url = url + "&search=" + name; + List collect = new ArrayList<>(); + for (int i = 1; ; i++) { + List> projects = gitService.PubilcQueryGitByPage(token, modelsVo.getName(), i, projectModelId); + if (projects.isEmpty()) { + break; + } else { + List collecti = convert(projects, Constant.Topic_model, modelsVo.getModelTag(), modelsVo.getModelType()); + collect.addAll(collecti); + } } - - String req = httpUtils.sendGetWithToken(url, null, token); - Map stringObjectMap = JacksonUtil.parseJSONStr2Map(req); - List> projects = (List>) stringObjectMap.get("projects"); - List collect = convert(projects, Constant.Topic_model, modelTagName, modelTypeName); - List result = collect.stream().sorted(Comparator.comparing(ModelsVo::getPraisesCount).reversed()).skip((pageRequest.getPageNumber()) * pageRequest.getPageSize()).limit(pageRequest.getPageSize()). + List result = collect.stream().sorted(Comparator.comparing(ModelsVo::getPraisesCount).reversed()).skip((long) pageRequest.getPageNumber() * pageRequest.getPageSize()).limit(pageRequest.getPageSize()). collect(Collectors.toList()); return new PageImpl<>(result, pageRequest, collect.size()); } @@ -1337,8 +1327,7 @@ public class ModelsServiceImpl implements ModelsService { Map author = (Map) map.get("author"); newModelVo.setCreateBy((String) author.get("name")); newModelVo.setOwner((String) author.get("login")); - String name = (String) map.get("name"); - newModelVo.setName(name.substring((modelTopic + "-").length())); + newModelVo.setName((String) map.get("name")); result.add(newModelVo); } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java index d5c8c928..e181a883 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java @@ -330,7 +330,7 @@ public class NewDatasetServiceImpl implements NewDatasetService { String login = (String) userInfo.get("login"); List collect = new ArrayList<>(); for (int i = 1; ; i++) { - List> projects = PersonalQueryGitByPage(token, login, dataset.getName(), i); + List> projects = gitService.PersonalQueryGitByPage(token, login, dataset.getName(), i); if (projects.isEmpty()) { break; } else { @@ -343,25 +343,13 @@ public class NewDatasetServiceImpl implements NewDatasetService { return new PageImpl<>(result, pageRequest, collect.size()); } - List> PersonalQueryGitByPage(String token, String login, String name, Integer page) throws Exception { - // 拼接查询url - String url = gitendpoint + "/api/users/" + login + "/projects.json?page=" + page + "&limit=50&category=manage&sort_direction=praises_count&sort_by=desc"; - if (StringUtils.isNotEmpty(name)) { - url = url + "&search=" + name; - } - String req = httpUtils.sendGetWithToken(url, null, token); - Map stringObjectMap = JacksonUtil.parseJSONStr2Map(req); - return (List>) stringObjectMap.get("projects"); - } - - @Override public Page newPubilcQueryByPage(Dataset dataset, PageRequest pageRequest) throws Exception { String token = gitService.checkoutToken(); List collect = new ArrayList<>(); for (int i = 1; ; i++) { - List> projects = PubilcQueryGitByPage(token, dataset.getName(), i); + List> projects = gitService.PubilcQueryGitByPage(token, dataset.getName(), i, projectDatasetId); if (projects.isEmpty()) { break; } else { @@ -374,18 +362,6 @@ public class NewDatasetServiceImpl implements NewDatasetService { return new PageImpl<>(result, pageRequest, collect.size()); } - List> PubilcQueryGitByPage(String token, String name, Integer page) throws Exception { - // 拼接查询url - String url = gitendpoint + "/api/projects.json?page=" + page + "&limit=50sort_direction=praises_count&sort_by=desc&category_id=" + projectDatasetId; - if (StringUtils.isNotEmpty(name)) { - url = url + "&search=" + name; - } - String req = httpUtils.sendGetWithToken(url, null, token); - Map stringObjectMap = JacksonUtil.parseJSONStr2Map(req); - return (List>) 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(); @@ -712,8 +688,7 @@ public class NewDatasetServiceImpl implements NewDatasetService { Map author = (Map) map.get("author"); newDatasetVo.setCreateBy((String) author.get("name")); newDatasetVo.setOwner((String) author.get("login")); - String name = (String) map.get("name"); - newDatasetVo.setName(name.substring((datasetTopic + "-").length())); + newDatasetVo.setName((String) map.get("name")); result.add(newDatasetVo); } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkspaceServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkspaceServiceImpl.java index a913b45a..353f0455 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkspaceServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkspaceServiceImpl.java @@ -12,6 +12,8 @@ import com.ruoyi.platform.vo.NewDatasetVo; import com.ruoyi.system.api.constant.Constant; import com.ruoyi.system.api.model.LoginUser; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; import org.springframework.stereotype.Service; import redis.clients.jedis.Jedis; @@ -87,43 +89,28 @@ public class WorkspaceServiceImpl implements WorkspaceService { @Override public Map getAssetCount(Boolean isPublic) throws Exception { Map assetCountMap = new HashMap<>(); - String token = gitService.checkoutToken(); int availableRange = isPublic ? Constant.Image_Type_Pub : Constant.Image_Type_Pri; - String datasetUrl; - String modelUrl; + Page newDatasetVos; + Page modelsVos; if (isPublic) { // 数据集 - datasetUrl = gitendpoint + "/api/projects.json?sort_direction=updated_on&sort_by=desc&category_id=" + Constant.Git_Category_Id; + newDatasetVos = newDatasetService.newPubilcQueryByPage(new Dataset(), PageRequest.of(0, Integer.MAX_VALUE)); // 模型 - modelUrl = gitendpoint + "/api/projects.json?sort_direction=updated_on&sort_by=desc&category_id=" + Constant.Git_Category_Id; + modelsVos = modelsService.newPubilcQueryByPage(new ModelsVo(), PageRequest.of(0, Integer.MAX_VALUE)); } else { - Jedis jedis = new Jedis(redisHost, redisPort); - LoginUser loginUser = SecurityUtils.getLoginUser(); - String ci4sUsername = loginUser.getUsername(); - String userReq = jedis.get(ci4sUsername + "_gitUserInfo"); - Map userInfo = JsonUtils.jsonToMap(userReq); - - datasetUrl = gitendpoint + "/api/users/" + userInfo.get("login") + "/projects.json?category=manage"; - modelUrl = gitendpoint + "/api/users/" + userInfo.get("login") + "/projects.json?category=manage"; + // 数据集 + newDatasetVos = newDatasetService.newPersonalQueryByPage(new Dataset(), PageRequest.of(0, Integer.MAX_VALUE)); + // 模型 + modelsVos = modelsService.newPersonalQueryByPage(new ModelsVo(), PageRequest.of(0, Integer.MAX_VALUE)); } - - String req = httpUtils.sendGetWithToken(datasetUrl, null, token); - Map stringObjectMap = JacksonUtil.parseJSONStr2Map(req); - List> projects = (List>) stringObjectMap.get("projects"); - List collect1 = newDatasetService.convert(projects, Constant.Topic_Dataset, null, null); - assetCountMap.put("dataset", collect1.size()); - - req = httpUtils.sendGetWithToken(modelUrl, null, token); - stringObjectMap = JacksonUtil.parseJSONStr2Map(req); - projects = (List>) stringObjectMap.get("projects"); - List collect2 = modelsService.convert(projects, Constant.Topic_model, null, null); - assetCountMap.put("model", collect2.size()); + assetCountMap.put("dataset", (int) newDatasetVos.getTotalElements()); + assetCountMap.put("model", (int) modelsVos.getTotalElements()); // 镜像 Image image = new Image(); if (isPublic) { image.setImageType(Constant.Image_Type_Pub); - }else { + } else { LoginUser loginUser = SecurityUtils.getLoginUser(); image.setCreateBy(loginUser.getUsername()); image.setImageType(Constant.Image_Type_Pri);