From 6fdb5bcf78471efcfd84dd28269b9e2e6f15b139 Mon Sep 17 00:00:00 2001 From: fanshuai <1141904845@qq.com> Date: Fri, 6 Sep 2024 09:34:54 +0800 Subject: [PATCH] update dataset version --- .../dataset/NewDatasetFromGitController.java | 8 +- .../ruoyi/platform/service/GitService.java | 2 + .../service/impl/DatasetServiceImpl.java | 89 +++++++++++++------ .../platform/service/impl/GitServiceImpl.java | 10 ++- 4 files changed, 75 insertions(+), 34 deletions(-) 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 88fecb1..6b738bb 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 @@ -70,16 +70,16 @@ public class NewDatasetFromGitController { @GetMapping("/getVersionList") @ApiOperation(value = "获取分支列表") - public AjaxResult getVersionList(@RequestParam("repo") String repo,@RequestParam("owner")String owner) throws Exception { + public AjaxResult getVersionList(@RequestParam("identifier") String repo,@RequestParam("owner")String owner) throws Exception { return AjaxResult.success(this.datasetService.getVersionList(repo,owner)); } - @GetMapping("/getdatasetDetail") + @GetMapping("/getDatasetDetail") @ApiOperation(value = "获取数据集详情") public AjaxResult getDatasetVersions(@RequestParam("name") String name, @RequestParam("repo_id") Integer repoId, - @RequestParam("owner")String owner, - @RequestParam(value = "identifier") String repo, + @RequestParam(value ="owner",required = false)String owner, + @RequestParam(value = "identifier",required = false) String repo, @RequestParam(value = "version",required = false)String version) throws Exception { return AjaxResult.success(this.datasetService.getNewDatasetDesc(repoId,name,repo,owner,version)); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/GitService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/GitService.java index 96af929..19bf792 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/GitService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/GitService.java @@ -22,4 +22,6 @@ public interface GitService { void deleteProject(String token, String owner, String projectName) throws Exception; void deleteBranch(String token, String owner,String projectName ,String branchName) throws Exception; + + Map getUserInfo(String token) throws Exception; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java index a374c43..bf578a8 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DatasetServiceImpl.java @@ -464,13 +464,13 @@ public class DatasetServiceImpl implements DatasetService { public CompletableFuture newCreateDataset(NewDatasetVo datasetVo) { return CompletableFuture.supplyAsync(() -> { try { + checkoutToken(); + Jedis jedis = new Jedis(redisHost); LoginUser loginUser = SecurityUtils.getLoginUser(); + String ci4sUsername = loginUser.getUsername(); + String token = jedis.get(ci4sUsername+"_gitToken"); String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); - String token = gitService.login(gitLinkUsername, gitLinkPassword); - - String ci4sUsername = loginUser.getUsername(); - Jedis jedis = new Jedis(redisHost); String userReq = jedis.get(ci4sUsername + "_gitUserInfo"); Map userInfo = JsonUtils.jsonToMap(userReq); Integer userId = (Integer) userInfo.get("user_id"); @@ -541,12 +541,13 @@ public class DatasetServiceImpl implements DatasetService { public CompletableFuture newCreateVersion(NewDatasetVo datasetVo) { return CompletableFuture.supplyAsync(() -> { try { + checkoutToken(); + Jedis jedis = new Jedis(redisHost); LoginUser loginUser = SecurityUtils.getLoginUser(); + String ci4sUsername = loginUser.getUsername(); + String token = jedis.get(ci4sUsername+"_gitToken"); String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); - String token = gitService.login(gitLinkUsername, gitLinkPassword); - String ci4sUsername = loginUser.getUsername(); - Jedis jedis = new Jedis(redisHost); String userReq = jedis.get(ci4sUsername + "_gitUserInfo"); Map userInfo = JsonUtils.jsonToMap(userReq); // 创建分支 @@ -610,12 +611,11 @@ public class DatasetServiceImpl implements DatasetService { @Override public Page newPersonalQueryByPage(Dataset dataset, PageRequest pageRequest) throws Exception { - LoginUser loginUser = SecurityUtils.getLoginUser(); - String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); - String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); - String token = gitService.login(gitLinkUsername, gitLinkPassword); - String ci4sUsername = loginUser.getUsername(); + checkoutToken(); Jedis jedis = new Jedis(redisHost); + LoginUser loginUser = SecurityUtils.getLoginUser(); + String ci4sUsername = loginUser.getUsername(); + String token = jedis.get(ci4sUsername+"_gitToken"); String userReq = jedis.get(ci4sUsername + "_gitUserInfo"); Map userInfo = JsonUtils.jsonToMap(userReq); //拼接查询url @@ -634,12 +634,11 @@ public class DatasetServiceImpl implements DatasetService { @Override public Page newPubilcQueryByPage(Dataset dataset, PageRequest pageRequest) throws Exception { - LoginUser loginUser = SecurityUtils.getLoginUser(); - String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); - String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); - String token = gitService.login(gitLinkUsername, gitLinkPassword); - String ci4sUsername = loginUser.getUsername(); + checkoutToken(); Jedis jedis = new Jedis(redisHost); + LoginUser loginUser = SecurityUtils.getLoginUser(); + String ci4sUsername = loginUser.getUsername(); + String token = jedis.get(ci4sUsername+"_gitToken"); String userReq = jedis.get(ci4sUsername + "_gitUserInfo"); Map userInfo = JsonUtils.jsonToMap(userReq); Integer userId = (Integer) userInfo.get("user_id"); @@ -655,8 +654,10 @@ public class DatasetServiceImpl implements DatasetService { Map stringObjectMap = JacksonUtil.parseJSONStr2Map(req); Integer total = (Integer) stringObjectMap.get("total_count"); List> projects = (List>) stringObjectMap.get("projects"); + if (projects == null){ + return new PageImpl<>(new ArrayList<>(), pageRequest, 0); + } return new PageImpl<>(convert(projects), pageRequest, total); - } @Override @@ -694,10 +695,11 @@ public class DatasetServiceImpl implements DatasetService { @Override public List> getVersionList(String repo, String owner) throws Exception { + checkoutToken(); + Jedis jedis = new Jedis(redisHost); LoginUser loginUser = SecurityUtils.getLoginUser(); - String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); - String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); - String token = gitService.login(gitLinkUsername, gitLinkPassword); + String ci4sUsername = loginUser.getUsername(); + String token = jedis.get(ci4sUsername+"_gitToken"); List> brancheList = gitService.getBrancheList(token, owner, repo); return brancheList.stream() .filter(branch -> "master".equals(branch.get("name"))) @@ -706,19 +708,21 @@ public class DatasetServiceImpl implements DatasetService { @Override public void deleteDatasetNew(String repo, String owner) throws Exception { + checkoutToken(); + Jedis jedis = new Jedis(redisHost); LoginUser loginUser = SecurityUtils.getLoginUser(); - String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); - String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); - String token = gitService.login(gitLinkUsername, gitLinkPassword); + String ci4sUsername = loginUser.getUsername(); + String token = jedis.get(ci4sUsername+"_gitToken"); gitService.deleteProject(token, owner, repo); } @Override public void deleteDatasetVersionNew(String repo, String owner, String version) throws Exception { + checkoutToken(); + Jedis jedis = new Jedis(redisHost); LoginUser loginUser = SecurityUtils.getLoginUser(); - String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); - String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); - String token = gitService.login(gitLinkUsername, gitLinkPassword); + String ci4sUsername = loginUser.getUsername(); + String token = jedis.get(ci4sUsername+"_gitToken"); gitService.deleteBranch(token, owner, repo, version); } @@ -774,10 +778,10 @@ public class DatasetServiceImpl implements DatasetService { @Override public ResponseEntity downloadAllDatasetFilesNew(String repositoryName, String version) throws Exception { // 命令行操作 git clone 项目地址 + checkoutToken(); LoginUser loginUser = SecurityUtils.getLoginUser(); String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); - String token = gitService.login(gitLinkUsername, gitLinkPassword); String ci4sUsername = loginUser.getUsername(); Jedis jedis = new Jedis(redisHost); String userReq = jedis.get(ci4sUsername + "_gitUserInfo"); @@ -867,4 +871,33 @@ public class DatasetServiceImpl implements DatasetService { return new ArrayList<>(); } + private String checkoutToken(){ + Jedis jedis = new Jedis(redisHost); + LoginUser loginUser = SecurityUtils.getLoginUser(); + String ci4sUsername = loginUser.getUsername(); + String token = jedis.get(ci4sUsername+"_gitToken"); + String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); + String gitLinkPassword = loginUser.getSysUser().getGitLinkPassword(); + + if(StringUtils.isEmpty(token)){ + gitService.login(gitLinkUsername, gitLinkPassword); + token = jedis.get(ci4sUsername+"_gitToken"); + }else { + try { + Map userInfo = gitService.getUserInfo(token); + if (userInfo == null ||(userInfo.get("status")!=null&&401==(Integer) userInfo.get("status"))){ + gitService.login(gitLinkUsername, gitLinkPassword); + token = jedis.get(ci4sUsername+"_gitToken"); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + + } + return token; + + } + + + } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java index 73e4249..842e47d 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import redis.clients.jedis.Jedis; import java.io.IOException; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -85,7 +86,6 @@ public class GitServiceImpl implements GitService { resMap.put("new_branch_name", branchName); resMap.put("old_branch_name", oldBranchName); String req = HttpUtils.sendPostWithToken(createBranchUrl,JsonUtils.objectToJson(resMap),token); - System.out.println(req); } @Override @@ -95,7 +95,6 @@ public class GitServiceImpl implements GitService { resMap.put("project_id", id); resMap.put("name", topicName); String req = HttpUtils.sendPostWithToken("https://www.gitlink.org.cn/api/v1/project_topics.json",JsonUtils.objectToJson(resMap),token); - System.out.println(req); } @Override @@ -119,4 +118,11 @@ public class GitServiceImpl implements GitService { public void deleteBranch(String token, String owner, String projectName, String branchName) throws Exception { HttpUtils.sendDeleteRequest("https://www.gitlink.org.cn/api/v1/"+owner+"/"+projectName+"/branches/"+branchName+".json", token); } + + @Override + public Map getUserInfo(String token) throws Exception { + String userReq = HttpUtils.sendGetWithToken("https://www.gitlink.org.cn/api/users/get_user_info.json",null, token); + Map runResMap = JsonUtils.jsonToMap(userReq); + return runResMap; + } }