diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/NewDatasetFromGitController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/NewDatasetFromGitController.java index 84bcf045..cb6e4327 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/NewDatasetFromGitController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/NewDatasetFromGitController.java @@ -26,7 +26,6 @@ public class NewDatasetFromGitController { private NewDatasetService newDatasetService; - /** * 新增数据集与版本新 * @@ -57,50 +56,51 @@ public class NewDatasetFromGitController { @GetMapping("/queryDatasets") @ApiOperation("数据集广场公开数据集分页查询,根据data_type,data_tag筛选,true公开false私有") public AjaxResult queryDatasets(Dataset dataset, @RequestParam("page") int page, - @RequestParam("size") int size, + @RequestParam("size") int size, @RequestParam(value = "is_public") Boolean isPublic, - @RequestParam(value = "data_type", required = false) String dataType, - @RequestParam(value = "data_tag", required = false) String dataTag) throws Exception { + @RequestParam(value = "data_type", required = false) String dataType, + @RequestParam(value = "data_tag", required = false) String dataTag) throws Exception { PageRequest pageRequest = PageRequest.of(page, size); - if(isPublic){ + if (isPublic) { return AjaxResult.success(this.newDatasetService.newPubilcQueryByPage(dataset, pageRequest)); - }else { + } else { return AjaxResult.success(this.newDatasetService.newPersonalQueryByPage(dataset, pageRequest)); } } @GetMapping("/getVersionList") @ApiOperation(value = "获取分支列表") - public AjaxResult getVersionList(@RequestParam("identifier") String repo,@RequestParam("owner")String owner) throws Exception { - return AjaxResult.success(this.newDatasetService.getVersionList(repo,owner)); + public AjaxResult getVersionList(@RequestParam("identifier") String repo, @RequestParam("owner") String owner) throws Exception { + return AjaxResult.success(this.newDatasetService.getVersionList(repo, owner)); } @GetMapping("/getDatasetDetail") @ApiOperation(value = "获取数据集详情") public AjaxResult getDatasetVersions(@RequestParam("name") String name, @RequestParam("id") Integer id, - @RequestParam(value ="owner",required = false)String owner, - @RequestParam(value = "identifier",required = false) String identifier, - @RequestParam(value = "version",required = false)String version) throws Exception { - return AjaxResult.success(this.newDatasetService.getNewDatasetDesc(id,name,identifier,owner,version)); + @RequestParam(value = "owner", required = false) String owner, + @RequestParam(value = "identifier", required = false) String identifier, + @RequestParam(value = "version", required = false) String version) throws Exception { + return AjaxResult.success(this.newDatasetService.getNewDatasetDesc(id, name, identifier, owner, version)); } @DeleteMapping("/deleteDataset") @ApiOperation(value = "删除数据集") - public AjaxResult deleteDataset(@RequestParam("identifier") String repo,@RequestParam("owner")String owner) throws Exception { - this.newDatasetService.deleteDatasetNew(repo,owner); + public AjaxResult deleteDataset(@RequestParam("identifier") String repo, @RequestParam("owner") String owner) throws Exception { + this.newDatasetService.deleteDatasetNew(repo, owner); return AjaxResult.success(); } @DeleteMapping("/deleteDatasetVersion") @ApiOperation(value = "删除数据集版本") - public AjaxResult deleteDatasetVersion(@RequestParam("identifier") String repo,@RequestParam("owner")String owner,@RequestParam("version")String version) throws Exception { + public AjaxResult deleteDatasetVersion(@RequestParam("identifier") String repo, @RequestParam("owner") String owner, @RequestParam("version") String version, + @RequestParam("relative_paths") String relativePaths) throws Exception { // 查询版本,如果是最后一个版本,则不能删除 List> versionList = this.newDatasetService.getVersionList(repo, owner); - if(versionList.size() == 1){ + if (versionList.size() == 1) { return AjaxResult.error("当前数据集只有一个版本,不能删除该版本"); } - this.newDatasetService.deleteDatasetVersionNew(repo,owner,version); + this.newDatasetService.deleteDatasetVersionNew(repo, owner, version, relativePaths); return AjaxResult.success(); } @@ -109,32 +109,32 @@ public class NewDatasetFromGitController { * 上传数据集 * * @param files 上传的数据集文件 - * @param uuid 上传唯一标识,构建url + * @param uuid 上传唯一标识,构建url * @return 上传结果 */ @CrossOrigin(origins = "*", allowedHeaders = "*") @PostMapping("/upload") @ApiOperation(value = "上传数据集") public AjaxResult uploadDataset(@RequestParam("file") MultipartFile[] files, @RequestParam("uuid") String uuid) throws Exception { - return AjaxResult.success(this.newDatasetService.uploadDatasetlocal(files,uuid)); + return AjaxResult.success(this.newDatasetService.uploadDatasetlocal(files, uuid)); } /** * 数据集打包下载 * - * @param version 数据集版本 + * @param version 数据集版本 * @return 单条数据 */ @GetMapping("/downloadAllFiles") @ApiOperation(value = "下载同一版本下所有数据集,并打包") - public ResponseEntity downloadAllDatasetFiles(@RequestParam("name") String name, @RequestParam("id") Integer id, @RequestParam("version") String version) throws Exception { - return newDatasetService.downloadAllDatasetFilesNew(name,id, version); + public ResponseEntity downloadAllDatasetFiles(@RequestParam("name") String name, @RequestParam("id") Integer id, @RequestParam("version") String version) throws Exception { + return newDatasetService.downloadAllDatasetFilesNew(name, id, version); } /** * 下载数据集 * - * @param url ps:路径 + * @param url ps:路径 * @return 单条数据 */ diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java index b4ab0e43..732e2d97 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java @@ -44,7 +44,7 @@ public class NewModelFromGitController { @GetMapping("/downloadAllFiles") @ApiOperation(value = "下载同一版本下所有模型,并打包") - public ResponseEntity downloadAllDatasetFiles(@RequestParam("name") String name, @RequestParam("id") Integer id, @RequestParam("version") String version) throws Exception { + public ResponseEntity downloadAllDatasetFiles(@RequestParam("name") String name, @RequestParam("id") Integer id, @RequestParam("version") String version) throws Exception { return modelsService.downloadAllModelFilesNew(name, id, version); } @@ -95,19 +95,21 @@ public class NewModelFromGitController { @DeleteMapping("/delete") @ApiOperation(value = "删除模型") - public AjaxResult deleteModel(@RequestParam("id") Integer id, @RequestParam("identifier") String identifier, @RequestParam("owner") String owner) throws Exception { + public AjaxResult deleteModel(@RequestParam("id") Integer id, @RequestParam("identifier") String identifier, + @RequestParam("owner") String owner) throws Exception { this.modelsService.deleteModel(id, identifier, owner); return AjaxResult.success(); } @DeleteMapping("/deleteVersion") @ApiOperation(value = "删除模型版本") - public AjaxResult deleteVersion(@RequestParam("id") Integer id, @RequestParam("identifier") String identifier, @RequestParam("owner") String owner, @RequestParam("version") String version) throws Exception { + public AjaxResult deleteVersion(@RequestParam("id") Integer id, @RequestParam("identifier") String identifier, @RequestParam("owner") String owner, @RequestParam("version") String version + , @RequestParam("relative_paths") String relativePaths) throws Exception { List> versionList = this.modelsService.getVersionList(identifier, owner); - if(versionList.size() == 1){ + if (versionList.size() == 1) { return AjaxResult.error("当前模型只有一个版本,不能删除该版本"); } - this.modelsService.deleteVersion(id, identifier, owner, version); + this.modelsService.deleteVersion(id, identifier, owner, version, relativePaths); return AjaxResult.success(); } } 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 735c894f..a8e2ab79 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 @@ -2,7 +2,6 @@ package com.ruoyi.platform.service; import com.ruoyi.platform.vo.GitProjectVo; -import java.io.IOException; import java.util.List; import java.util.Map; @@ -23,7 +22,7 @@ public interface GitService { void deleteProject(String owner, String projectName) throws Exception; - void deleteBranch(String owner,String projectName ,String branchName) throws Exception; + void deleteBranch(String owner, String projectName, String branchName, String localPath) throws Exception; Map getUserInfo(String token) throws Exception; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java index 13d48756..ec330f1d 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java @@ -14,7 +14,6 @@ import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.List; import java.util.Map; -import java.util.concurrent.CompletableFuture; /** * (Models)表服务接口 @@ -108,5 +107,5 @@ public interface ModelsService { void deleteModel(Integer repoId, String identifier, String owner) throws Exception; - void deleteVersion(Integer repoId, String identifier, String owner, String version) throws Exception; + void deleteVersion(Integer repoId, String identifier, String owner, String version, String relativePath) throws Exception; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/NewDatasetService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/NewDatasetService.java index 71e96ccd..1da4dfee 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/NewDatasetService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/NewDatasetService.java @@ -29,5 +29,5 @@ public interface NewDatasetService { void deleteDatasetNew(String repo, String owner) throws Exception; - void deleteDatasetVersionNew(String repo, String owner, String version) throws Exception; + void deleteDatasetVersionNew(String repo, String owner, String version, String relativePath) 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 1ecccaa8..b7573c4e 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 @@ -8,12 +8,15 @@ import com.ruoyi.platform.utils.JsonUtils; import com.ruoyi.platform.vo.GitProjectVo; import com.ruoyi.system.api.model.LoginUser; import org.apache.commons.lang3.StringUtils; +import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.api.errors.GitAPIException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import redis.clients.jedis.Jedis; +import java.io.File; import java.io.IOException; import java.util.Collections; import java.util.HashMap; @@ -147,7 +150,13 @@ public class GitServiceImpl implements GitService { } @Override - public void deleteBranch(String owner, String projectName, String branchName) throws Exception { + public void deleteBranch(String owner, String projectName, String branchName, String localPath) throws Exception { + try (Git git = Git.open(new File(localPath))) { + git.checkout().setName("master").call(); + git.branchDelete().setBranchNames(branchName).setForce(true).call(); + } catch (IOException | GitAPIException e) { + log.error("Exception occurred while creating local branch based on master",e); + } String token = this.checkoutToken(); HttpUtils.sendDeleteRequest("https://www.gitlink.org.cn/api/v1/" + owner + "/" + projectName + "/branches/" + branchName + ".json", token); } 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 3f79d897..7f07de43 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 @@ -872,7 +872,7 @@ public class ModelsServiceImpl implements ModelsService { } @Override - public List> getVersionList(String identifier, String owner) throws Exception { + public List> getVersionList(String identifier, String owner) throws Exception { List> brancheList = gitService.getBrancheList(owner, identifier); return brancheList.stream() .filter(branch -> !"master".equals(branch.get("name"))) @@ -946,8 +946,8 @@ public class ModelsServiceImpl implements ModelsService { } @Override - public void deleteVersion(Integer repoId, String identifier, String owner, String version) throws Exception { - gitService.deleteBranch(owner, identifier, version); + public void deleteVersion(Integer repoId, String identifier, String owner, String version, String relativePath) throws Exception { + gitService.deleteBranch(owner, identifier, version, localPath + relativePath); //删除模型依赖 modelDependency1Dao.deleteModel(repoId, identifier, owner, version); modelDependency1Dao.deleteModelDependency(repoId, identifier, owner, version); 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 16a2f29a..9248b9ff 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 @@ -316,12 +316,12 @@ public class NewDatasetServiceImpl implements NewDatasetService { } @Override - public void deleteDatasetVersionNew(String repo, String owner, String version) throws Exception { + public void deleteDatasetVersionNew(String repo, String owner, String version, String relativePath) throws Exception { Jedis jedis = new Jedis(redisHost); LoginUser loginUser = SecurityUtils.getLoginUser(); String ci4sUsername = loginUser.getUsername(); String token = jedis.get(ci4sUsername+"_gitToken"); - gitService.deleteBranch(owner, repo, version); + gitService.deleteBranch(owner, repo, version, localPathlocal + relativePath); } @Override