Browse Source

修改模型依赖树接口

dev-restore_mount
chenzhihang 1 year ago
parent
commit
3d36c57fa6
6 changed files with 59 additions and 35 deletions
  1. +2
    -2
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java
  2. +2
    -2
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java
  3. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java
  4. +47
    -21
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java
  5. +3
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/ModelDependency1TreeVo.java
  6. +4
    -8
      ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml

+ 2
- 2
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java View File

@@ -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")


+ 2
- 2
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java View File

@@ -11,11 +11,11 @@ public interface ModelDependency1Dao {

List<ModelDependency1> 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<ModelDependency1> 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);
}

+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java View File

@@ -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;



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

@@ -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<String, Object> 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<String, Object> 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<ModelDependency1> 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<String, Object> 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<String, Object> 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<ModelsVo> convert(List<Map<String, Object>> lst) {
@@ -987,29 +998,44 @@ public class ModelsServiceImpl implements ModelsService {
return new ArrayList<>();
}

void getParentModel(List<ModelDependency1> 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<ModelDependency1TreeVo> childModelList = new ArrayList<>();
String model = modelDependency1TreeVo.getRepoId() + ":" + modelDependency1TreeVo.getModelName() + ":" + modelDependency1TreeVo.getVersion();

HashMap<String, Object> map = new HashMap<>();
map.put("repoId", modelDependency1TreeVo.getRepoId());
map.put("identifier", modelDependency1TreeVo.getIdentifier());
map.put("version", modelDependency1TreeVo.getVersion());
String model = JSON.toJSONString(map);

List<ModelDependency1> 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);
}


+ 3
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/ModelDependency1TreeVo.java View File

@@ -12,7 +12,9 @@ import java.util.List;
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class ModelDependency1TreeVo extends ModelDependency1 implements Serializable {

List<ModelDependency1> patrentModelList;
ModelDependency1TreeVo parentModelVo;

ModelMetaVo modelMeta;

List<ModelDependency1TreeVo> childModelList;
}

+ 4
- 8
ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml View File

@@ -24,11 +24,11 @@
</if>
</select>

<select id="queryByModelNameAndVersion" resultType="com.ruoyi.platform.domain.ModelDependency1">
<select id="queryByRepoAndVersion" resultType="com.ruoyi.platform.domain.ModelDependency1">
select *
from model_dependency1
where repo_id = #{repoId}
and model_name = #{modelName}
and identifier = #{identifier}
and version = #{version}
and state = 1
</select>
@@ -36,7 +36,7 @@
<select id="queryByParentModel" resultType="com.ruoyi.platform.domain.ModelDependency1">
select *
from model_dependency1
where parent_model = #{parentModel}
where JSON_CONTAINS(parent_model,#{parentModel})
and state = 1
</select>

@@ -52,10 +52,6 @@
<update id="deleteModelDependency">
update model_dependency1
set parent_model = null
where parent_model like concat(#{repoId}, ':', #{identifier},
<if test="version != null and version != ''">
':', #{version},
</if>
'%')
where JSON_CONTAINS(parent_model, #{parentModel})
</update>
</mapper>

Loading…
Cancel
Save