| @@ -38,4 +38,8 @@ public interface GitService { | |||
| void resetPhoneNum(SysUser sysUser) throws Exception; | |||
| void deleteUser(SysUser sysUser) throws Exception; | |||
| List<Map<String, Object>> PersonalQueryGitByPage(String token, String login, String name, Integer page) throws Exception; | |||
| List<Map<String, Object>> PubilcQueryGitByPage(String token, String name, Integer page, Integer projectCategoryId) throws Exception; | |||
| } | |||
| @@ -240,4 +240,27 @@ public class GitServiceImpl implements GitService { | |||
| throw new Exception("用户不可删除:" + resultMap.get("message")); | |||
| } | |||
| } | |||
| @Override | |||
| public List<Map<String, Object>> PersonalQueryGitByPage(String token, String login, String name, Integer page) throws Exception { | |||
| // 拼接查询url | |||
| String url = gitendpoint + "/api/users/" + login + "/projects.json?page=" + page + "&limit=50&category=manage&sort_direction=praises_count&sort_by=desc"; | |||
| if (StringUtils.isNotEmpty(name)) { | |||
| url = url + "&search=" + name; | |||
| } | |||
| String req = httpUtils.sendGetWithToken(url, null, token); | |||
| Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req); | |||
| return (List<Map<String, Object>>) stringObjectMap.get("projects"); | |||
| } | |||
| public List<Map<String, Object>> PubilcQueryGitByPage(String token, String name, Integer page, Integer projectCategoryId) throws Exception { | |||
| // 拼接查询url | |||
| String url = gitendpoint + "/api/projects.json?page=" + page + "&limit=50sort_direction=praises_count&sort_by=desc&category_id=" + projectCategoryId; | |||
| if (StringUtils.isNotEmpty(name)) { | |||
| url = url + "&search=" + name; | |||
| } | |||
| String req = httpUtils.sendGetWithToken(url, null, token); | |||
| Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req); | |||
| return (List<Map<String, Object>>) stringObjectMap.get("projects"); | |||
| } | |||
| } | |||
| @@ -114,8 +114,8 @@ public class ModelsServiceImpl implements ModelsService { | |||
| String gitCloneEndpoint; | |||
| @Value("${git.cloneEndpointIp}") | |||
| String gitCloneEndpointIp; | |||
| @Value("${git.projectCategoryId}") | |||
| Integer projectCategoryId; | |||
| @Value("${git.projectModelId}") | |||
| Integer projectModelId; | |||
| @Value("${git.localPath}") | |||
| String localPath; | |||
| @Value("${minio.accessKey}") | |||
| @@ -593,7 +593,7 @@ public class ModelsServiceImpl implements ModelsService { | |||
| gitProjectVo.setDescription(modelsVo.getDescription()); | |||
| gitProjectVo.setPrivate(!modelsVo.getIsPublic()); | |||
| gitProjectVo.setUserId(userId); | |||
| gitProjectVo.setProjectCategoryId(projectCategoryId); | |||
| gitProjectVo.setProjectCategoryId(projectModelId); | |||
| // 创建项目 | |||
| Map project = gitService.createProject(token, gitProjectVo); | |||
| @@ -936,55 +936,45 @@ public class ModelsServiceImpl implements ModelsService { | |||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||
| String ci4sUsername = loginUser.getUsername(); | |||
| String gitLinkPassword = loginUser.getSysUser().getOriginPassword(); | |||
| Map<String, Object> userInfo = getUserInfo(ci4sUsername, gitLinkPassword); | |||
| String token = (String) userInfo.get("token"); | |||
| String login = (String) userInfo.get("login"); | |||
| //拼接查询url | |||
| String modelTagName = modelsVo.getModelTag(); | |||
| String modelTypeName = modelsVo.getModelType(); | |||
| String url = gitendpoint + "/api/users/" + userInfo.get("login") + "/projects.json?category=manage&sort_direction=praises_count&sort_by=desc"; | |||
| String name = modelsVo.getName(); | |||
| if (StringUtils.isNotEmpty(name)) { | |||
| url = url + "&search=" + name; | |||
| List<ModelsVo> collect = new ArrayList<>(); | |||
| for (int i = 1; ; i++) { | |||
| List<Map<String, Object>> projects = gitService.PersonalQueryGitByPage(token, login, modelsVo.getName(), i); | |||
| if (projects.isEmpty()) { | |||
| break; | |||
| } else { | |||
| List<ModelsVo> collecti = convert(projects, Constant.Topic_model, modelsVo.getModelTag(), modelsVo.getModelType()); | |||
| collect.addAll(collecti); | |||
| } | |||
| } | |||
| String req = httpUtils.sendGetWithToken(url, null, token); | |||
| Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req); | |||
| List<Map<String, Object>> projects = (List<Map<String, Object>>) stringObjectMap.get("projects"); | |||
| List<ModelsVo> collect = convert(projects, Constant.Topic_model, modelTagName, modelTypeName); | |||
| List<ModelsVo> result = collect.stream().sorted(Comparator.comparing(ModelsVo::getPraisesCount).reversed()).skip((pageRequest.getPageNumber()) * pageRequest.getPageSize()).limit(pageRequest.getPageSize()). | |||
| collect(Collectors.toList()); | |||
| return new PageImpl<>(result, pageRequest, collect.size()); | |||
| } | |||
| @Override | |||
| public Page<ModelsVo> newPubilcQueryByPage(ModelsVo modelsVo, PageRequest pageRequest) throws Exception { | |||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||
| String ci4sUsername = loginUser.getUsername(); | |||
| String gitLinkPassword = loginUser.getSysUser().getOriginPassword(); | |||
| Map<String, Object> userInfo = getUserInfo(ci4sUsername, gitLinkPassword); | |||
| String token = (String) userInfo.get("token"); | |||
| String modelTagName = modelsVo.getModelTag(); | |||
| String modelTypeName = modelsVo.getModelType(); | |||
| //拼接查询url | |||
| String url = gitendpoint + "/api/projects.json?sort_direction=praises_count&sort_by=desc&category_id=" + projectCategoryId; | |||
| String name = modelsVo.getName(); | |||
| if (StringUtils.isNotEmpty(name)) { | |||
| url = url + "&search=" + name; | |||
| List<ModelsVo> collect = new ArrayList<>(); | |||
| for (int i = 1; ; i++) { | |||
| List<Map<String, Object>> projects = gitService.PubilcQueryGitByPage(token, modelsVo.getName(), i, projectModelId); | |||
| if (projects.isEmpty()) { | |||
| break; | |||
| } else { | |||
| List<ModelsVo> collecti = convert(projects, Constant.Topic_model, modelsVo.getModelTag(), modelsVo.getModelType()); | |||
| collect.addAll(collecti); | |||
| } | |||
| } | |||
| String req = httpUtils.sendGetWithToken(url, null, token); | |||
| Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req); | |||
| List<Map<String, Object>> projects = (List<Map<String, Object>>) stringObjectMap.get("projects"); | |||
| List<ModelsVo> collect = convert(projects, Constant.Topic_model, modelTagName, modelTypeName); | |||
| List<ModelsVo> result = collect.stream().sorted(Comparator.comparing(ModelsVo::getPraisesCount).reversed()).skip((pageRequest.getPageNumber()) * pageRequest.getPageSize()).limit(pageRequest.getPageSize()). | |||
| List<ModelsVo> result = collect.stream().sorted(Comparator.comparing(ModelsVo::getPraisesCount).reversed()).skip((long) pageRequest.getPageNumber() * pageRequest.getPageSize()).limit(pageRequest.getPageSize()). | |||
| collect(Collectors.toList()); | |||
| return new PageImpl<>(result, pageRequest, collect.size()); | |||
| } | |||
| @@ -1337,8 +1327,7 @@ public class ModelsServiceImpl implements ModelsService { | |||
| Map<String, Object> author = (Map<String, Object>) map.get("author"); | |||
| newModelVo.setCreateBy((String) author.get("name")); | |||
| newModelVo.setOwner((String) author.get("login")); | |||
| String name = (String) map.get("name"); | |||
| newModelVo.setName(name.substring((modelTopic + "-").length())); | |||
| newModelVo.setName((String) map.get("name")); | |||
| result.add(newModelVo); | |||
| } | |||
| } | |||
| @@ -330,7 +330,7 @@ public class NewDatasetServiceImpl implements NewDatasetService { | |||
| String login = (String) userInfo.get("login"); | |||
| List<NewDatasetVo> collect = new ArrayList<>(); | |||
| for (int i = 1; ; i++) { | |||
| List<Map<String, Object>> projects = PersonalQueryGitByPage(token, login, dataset.getName(), i); | |||
| List<Map<String, Object>> projects = gitService.PersonalQueryGitByPage(token, login, dataset.getName(), i); | |||
| if (projects.isEmpty()) { | |||
| break; | |||
| } else { | |||
| @@ -343,25 +343,13 @@ public class NewDatasetServiceImpl implements NewDatasetService { | |||
| return new PageImpl<>(result, pageRequest, collect.size()); | |||
| } | |||
| List<Map<String, Object>> PersonalQueryGitByPage(String token, String login, String name, Integer page) throws Exception { | |||
| // 拼接查询url | |||
| String url = gitendpoint + "/api/users/" + login + "/projects.json?page=" + page + "&limit=50&category=manage&sort_direction=praises_count&sort_by=desc"; | |||
| if (StringUtils.isNotEmpty(name)) { | |||
| url = url + "&search=" + name; | |||
| } | |||
| String req = httpUtils.sendGetWithToken(url, null, token); | |||
| Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req); | |||
| return (List<Map<String, Object>>) stringObjectMap.get("projects"); | |||
| } | |||
| @Override | |||
| public Page<NewDatasetVo> newPubilcQueryByPage(Dataset dataset, PageRequest pageRequest) throws Exception { | |||
| String token = gitService.checkoutToken(); | |||
| List<NewDatasetVo> collect = new ArrayList<>(); | |||
| for (int i = 1; ; i++) { | |||
| List<Map<String, Object>> projects = PubilcQueryGitByPage(token, dataset.getName(), i); | |||
| List<Map<String, Object>> projects = gitService.PubilcQueryGitByPage(token, dataset.getName(), i, projectDatasetId); | |||
| if (projects.isEmpty()) { | |||
| break; | |||
| } else { | |||
| @@ -374,18 +362,6 @@ public class NewDatasetServiceImpl implements NewDatasetService { | |||
| return new PageImpl<>(result, pageRequest, collect.size()); | |||
| } | |||
| List<Map<String, Object>> PubilcQueryGitByPage(String token, String name, Integer page) throws Exception { | |||
| // 拼接查询url | |||
| String url = gitendpoint + "/api/projects.json?page=" + page + "&limit=50sort_direction=praises_count&sort_by=desc&category_id=" + projectDatasetId; | |||
| if (StringUtils.isNotEmpty(name)) { | |||
| url = url + "&search=" + name; | |||
| } | |||
| String req = httpUtils.sendGetWithToken(url, null, token); | |||
| Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req); | |||
| return (List<Map<String, Object>>) stringObjectMap.get("projects"); | |||
| } | |||
| @Override | |||
| public NewDatasetVo getNewDatasetDesc(Integer id, String name, String repo, String owner, String version, Boolean isPublic) throws Exception { | |||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||
| @@ -712,8 +688,7 @@ public class NewDatasetServiceImpl implements NewDatasetService { | |||
| Map<String, Object> author = (Map<String, Object>) map.get("author"); | |||
| newDatasetVo.setCreateBy((String) author.get("name")); | |||
| newDatasetVo.setOwner((String) author.get("login")); | |||
| String name = (String) map.get("name"); | |||
| newDatasetVo.setName(name.substring((datasetTopic + "-").length())); | |||
| newDatasetVo.setName((String) map.get("name")); | |||
| result.add(newDatasetVo); | |||
| } | |||
| } | |||
| @@ -12,6 +12,8 @@ import com.ruoyi.platform.vo.NewDatasetVo; | |||
| import com.ruoyi.system.api.constant.Constant; | |||
| import com.ruoyi.system.api.model.LoginUser; | |||
| import org.springframework.beans.factory.annotation.Value; | |||
| import org.springframework.data.domain.Page; | |||
| import org.springframework.data.domain.PageRequest; | |||
| import org.springframework.stereotype.Service; | |||
| import redis.clients.jedis.Jedis; | |||
| @@ -87,43 +89,28 @@ public class WorkspaceServiceImpl implements WorkspaceService { | |||
| @Override | |||
| public Map<String, Integer> getAssetCount(Boolean isPublic) throws Exception { | |||
| Map<String, Integer> assetCountMap = new HashMap<>(); | |||
| String token = gitService.checkoutToken(); | |||
| int availableRange = isPublic ? Constant.Image_Type_Pub : Constant.Image_Type_Pri; | |||
| String datasetUrl; | |||
| String modelUrl; | |||
| Page<NewDatasetVo> newDatasetVos; | |||
| Page<ModelsVo> modelsVos; | |||
| if (isPublic) { | |||
| // 数据集 | |||
| datasetUrl = gitendpoint + "/api/projects.json?sort_direction=updated_on&sort_by=desc&category_id=" + Constant.Git_Category_Id; | |||
| newDatasetVos = newDatasetService.newPubilcQueryByPage(new Dataset(), PageRequest.of(0, Integer.MAX_VALUE)); | |||
| // 模型 | |||
| modelUrl = gitendpoint + "/api/projects.json?sort_direction=updated_on&sort_by=desc&category_id=" + Constant.Git_Category_Id; | |||
| modelsVos = modelsService.newPubilcQueryByPage(new ModelsVo(), PageRequest.of(0, Integer.MAX_VALUE)); | |||
| } else { | |||
| Jedis jedis = new Jedis(redisHost, redisPort); | |||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||
| String ci4sUsername = loginUser.getUsername(); | |||
| String userReq = jedis.get(ci4sUsername + "_gitUserInfo"); | |||
| Map<String, Object> userInfo = JsonUtils.jsonToMap(userReq); | |||
| datasetUrl = gitendpoint + "/api/users/" + userInfo.get("login") + "/projects.json?category=manage"; | |||
| modelUrl = gitendpoint + "/api/users/" + userInfo.get("login") + "/projects.json?category=manage"; | |||
| // 数据集 | |||
| newDatasetVos = newDatasetService.newPersonalQueryByPage(new Dataset(), PageRequest.of(0, Integer.MAX_VALUE)); | |||
| // 模型 | |||
| modelsVos = modelsService.newPersonalQueryByPage(new ModelsVo(), PageRequest.of(0, Integer.MAX_VALUE)); | |||
| } | |||
| String req = httpUtils.sendGetWithToken(datasetUrl, null, token); | |||
| Map<String, Object> stringObjectMap = JacksonUtil.parseJSONStr2Map(req); | |||
| List<Map<String, Object>> projects = (List<Map<String, Object>>) stringObjectMap.get("projects"); | |||
| List<NewDatasetVo> collect1 = newDatasetService.convert(projects, Constant.Topic_Dataset, null, null); | |||
| assetCountMap.put("dataset", collect1.size()); | |||
| req = httpUtils.sendGetWithToken(modelUrl, null, token); | |||
| stringObjectMap = JacksonUtil.parseJSONStr2Map(req); | |||
| projects = (List<Map<String, Object>>) stringObjectMap.get("projects"); | |||
| List<ModelsVo> collect2 = modelsService.convert(projects, Constant.Topic_model, null, null); | |||
| assetCountMap.put("model", collect2.size()); | |||
| assetCountMap.put("dataset", (int) newDatasetVos.getTotalElements()); | |||
| assetCountMap.put("model", (int) modelsVos.getTotalElements()); | |||
| // 镜像 | |||
| Image image = new Image(); | |||
| if (isPublic) { | |||
| image.setImageType(Constant.Image_Type_Pub); | |||
| }else { | |||
| } else { | |||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||
| image.setCreateBy(loginUser.getUsername()); | |||
| image.setImageType(Constant.Image_Type_Pri); | |||