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 1f23da42..3e28b850 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 @@ -4,6 +4,7 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.platform.domain.Dataset; import com.ruoyi.platform.service.NewDatasetService; import com.ruoyi.platform.vo.NewDatasetVo; +import com.ruoyi.platform.vo.QueryModelMetricsVo; import io.swagger.annotations.ApiOperation; import org.springframework.core.io.InputStreamResource; import org.springframework.data.domain.PageRequest; @@ -149,4 +150,10 @@ public class NewDatasetFromGitController { public ResponseEntity downloadDataset(@RequestParam("url") String url) throws Exception { return newDatasetService.downloadDatasetlocal(url); } + + @PostMapping("/getVersionsCompare") + @ApiOperation(value = "获取数据集版本对比") + public AjaxResult getVersionsCompare(@RequestBody QueryModelMetricsVo querydatasetVo) throws Exception{ + return AjaxResult.success(this.newDatasetService.getVersionsCompare(querydatasetVo)); + } } 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 30338e95..33fcf5ea 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 @@ -132,4 +132,9 @@ public class NewModelFromGitController { return AjaxResult.success(); } + @PostMapping("/getVersionsCompare") + @ApiOperation(value = "获取模型版本对比") + public AjaxResult getVersionsCompare(@RequestBody QueryModelMetricsVo queryModelMetricsVo) throws Exception{ + return AjaxResult.success(this.modelsService.getVersionsCompare(queryModelMetricsVo)); + } } 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 d3d08871..3cc44ba1 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 @@ -114,4 +114,6 @@ public interface ModelsService { void deleteModel(Integer repoId, String identifier, String owner, Boolean isPublic) throws Exception; void deleteVersion(Integer repoId, String identifier, String owner, String version, String relativePath) throws Exception; + + Map getVersionsCompare(QueryModelMetricsVo queryModelMetricsVo) 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 e78eb47c..c4967dba 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 @@ -2,6 +2,7 @@ package com.ruoyi.platform.service; import com.ruoyi.platform.domain.Dataset; import com.ruoyi.platform.vo.NewDatasetVo; +import com.ruoyi.platform.vo.QueryModelMetricsVo; import org.springframework.core.io.InputStreamResource; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -36,4 +37,6 @@ public interface NewDatasetService { void deleteDatasetNew(Integer repoId, String repo, String owner, Boolean isPublic) throws Exception; void deleteDatasetVersionNew(Integer repoId, String repo, String owner, String version, String relativePath) throws Exception; + + Map getVersionsCompare(QueryModelMetricsVo querydatasetVo) throws Exception; } 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 02a5c2d1..5f71cc02 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 @@ -1190,6 +1190,25 @@ public class ModelsServiceImpl implements ModelsService { FileUtil.renameFile(rootPath, rootPath + "_deleted_" + System.currentTimeMillis()); } + @Override + public Map getVersionsCompare(QueryModelMetricsVo queryModelMetricsVo) throws Exception { + Map result = new HashMap<>(); + List versions = queryModelMetricsVo.getVersions(); + + ModelDependency1 modelDependency1 = modelDependency1Dao.queryByRepoAndVersion(queryModelMetricsVo.getRepoId(), queryModelMetricsVo.getIdentifier(), versions.get(0)); + ModelMetaVo modelMetaVo1 = JSON.parseObject(modelDependency1.getMeta(), ModelMetaVo.class); + + ModelDependency1 modelDependency2 = modelDependency1Dao.queryByRepoAndVersion(queryModelMetricsVo.getRepoId(), queryModelMetricsVo.getIdentifier(), versions.get(1)); + ModelMetaVo modelMetaVo2 = JSON.parseObject(modelDependency2.getMeta(), ModelMetaVo.class); + + Map compareMap = ConvertUtil.compareObjects(modelMetaVo1, modelMetaVo2); + + result.put("version1", modelMetaVo1); + result.put("version2", modelMetaVo2); + result.put("differences", compareMap); + return result; + } + public List convert(List> lst, String modelTopic, String modelTagName, String modelTypeName) { if (lst != null && lst.size() > 0) { List result = new ArrayList<>(); 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 f7171d47..9e0fa753 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 @@ -16,6 +16,7 @@ import com.ruoyi.platform.service.NewDatasetService; import com.ruoyi.platform.utils.*; import com.ruoyi.platform.vo.GitProjectVo; import com.ruoyi.platform.vo.NewDatasetVo; +import com.ruoyi.platform.vo.QueryModelMetricsVo; import com.ruoyi.platform.vo.VersionVo; import com.ruoyi.system.api.model.LoginUser; import org.apache.commons.io.FileUtils; @@ -455,6 +456,22 @@ public class NewDatasetServiceImpl implements NewDatasetService { FileUtil.renameFile(rootPath, rootPath + "_deleted_" + System.currentTimeMillis()); } + @Override + public Map getVersionsCompare(QueryModelMetricsVo querydatasetVo) throws Exception { + Map result = new HashMap<>(); + List versions = querydatasetVo.getVersions(); + + NewDatasetVo newDatasetDesc1 = getNewDatasetDesc(querydatasetVo.getRepoId(), null, querydatasetVo.getIdentifier(), querydatasetVo.getOwner(), versions.get(0), querydatasetVo.getIsPublic()); + NewDatasetVo newDatasetDesc2 = getNewDatasetDesc(querydatasetVo.getRepoId(), null, querydatasetVo.getIdentifier(), querydatasetVo.getOwner(), versions.get(1), querydatasetVo.getIsPublic()); + + Map compareMap = ConvertUtil.compareObjects(newDatasetDesc1, newDatasetDesc2); + + result.put("version1", newDatasetDesc1); + result.put("version2", newDatasetDesc2); + result.put("differences", compareMap); + return result; + } + @Override public List> uploadDatasetlocal(MultipartFile[] files, String uuid) throws Exception { List> results = new ArrayList<>(); diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/QueryModelMetricsVo.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/QueryModelMetricsVo.java index 435eaea4..d0092819 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/QueryModelMetricsVo.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/QueryModelMetricsVo.java @@ -19,4 +19,8 @@ public class QueryModelMetricsVo { private List metrics; private String type; + + private Boolean isPublic; + + private String owner; }