update dataset version

This commit is contained in:
fanshuai 2024-09-06 09:34:54 +08:00
parent 7cbd258afe
commit 6fdb5bcf78
4 changed files with 75 additions and 34 deletions

View File

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

View File

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

View File

@ -464,13 +464,13 @@ public class DatasetServiceImpl implements DatasetService {
public CompletableFuture<String> 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<String, Object> userInfo = JsonUtils.jsonToMap(userReq);
Integer userId = (Integer) userInfo.get("user_id");
@ -541,12 +541,13 @@ public class DatasetServiceImpl implements DatasetService {
public CompletableFuture<String> 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<String, Object> userInfo = JsonUtils.jsonToMap(userReq);
// 创建分支
@ -610,12 +611,11 @@ public class DatasetServiceImpl implements DatasetService {
@Override
public Page<NewDatasetVo> 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<String, Object> userInfo = JsonUtils.jsonToMap(userReq);
//拼接查询url
@ -634,12 +634,11 @@ public class DatasetServiceImpl implements DatasetService {
@Override
public Page<NewDatasetVo> 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<String, Object> userInfo = JsonUtils.jsonToMap(userReq);
Integer userId = (Integer) userInfo.get("user_id");
@ -655,8 +654,10 @@ public class DatasetServiceImpl implements DatasetService {
Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req);
Integer total = (Integer) stringObjectMap.get("total_count");
List<Map<String, Object>> projects = (List<Map<String, Object>>) 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<Map<String, Object>> 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<Map<String, Object>> 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<InputStreamResource> 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;
}
}

View File

@ -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<String, Object> runResMap = JsonUtils.jsonToMap(userReq);
return runResMap;
}
}