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")
@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 = "获取模型所有版本号")
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));
}


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

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

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;

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;

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

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;

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
public CompletableFuture<String> newCreateModel(ModelsVo modelsVo) throws Exception {
public CompletableFuture<String> newCreateModel(ModelsVo modelsVo) {
return CompletableFuture.supplyAsync(() -> {
try {
LoginUser loginUser = SecurityUtils.getLoginUser();
String ci4sUsername = loginUser.getUsername();
String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername();
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");

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

@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 项目地址
LoginUser loginUser = SecurityUtils.getLoginUser();
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);
if (folder.exists() && folder.isDirectory()) {
//切换分支
@@ -665,16 +662,17 @@ public class ModelsServiceImpl implements ModelsService {
String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername();
String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword();
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
String modelTagName = modelsVo.getModelTag();
String modelTypeName = modelsVo.getModelType();
String search = modelsVo.getName();
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 + ",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);
Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req);
Integer total = (Integer) stringObjectMap.get("count");
@@ -689,18 +687,18 @@ public class ModelsServiceImpl implements ModelsService {
String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername();
String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword();
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");

//拼接查询url
String modelTagName = modelsVo.getModelTag();
String modelTypeName = modelsVo.getModelType();
String search = modelsVo.getName();
String topic_name = "ci4s_model";
topic_name = StringUtils.isEmpty(modelTagName) ? topic_name : topic_name + ",modeltag_" + modelTagName;
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);
Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req);
Integer total = (Integer) stringObjectMap.get("total_count");
@@ -715,17 +713,36 @@ public class ModelsServiceImpl implements ModelsService {
}

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

// git pull操作,然后读取里面的文件列表,列出每个文件的大小和名称,封装成MAP
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");
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
@@ -745,6 +762,32 @@ public class ModelsServiceImpl implements ModelsService {
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 {
String branchName = modelsVo.getVersion();

@@ -856,4 +899,9 @@ public class ModelsServiceImpl implements ModelsService {
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 *
from model_dependency1
where model_name = #{modelName} and state = 1
where model_name = #{modelName}
and state = 1
</select>

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

Loading…
Cancel
Save