| @@ -38,4 +38,8 @@ public interface GitService { | |||||
| void resetPhoneNum(SysUser sysUser) throws Exception; | void resetPhoneNum(SysUser sysUser) throws Exception; | ||||
| void deleteUser(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")); | 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; | String gitCloneEndpoint; | ||||
| @Value("${git.cloneEndpointIp}") | @Value("${git.cloneEndpointIp}") | ||||
| String gitCloneEndpointIp; | String gitCloneEndpointIp; | ||||
| @Value("${git.projectCategoryId}") | |||||
| Integer projectCategoryId; | |||||
| @Value("${git.projectModelId}") | |||||
| Integer projectModelId; | |||||
| @Value("${git.localPath}") | @Value("${git.localPath}") | ||||
| String localPath; | String localPath; | ||||
| @Value("${minio.accessKey}") | @Value("${minio.accessKey}") | ||||
| @@ -593,7 +593,7 @@ public class ModelsServiceImpl implements ModelsService { | |||||
| gitProjectVo.setDescription(modelsVo.getDescription()); | gitProjectVo.setDescription(modelsVo.getDescription()); | ||||
| gitProjectVo.setPrivate(!modelsVo.getIsPublic()); | gitProjectVo.setPrivate(!modelsVo.getIsPublic()); | ||||
| gitProjectVo.setUserId(userId); | gitProjectVo.setUserId(userId); | ||||
| gitProjectVo.setProjectCategoryId(projectCategoryId); | |||||
| gitProjectVo.setProjectCategoryId(projectModelId); | |||||
| // 创建项目 | // 创建项目 | ||||
| Map project = gitService.createProject(token, gitProjectVo); | Map project = gitService.createProject(token, gitProjectVo); | ||||
| @@ -936,55 +936,45 @@ public class ModelsServiceImpl implements ModelsService { | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | LoginUser loginUser = SecurityUtils.getLoginUser(); | ||||
| String ci4sUsername = loginUser.getUsername(); | String ci4sUsername = loginUser.getUsername(); | ||||
| String gitLinkPassword = loginUser.getSysUser().getOriginPassword(); | String gitLinkPassword = loginUser.getSysUser().getOriginPassword(); | ||||
| Map<String, Object> userInfo = getUserInfo(ci4sUsername, gitLinkPassword); | Map<String, Object> userInfo = getUserInfo(ci4sUsername, gitLinkPassword); | ||||
| String token = (String) userInfo.get("token"); | 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()). | List<ModelsVo> result = collect.stream().sorted(Comparator.comparing(ModelsVo::getPraisesCount).reversed()).skip((pageRequest.getPageNumber()) * pageRequest.getPageSize()).limit(pageRequest.getPageSize()). | ||||
| collect(Collectors.toList()); | collect(Collectors.toList()); | ||||
| return new PageImpl<>(result, pageRequest, collect.size()); | return new PageImpl<>(result, pageRequest, collect.size()); | ||||
| } | } | ||||
| @Override | @Override | ||||
| public Page<ModelsVo> newPubilcQueryByPage(ModelsVo modelsVo, PageRequest pageRequest) throws Exception { | public Page<ModelsVo> newPubilcQueryByPage(ModelsVo modelsVo, PageRequest pageRequest) throws Exception { | ||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | LoginUser loginUser = SecurityUtils.getLoginUser(); | ||||
| String ci4sUsername = loginUser.getUsername(); | String ci4sUsername = loginUser.getUsername(); | ||||
| String gitLinkPassword = loginUser.getSysUser().getOriginPassword(); | String gitLinkPassword = loginUser.getSysUser().getOriginPassword(); | ||||
| Map<String, Object> userInfo = getUserInfo(ci4sUsername, gitLinkPassword); | Map<String, Object> userInfo = getUserInfo(ci4sUsername, gitLinkPassword); | ||||
| String token = (String) userInfo.get("token"); | 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()); | collect(Collectors.toList()); | ||||
| return new PageImpl<>(result, pageRequest, collect.size()); | 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"); | Map<String, Object> author = (Map<String, Object>) map.get("author"); | ||||
| newModelVo.setCreateBy((String) author.get("name")); | newModelVo.setCreateBy((String) author.get("name")); | ||||
| newModelVo.setOwner((String) author.get("login")); | 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); | result.add(newModelVo); | ||||
| } | } | ||||
| } | } | ||||
| @@ -330,7 +330,7 @@ public class NewDatasetServiceImpl implements NewDatasetService { | |||||
| String login = (String) userInfo.get("login"); | String login = (String) userInfo.get("login"); | ||||
| List<NewDatasetVo> collect = new ArrayList<>(); | List<NewDatasetVo> collect = new ArrayList<>(); | ||||
| for (int i = 1; ; i++) { | 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()) { | if (projects.isEmpty()) { | ||||
| break; | break; | ||||
| } else { | } else { | ||||
| @@ -343,25 +343,13 @@ public class NewDatasetServiceImpl implements NewDatasetService { | |||||
| return new PageImpl<>(result, pageRequest, collect.size()); | 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 | @Override | ||||
| public Page<NewDatasetVo> newPubilcQueryByPage(Dataset dataset, PageRequest pageRequest) throws Exception { | public Page<NewDatasetVo> newPubilcQueryByPage(Dataset dataset, PageRequest pageRequest) throws Exception { | ||||
| String token = gitService.checkoutToken(); | String token = gitService.checkoutToken(); | ||||
| List<NewDatasetVo> collect = new ArrayList<>(); | List<NewDatasetVo> collect = new ArrayList<>(); | ||||
| for (int i = 1; ; i++) { | 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()) { | if (projects.isEmpty()) { | ||||
| break; | break; | ||||
| } else { | } else { | ||||
| @@ -374,18 +362,6 @@ public class NewDatasetServiceImpl implements NewDatasetService { | |||||
| return new PageImpl<>(result, pageRequest, collect.size()); | 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 | @Override | ||||
| public NewDatasetVo getNewDatasetDesc(Integer id, String name, String repo, String owner, String version, Boolean isPublic) throws Exception { | public NewDatasetVo getNewDatasetDesc(Integer id, String name, String repo, String owner, String version, Boolean isPublic) throws Exception { | ||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | LoginUser loginUser = SecurityUtils.getLoginUser(); | ||||
| @@ -712,8 +688,7 @@ public class NewDatasetServiceImpl implements NewDatasetService { | |||||
| Map<String, Object> author = (Map<String, Object>) map.get("author"); | Map<String, Object> author = (Map<String, Object>) map.get("author"); | ||||
| newDatasetVo.setCreateBy((String) author.get("name")); | newDatasetVo.setCreateBy((String) author.get("name")); | ||||
| newDatasetVo.setOwner((String) author.get("login")); | 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); | 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.constant.Constant; | ||||
| import com.ruoyi.system.api.model.LoginUser; | import com.ruoyi.system.api.model.LoginUser; | ||||
| import org.springframework.beans.factory.annotation.Value; | 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 org.springframework.stereotype.Service; | ||||
| import redis.clients.jedis.Jedis; | import redis.clients.jedis.Jedis; | ||||
| @@ -87,43 +89,28 @@ public class WorkspaceServiceImpl implements WorkspaceService { | |||||
| @Override | @Override | ||||
| public Map<String, Integer> getAssetCount(Boolean isPublic) throws Exception { | public Map<String, Integer> getAssetCount(Boolean isPublic) throws Exception { | ||||
| Map<String, Integer> assetCountMap = new HashMap<>(); | Map<String, Integer> assetCountMap = new HashMap<>(); | ||||
| String token = gitService.checkoutToken(); | |||||
| int availableRange = isPublic ? Constant.Image_Type_Pub : Constant.Image_Type_Pri; | int availableRange = isPublic ? Constant.Image_Type_Pub : Constant.Image_Type_Pri; | ||||
| String datasetUrl; | |||||
| String modelUrl; | |||||
| Page<NewDatasetVo> newDatasetVos; | |||||
| Page<ModelsVo> modelsVos; | |||||
| if (isPublic) { | 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 { | } 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(); | Image image = new Image(); | ||||
| if (isPublic) { | if (isPublic) { | ||||
| image.setImageType(Constant.Image_Type_Pub); | image.setImageType(Constant.Image_Type_Pub); | ||||
| }else { | |||||
| } else { | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | LoginUser loginUser = SecurityUtils.getLoginUser(); | ||||
| image.setCreateBy(loginUser.getUsername()); | image.setCreateBy(loginUser.getUsername()); | ||||
| image.setImageType(Constant.Image_Type_Pri); | image.setImageType(Constant.Image_Type_Pri); | ||||