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 732e2d97..1d845818 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 @@ -89,8 +89,8 @@ public class NewModelFromGitController { @GetMapping("/getModelDependencyTree") @ApiOperation(value = "获取模型依赖关系树") - public AjaxResult getModelDependencyTree(@RequestParam("id") Integer id, @RequestParam("model_name") String modelName, @RequestParam("version") String version) throws Exception { - return AjaxResult.success(this.modelsService.getModelDependencyTree(id, modelName, version)); + public AjaxResult getModelDependencyTree(@RequestParam("id") Integer id, @RequestParam("identifier") String identifier, @RequestParam("version") String version) throws Exception { + return AjaxResult.success(this.modelsService.getModelDependencyTree(id, identifier, version)); } @DeleteMapping("/delete") diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java index 2937743b..22c4559e 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java @@ -11,11 +11,11 @@ public interface ModelDependency1Dao { List queryModelDependency(@Param("modelName") String modelName, @Param("repoId") Integer repoId, @Param("owner") String owner); - ModelDependency1 queryByModelNameAndVersion(@Param("repoId") Integer repoId, @Param("modelName") String modelName, @Param("version") String version); + ModelDependency1 queryByRepoAndVersion(@Param("repoId") Integer repoId, @Param("identifier") String identifier, @Param("version") String version); List queryByParentModel(@Param("parentModel") String parentModel); int deleteModel(@Param("repoId") Integer repoId, @Param("identifier") String identifier, @Param("owner") String owner, @Param("version") String version); - int deleteModelDependency(@Param("repoId") Integer repoId, @Param("identifier") String identifier, @Param("owner") String owner, @Param("version") String version); + int deleteModelDependency(@Param("parentModel") String parentModel); } 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 ec330f1d..f6b2e495 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 @@ -103,7 +103,7 @@ public interface ModelsService { ModelsVo getModelDetail(Integer id, String name, String identifier, String owner, String version) throws Exception; - ModelDependency1TreeVo getModelDependencyTree(Integer repoId, String modelName, String version) throws Exception; + ModelDependency1TreeVo getModelDependencyTree(Integer repoId, String identifier, String version) throws Exception; void deleteModel(Integer repoId, String identifier, String owner) 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 f4df9af8..0a7a56ad 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 @@ -1,5 +1,6 @@ package com.ruoyi.platform.service.impl; +import com.alibaba.fastjson2.JSON; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.platform.annotations.CheckDuplicate; @@ -614,7 +615,7 @@ public class ModelsServiceImpl implements ModelsService { Map metaMap = JsonUtils.objectToMap(modelMetaVo); YamlUtils.generateYamlFile(metaMap, metaPath, "metadata"); - String meta = metaMap.toString(); + String meta = JSON.toJSONString(metaMap); DVCUtils.dvcInit(rootPath); // 配置远程S3地址 @@ -710,7 +711,7 @@ public class ModelsServiceImpl implements ModelsService { Map metaMap = JsonUtils.objectToMap(modelMetaVo); YamlUtils.generateYamlFile(metaMap, metaPath, "metadata"); - String meta = metaMap.toString(); + String meta = JSON.toJSONString(metaMap); // 配置远程S3地址 String s3Path = "management-platform-files/" + ci4sUsername + "/model/" + modelsVo.getId() + "/" + repositoryName + "/" + branchName; @@ -921,16 +922,16 @@ public class ModelsServiceImpl implements ModelsService { } @Override - public ModelDependency1TreeVo getModelDependencyTree(Integer repoId, String modelName, String version) throws Exception { - ModelDependency1 modelDependency1 = modelDependency1Dao.queryByModelNameAndVersion(repoId, modelName, version); + public ModelDependency1TreeVo getModelDependencyTree(Integer repoId, String identifier, String version) throws Exception { + ModelDependency1 modelDependency1 = modelDependency1Dao.queryByRepoAndVersion(repoId, identifier, version); ModelDependency1TreeVo modelDependency1TreeVo = new ModelDependency1TreeVo(); BeanUtils.copyProperties(modelDependency1, modelDependency1TreeVo); - //递归查询父模型 - List parentModelList = new ArrayList<>(); - getParentModel(parentModelList, modelDependency1); - modelDependency1TreeVo.setPatrentModelList(parentModelList); + ModelMetaVo modelMetaVo = JSON.parseObject(modelDependency1TreeVo.getMeta(), ModelMetaVo.class); + modelDependency1TreeVo.setModelMeta(modelMetaVo); + //递归查询父模型 + getParentModel(modelDependency1TreeVo); //递归查询子模型 getChildModel(modelDependency1TreeVo); @@ -942,7 +943,12 @@ public class ModelsServiceImpl implements ModelsService { gitService.deleteProject(owner, identifier); //删除模型依赖 modelDependency1Dao.deleteModel(repoId, identifier, owner, null); - modelDependency1Dao.deleteModelDependency(repoId, identifier, owner, null); + + HashMap map = new HashMap<>(); + map.put("repoId", repoId); + map.put("identifier", identifier); + String parentModel = JSON.toJSONString(map); + modelDependency1Dao.deleteModelDependency(parentModel); } @Override @@ -950,7 +956,12 @@ public class ModelsServiceImpl implements ModelsService { gitService.deleteBranch(owner, identifier, version, localPath + relativePath); //删除模型依赖 modelDependency1Dao.deleteModel(repoId, identifier, owner, version); - modelDependency1Dao.deleteModelDependency(repoId, identifier, owner, version); + HashMap map = new HashMap<>(); + map.put("repoId", repoId); + map.put("identifier", identifier); + map.put("version", version); + String parentModel = JSON.toJSONString(map); + modelDependency1Dao.deleteModelDependency(parentModel); } public List convert(List> lst) { @@ -987,29 +998,44 @@ public class ModelsServiceImpl implements ModelsService { return new ArrayList<>(); } - void getParentModel(List modelList, ModelDependency1 modelDependency1) { - if (modelDependency1.getParentModel() != null) { - String[] split = modelDependency1.getParentModel().split(":"); - Integer parentRepoId = Integer.valueOf(split[0]); - String parentModelName = split[1]; - String parentModelVersion = split[2]; - ModelDependency1 parentModel = modelDependency1Dao.queryByModelNameAndVersion(parentRepoId, parentModelName, parentModelVersion); - modelList.add(parentModel); - if (parentModel != null && parentModel.getParentModel() != null) { - getParentModel(modelList, parentModel); + void getParentModel(ModelDependency1TreeVo modelDependency1TreeVo) { + if (modelDependency1TreeVo.getParentModel() != null) { + ModelDependency1 parent = JSON.parseObject(modelDependency1TreeVo.getParentModel(), ModelDependency1.class); + ModelDependency1 parentModel = modelDependency1Dao.queryByRepoAndVersion(parent.getRepoId(), parent.getIdentifier(), parent.getVersion()); + + if (parentModel != null) { + ModelDependency1TreeVo parentModelVo = new ModelDependency1TreeVo(); + BeanUtils.copyProperties(parentModel, parentModelVo); + + ModelMetaVo modelMetaVo = JSON.parseObject(parentModelVo.getMeta(), ModelMetaVo.class); + parentModelVo.setModelMeta(modelMetaVo); + modelDependency1TreeVo.setParentModelVo(parentModelVo); + + if (parentModel.getParentModel() != null) { + getParentModel(parentModelVo); + } } } } void getChildModel(ModelDependency1TreeVo modelDependency1TreeVo) { List childModelList = new ArrayList<>(); - String model = modelDependency1TreeVo.getRepoId() + ":" + modelDependency1TreeVo.getModelName() + ":" + modelDependency1TreeVo.getVersion(); + + HashMap map = new HashMap<>(); + map.put("repoId", modelDependency1TreeVo.getRepoId()); + map.put("identifier", modelDependency1TreeVo.getIdentifier()); + map.put("version", modelDependency1TreeVo.getVersion()); + String model = JSON.toJSONString(map); List children = modelDependency1Dao.queryByParentModel(model); if (children != null && !children.isEmpty()) { for (ModelDependency1 modelDependency1 : children) { ModelDependency1TreeVo modelDependency1TreeVo1 = new ModelDependency1TreeVo(); BeanUtils.copyProperties(modelDependency1, modelDependency1TreeVo1); + + ModelMetaVo modelMetaVo = JSON.parseObject(modelDependency1TreeVo1.getMeta(), ModelMetaVo.class); + modelDependency1TreeVo1.setModelMeta(modelMetaVo); + getChildModel(modelDependency1TreeVo1); childModelList.add(modelDependency1TreeVo1); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/ModelDependency1TreeVo.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/ModelDependency1TreeVo.java index f5505443..ecca3b38 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/ModelDependency1TreeVo.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/ModelDependency1TreeVo.java @@ -12,7 +12,9 @@ import java.util.List; @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) public class ModelDependency1TreeVo extends ModelDependency1 implements Serializable { - List patrentModelList; + ModelDependency1TreeVo parentModelVo; + + ModelMetaVo modelMeta; List childModelList; } diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml index 5bdd32d6..8c68ca2d 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml @@ -24,11 +24,11 @@ - select * from model_dependency1 where repo_id = #{repoId} - and model_name = #{modelName} + and identifier = #{identifier} and version = #{version} and state = 1 @@ -36,7 +36,7 @@ @@ -52,10 +52,6 @@ update model_dependency1 set parent_model = null - where parent_model like concat(#{repoId}, ':', #{identifier}, - - ':', #{version}, - - '%') + where JSON_CONTAINS(parent_model, #{parentModel}) \ No newline at end of file