Browse Source

删除模型接口

dev-restore_mount
chenzhihang 1 year ago
parent
commit
a5d4469ad7
5 changed files with 129 additions and 38 deletions
  1. +24
    -12
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java
  2. +4
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java
  3. +6
    -2
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java
  4. +70
    -22
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java
  5. +25
    -2
      ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml

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

@@ -42,11 +42,9 @@ public class NewModelFromGitController {
*/ */
@GetMapping("/downloadAllFiles") @GetMapping("/downloadAllFiles")
@ApiOperation(value = "下载同一版本下所有模型,并打包") @ApiOperation(value = "下载同一版本下所有模型,并打包")
public ResponseEntity<InputStreamResource> downloadAllDatasetFiles(@RequestParam(value = "repository_name") String repositoryName,
@RequestParam(value = "version") String version,
@RequestParam(value = "git_link_username") String gitLinkUsername,
@RequestParam(value = "git_link_password") String gitLinkPassword) throws Exception {
return modelsService.downloadAllModelFilesNew(repositoryName, version, gitLinkUsername, gitLinkPassword);
public ResponseEntity<InputStreamResource> downloadAllDatasetFiles(@RequestParam("identifier") String identifier,
@RequestParam(value = "version") String version) throws Exception {
return modelsService.downloadAllModelFilesNew(identifier, version);
} }




@@ -83,22 +81,36 @@ public class NewModelFromGitController {
} }
} }


@GetMapping("/getModelVersions/{modelName}")
@GetMapping("/getModelVersions/{model_name}")
@ApiOperation(value = "获取模型所有版本号") @ApiOperation(value = "获取模型所有版本号")
public AjaxResult getModelVersions(@PathVariable("modelName") String modelName) throws Exception {
public AjaxResult getModelVersions(@PathVariable("model_name") String modelName) throws Exception {
return AjaxResult.success(this.modelsService.getNewModelVersion(modelName)); return AjaxResult.success(this.modelsService.getNewModelVersion(modelName));
} }




@GetMapping("/getModelMeta")
@ApiOperation(value = "获取模型元数据")
public AjaxResult getModelMeta(@RequestParam("modelName") String modelName, @RequestParam("version") String version) throws Exception {
return AjaxResult.success(this.modelsService.getModelMeta(modelName, version));
@GetMapping("/getModelDetail")
@ApiOperation(value = "获取模型详细信息")
public AjaxResult getModelDetail(@RequestParam("model_name") String modelName, @RequestParam("version") String version) throws Exception {
return AjaxResult.success(this.modelsService.getModelDetail(modelName, version));
} }


@GetMapping("/getModelDependencyTree") @GetMapping("/getModelDependencyTree")
@ApiOperation(value = "获取模型依赖关系树") @ApiOperation(value = "获取模型依赖关系树")
public AjaxResult getModelDependencyTree(@RequestParam("repoId")Integer repoId, @RequestParam("modelName") String modelName, @RequestParam("version") String version) throws Exception {
public AjaxResult getModelDependencyTree(@RequestParam("repoId") Integer repoId, @RequestParam("model_name") String modelName, @RequestParam("version") String version) throws Exception {
return AjaxResult.success(this.modelsService.getModelDependencyTree(repoId, modelName, version)); return AjaxResult.success(this.modelsService.getModelDependencyTree(repoId, modelName, version));
} }

@DeleteMapping("/delete")
@ApiOperation(value = "删除模型")
public AjaxResult deleteModel(@RequestParam("repoId")Integer repoId, @RequestParam("identifier") String identifier, @RequestParam("owner") String owner) throws Exception {
this.modelsService.deleteModel(repoId,identifier, owner);
return AjaxResult.success();
}

@DeleteMapping("/deleteVersion")
@ApiOperation(value = "删除模型版本")
public AjaxResult deleteVersion(@RequestParam("repoId")Integer repoId, @RequestParam("identifier") String identifier, @RequestParam("owner") String owner, @RequestParam("version") String version) throws Exception {
this.modelsService.deleteVersion(repoId, identifier, owner, version);
return AjaxResult.success();
}
} }

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

@@ -14,4 +14,8 @@ public interface ModelDependency1Dao {
ModelDependency1 queryByModelNameAndVersion(@Param("repoId") Integer repoId, @Param("modelName") String modelName, @Param("version") String version); ModelDependency1 queryByModelNameAndVersion(@Param("repoId") Integer repoId, @Param("modelName") String modelName, @Param("version") String version);


List<ModelDependency1> queryByParentModel(@Param("parentModel") String parentModel); 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);
} }

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

@@ -92,7 +92,7 @@ public interface ModelsService {


List<Map<String, String>> uploadModelLocal(MultipartFile[] files, String uuid) throws Exception; List<Map<String, String>> uploadModelLocal(MultipartFile[] files, String uuid) throws Exception;


ResponseEntity<InputStreamResource> downloadAllModelFilesNew(String repositoryName, String version, String gitLinkUsername, String gitLinkPassword) throws IOException, Exception;
ResponseEntity<InputStreamResource> downloadAllModelFilesNew(String identifier, String version) throws IOException, Exception;


Page<ModelsVo> newPubilcQueryByPage(ModelsVo modelsVo, PageRequest pageRequest) throws Exception; Page<ModelsVo> newPubilcQueryByPage(ModelsVo modelsVo, PageRequest pageRequest) throws Exception;


@@ -100,7 +100,11 @@ public interface ModelsService {


List<String> getNewModelVersion(String modelName); List<String> getNewModelVersion(String modelName);


ModelMetaVo getModelMeta(String modelName, String version) throws Exception;
ModelsVo getModelDetail(String modelName, String version) throws Exception;


ModelDependency1TreeVo getModelDependencyTree(Integer repoId, String modelName, String version)throws Exception; ModelDependency1TreeVo getModelDependencyTree(Integer repoId, String modelName, String version)throws Exception;

void deleteModel(Integer repoId, String identifier, String owner) throws Exception;

void deleteVersion(Integer repoId, String identifier, String owner, String version) throws Exception;
} }

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

@@ -516,16 +516,14 @@ public class ModelsServiceImpl implements ModelsService {
} }


@Override @Override
public CompletableFuture<String> newCreateModel(ModelsVo modelsVo) throws Exception {
public CompletableFuture<String> newCreateModel(ModelsVo modelsVo) {
return CompletableFuture.supplyAsync(() -> { return CompletableFuture.supplyAsync(() -> {
try { try {
LoginUser loginUser = SecurityUtils.getLoginUser(); LoginUser loginUser = SecurityUtils.getLoginUser();
String ci4sUsername = loginUser.getUsername(); String ci4sUsername = loginUser.getUsername();
String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername();
String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword();
Jedis jedis = new Jedis(redisHost);
String userReq = jedis.get(ci4sUsername + "_gitUserInfo");
Map<String, Object> userInfo = JsonUtils.jsonToMap(userReq);
Map<String, Object> userInfo = getUserInfo(ci4sUsername);
Integer userId = (Integer) userInfo.get("user_id"); Integer userId = (Integer) userInfo.get("user_id");


String token = gitService.login(gitLinkUsername, gitLinkPassword); String token = gitService.login(gitLinkUsername, gitLinkPassword);
@@ -605,17 +603,16 @@ public class ModelsServiceImpl implements ModelsService {
} }


@Override @Override
public ResponseEntity<InputStreamResource> downloadAllModelFilesNew(String repositoryName, String version, String gitLinkUsername, String gitLinkPassword) throws IOException, Exception {
public ResponseEntity<InputStreamResource> downloadAllModelFilesNew(String identifier, String version) throws Exception {
// 命令行操作 git clone 项目地址 // 命令行操作 git clone 项目地址
LoginUser loginUser = SecurityUtils.getLoginUser(); LoginUser loginUser = SecurityUtils.getLoginUser();
String ci4sUsername = loginUser.getUsername(); String ci4sUsername = loginUser.getUsername();
String token = gitService.login(gitLinkUsername, gitLinkPassword);
Jedis jedis = new Jedis(redisHost);
String userReq = jedis.get(ci4sUsername + "_gitUserInfo");
Map<String, Object> userInfo = JsonUtils.jsonToMap(userReq);
Integer userId = (Integer) userInfo.get("user_id");
String projectUrl = gitendpoint + "/" + (String) userInfo.get("login") + "/" + repositoryName + ".git";
String localPath1 = localPath + ci4sUsername + "/model/" + repositoryName;
String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername();
String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword();
Map<String, Object> userInfo = getUserInfo(ci4sUsername);

String projectUrl = gitendpoint + "/" + userInfo.get("login") + "/" + identifier + ".git";
String localPath1 = localPath + ci4sUsername + "/model/" + identifier;
File folder = new File(localPath1); File folder = new File(localPath1);
if (folder.exists() && folder.isDirectory()) { if (folder.exists() && folder.isDirectory()) {
//切换分支 //切换分支
@@ -665,16 +662,17 @@ public class ModelsServiceImpl implements ModelsService {
String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername();
String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword();
String token = gitService.login(gitLinkUsername, gitLinkPassword); String token = gitService.login(gitLinkUsername, gitLinkPassword);
Jedis jedis = new Jedis(redisHost);
String userReq = jedis.get(ci4sUsername + "_gitUserInfo");
Map<String, Object> userInfo = JsonUtils.jsonToMap(userReq);
Map<String, Object> userInfo = getUserInfo(ci4sUsername);

//拼接查询url //拼接查询url
String modelTagName = modelsVo.getModelTag(); String modelTagName = modelsVo.getModelTag();
String modelTypeName = modelsVo.getModelType(); String modelTypeName = modelsVo.getModelType();
String search = modelsVo.getName();
String topic_name = "ci4s_model"; String topic_name = "ci4s_model";
topic_name = StringUtils.isEmpty(modelTagName) ? topic_name : topic_name + ",modeltag_" + modelTypeName; topic_name = StringUtils.isEmpty(modelTagName) ? topic_name : topic_name + ",modeltag_" + modelTypeName;
topic_name = StringUtils.isEmpty(modelTagName) ? topic_name : topic_name + ",modeltype_" + modelTypeName; topic_name = StringUtils.isEmpty(modelTagName) ? topic_name : topic_name + ",modeltype_" + modelTypeName;
String url = gitendpoint + "/api/users/" + (String) userInfo.get("login") + "/projects.json?page=" + pageRequest.getPageNumber() + "&limit=" + pageRequest.getPageSize() + "&category=manage&topic_name=" + topic_name;

String url = gitendpoint + "/api/users/" + userInfo.get("login") + "/projects.json?page=" + pageRequest.getPageNumber() + "&limit=" + pageRequest.getPageSize() + "&category=manage&topic_name=" + topic_name + "&search=" + search;
String req = HttpUtils.sendGetWithToken(url, null, token); String req = HttpUtils.sendGetWithToken(url, null, token);
Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req); Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req);
Integer total = (Integer) stringObjectMap.get("count"); Integer total = (Integer) stringObjectMap.get("count");
@@ -689,18 +687,18 @@ public class ModelsServiceImpl implements ModelsService {
String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername();
String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword();
String token = gitService.login(gitLinkUsername, gitLinkPassword); String token = gitService.login(gitLinkUsername, gitLinkPassword);
Jedis jedis = new Jedis(redisHost);
String userReq = jedis.get(ci4sUsername + "_gitUserInfo");
Map<String, Object> userInfo = JsonUtils.jsonToMap(userReq);
Map<String, Object> userInfo = getUserInfo(ci4sUsername);
Integer userId = (Integer) userInfo.get("user_id"); Integer userId = (Integer) userInfo.get("user_id");

//拼接查询url //拼接查询url
String modelTagName = modelsVo.getModelTag(); String modelTagName = modelsVo.getModelTag();
String modelTypeName = modelsVo.getModelType(); String modelTypeName = modelsVo.getModelType();
String search = modelsVo.getName();
String topic_name = "ci4s_model"; String topic_name = "ci4s_model";
topic_name = StringUtils.isEmpty(modelTagName) ? topic_name : topic_name + ",modeltag_" + modelTagName; topic_name = StringUtils.isEmpty(modelTagName) ? topic_name : topic_name + ",modeltag_" + modelTagName;
topic_name = StringUtils.isEmpty(modelTypeName) ? topic_name : topic_name + ",modeltype_" + modelTypeName; topic_name = StringUtils.isEmpty(modelTypeName) ? topic_name : topic_name + ",modeltype_" + modelTypeName;


String url = gitendpoint + "/api/projects.json?user_id=" + userId + "&page=" + pageRequest.getPageNumber() + "&limit=" + pageRequest.getPageSize() + "&sort_by=praises_count&topic_name=" + topic_name;
String url = gitendpoint + "/api/projects.json?user_id=" + userId + "&page=" + pageRequest.getPageNumber() + "&limit=" + pageRequest.getPageSize() + "&sort_by=praises_count&topic_name=" + topic_name + "&search=" + search;
String req = HttpUtils.sendGetWithToken(url, null, token); String req = HttpUtils.sendGetWithToken(url, null, token);
Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req); Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req);
Integer total = (Integer) stringObjectMap.get("total_count"); Integer total = (Integer) stringObjectMap.get("total_count");
@@ -715,17 +713,36 @@ public class ModelsServiceImpl implements ModelsService {
} }


@Override @Override
public ModelMetaVo getModelMeta(String modelName, String version) throws Exception {
public ModelsVo getModelDetail(String modelName, String version) {
LoginUser loginUser = SecurityUtils.getLoginUser(); LoginUser loginUser = SecurityUtils.getLoginUser();
String ci4sUsername = loginUser.getUsername(); String ci4sUsername = loginUser.getUsername();
String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername();
String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword();

// git pull操作,然后读取里面的文件列表,列出每个文件的大小和名称,封装成MAP // git pull操作,然后读取里面的文件列表,列出每个文件的大小和名称,封装成MAP
List<Map<String, Object>> fileDetailsAfterGitPull = DVCUtils.getFileDetailsAfterGitPull(localPath + ci4sUsername + "/model/", modelName, version, "model", gitLinkUsername, gitLinkPassword); List<Map<String, Object>> fileDetailsAfterGitPull = DVCUtils.getFileDetailsAfterGitPull(localPath + ci4sUsername + "/model/", modelName, version, "model", gitLinkUsername, gitLinkPassword);


Map<String, Object> stringObjectMap = YamlUtils.loadYamlFile(localPath + ci4sUsername + "/model/" + modelName + "/" + version + "/metadata/metadata.yaml"); Map<String, Object> stringObjectMap = YamlUtils.loadYamlFile(localPath + ci4sUsername + "/model/" + modelName + "/" + version + "/metadata/metadata.yaml");
assert stringObjectMap != null; assert stringObjectMap != null;
return ConvertUtil.convertMapToObject(stringObjectMap, ModelMetaVo.class);

ModelMetaVo modelMetaVo = ConvertUtil.convertMapToObject(stringObjectMap, ModelMetaVo.class);
ModelsVo modelsVo = new ModelsVo();
BeanUtils.copyProperties(modelMetaVo, modelsVo);

List<VersionVo> versionVos = new ArrayList<VersionVo>();
if (!fileDetailsAfterGitPull.isEmpty()) {
for (Map<String, Object> fileDetail : fileDetailsAfterGitPull) {
VersionVo versionVo = new VersionVo();
versionVo.setUrl((String) fileDetail.get("filePath"));
versionVo.setFileName((String) fileDetail.get("fileName"));
long size = (long) fileDetail.get("size");
versionVo.setFileSize(FileUtil.formatFileSize(size));
versionVos.add(versionVo);
}
}
modelsVo.setModelVersionVos(versionVos);

return modelsVo;
} }


@Override @Override
@@ -745,6 +762,32 @@ public class ModelsServiceImpl implements ModelsService {
return modelDependency1TreeVo; return modelDependency1TreeVo;
} }


@Override
public void deleteModel(Integer repoId, String identifier, String owner) throws Exception {
LoginUser loginUser = SecurityUtils.getLoginUser();
String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername();
String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword();
String token = gitService.login(gitLinkUsername, gitLinkPassword);
gitService.deleteProject(token, owner, identifier);

//删除模型依赖
modelDependency1Dao.deleteModel(repoId, identifier, owner, null);
modelDependency1Dao.deleteModelDependency(repoId, identifier, owner, null);
}

@Override
public void deleteVersion(Integer repoId, String identifier, String owner, String version) throws Exception {
LoginUser loginUser = SecurityUtils.getLoginUser();
String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername();
String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword();
String token = gitService.login(gitLinkUsername, gitLinkPassword);
gitService.deleteBranch(token, owner, identifier, version);

//删除模型依赖
modelDependency1Dao.deleteModel(repoId, identifier, owner, version);
modelDependency1Dao.deleteModelDependency(repoId, identifier, owner, version);
}

void commonDvc(String token, Map<String, Object> userInfo, String username, String repositoryName, ModelsVo modelsVo, String gitLinkUsername, String gitLinkPassword, String type) throws Exception { void commonDvc(String token, Map<String, Object> userInfo, String username, String repositoryName, ModelsVo modelsVo, String gitLinkUsername, String gitLinkPassword, String type) throws Exception {
String branchName = modelsVo.getVersion(); String branchName = modelsVo.getVersion();


@@ -856,4 +899,9 @@ public class ModelsServiceImpl implements ModelsService {
modelDependency1TreeVo.setChildModelList(childModelList); modelDependency1TreeVo.setChildModelList(childModelList);
} }


Map<String, Object> getUserInfo(String ci4sUsername) throws IOException {
Jedis jedis = new Jedis(redisHost);
String userReq = jedis.get(ci4sUsername + "_gitUserInfo");
return JsonUtils.jsonToMap(userReq);
}
} }

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

@@ -11,13 +11,17 @@
<select id="queryByModelName" resultType="com.ruoyi.platform.domain.ModelDependency1"> <select id="queryByModelName" resultType="com.ruoyi.platform.domain.ModelDependency1">
select * select *
from model_dependency1 from model_dependency1
where model_name = #{modelName} and state = 1
where model_name = #{modelName}
and state = 1
</select> </select>


<select id="queryByModelNameAndVersion" resultType="com.ruoyi.platform.domain.ModelDependency1"> <select id="queryByModelNameAndVersion" resultType="com.ruoyi.platform.domain.ModelDependency1">
select * select *
from model_dependency1 from model_dependency1
where repo_id = #{repoId} and model_name = #{modelName} and version = #{version} and state = 1
where repo_id = #{repoId}
and model_name = #{modelName}
and version = #{version}
and state = 1
</select> </select>


<select id="queryByParentModel" resultType="com.ruoyi.platform.domain.ModelDependency1"> <select id="queryByParentModel" resultType="com.ruoyi.platform.domain.ModelDependency1">
@@ -26,4 +30,23 @@
where parent_model = #{parentModel} where parent_model = #{parentModel}
and state = 1 and state = 1
</select> </select>

<update id="deleteModel">
update model_dependency1
set state = 0
where repo_id = #{repoId} and identifier = #{identifier} and owner = #{owner}
<if test="version != null and version != ''">
and version = #{version}
</if>
</update>

<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>
'%')
</update>
</mapper> </mapper>

Loading…
Cancel
Save