Browse Source

首页统计接口

dev-opt-homepage
chenzhihang 1 year ago
parent
commit
1614f73d15
10 changed files with 120 additions and 66 deletions
  1. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/NewDatasetFromGitController.java
  2. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java
  3. +5
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/workspace/WorkspaceController.java
  4. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java
  5. +1
    -1
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/NewDatasetService.java
  6. +2
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/WorkspaceService.java
  7. +13
    -8
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java
  8. +9
    -4
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java
  9. +43
    -47
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkflowServiceImpl.java
  10. +44
    -3
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkspaceServiceImpl.java

+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/dataset/NewDatasetFromGitController.java View File

@@ -97,7 +97,7 @@ public class NewDatasetFromGitController {
dataset.setDataType(dataType);
dataset.setName(name);
if (isPublic) {
return AjaxResult.success(this.newDatasetService.newPubilcQueryByPage(dataset, pageRequest));
return AjaxResult.success(this.newDatasetService.newPubilcQueryByPage(dataset, pageRequest,null));
} else {
return AjaxResult.success(this.newDatasetService.newPersonalQueryByPage(dataset, pageRequest));
}


+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java View File

@@ -77,7 +77,7 @@ public class NewModelFromGitController extends BaseController {
modelsVo.setModelTag(modelTag);
modelsVo.setName(name);
if (isPublic) {
return AjaxResult.success(this.modelsService.newPubilcQueryByPage(modelsVo, pageRequest));
return AjaxResult.success(this.modelsService.newPubilcQueryByPage(modelsVo, pageRequest, null));
} else {
return AjaxResult.success(this.modelsService.newPersonalQueryByPage(modelsVo, pageRequest));
}


+ 5
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/workspace/WorkspaceController.java View File

@@ -33,4 +33,9 @@ public class WorkspaceController extends BaseController {
return genericsSuccess(this.workspaceService.getAssetCount(isPublic));
}

@GetMapping("/assetPublicCount")
@ApiOperation("统计公开AI资产数")
public GenericsAjaxResult<Map<String, Integer>> getAssetPublicCount() throws Exception {
return genericsSuccess(this.workspaceService.getAssetPublicCount());
}
}

+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java View File

@@ -99,7 +99,7 @@ public interface ModelsService {

ResponseEntity<InputStreamResource> downloadAllModelFilesNew(String name, String identifier, Integer id, String version, Boolean isPublic) throws IOException, Exception;

Page<ModelsVo> newPubilcQueryByPage(ModelsVo modelsVo, PageRequest pageRequest) throws Exception;
Page<ModelsVo> newPubilcQueryByPage(ModelsVo modelsVo, PageRequest pageRequest, String accessToken) throws Exception;

Page<ModelsVo> newPersonalQueryByPage(ModelsVo modelsVo, PageRequest pageRequest) throws Exception;



+ 1
- 1
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/NewDatasetService.java View File

@@ -31,7 +31,7 @@ public interface NewDatasetService {

Page<NewDatasetVo> newPersonalQueryByPage(Dataset dataset, PageRequest pageRequest) throws Exception;

Page<NewDatasetVo> newPubilcQueryByPage(Dataset dataset, PageRequest pageRequest) throws Exception;
Page<NewDatasetVo> newPubilcQueryByPage(Dataset dataset, PageRequest pageRequest, String accessToken) throws Exception;

NewDatasetVo getNewDatasetDesc(Integer repoId, String name, String repo, String owner, String version, Boolean isPublic) throws Exception;



+ 2
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/WorkspaceService.java View File

@@ -21,4 +21,6 @@ public interface WorkspaceService {


Map<String, Integer> getAssetCount(Boolean isPublic) throws Exception;

Map<String, Integer> getAssetPublicCount() throws Exception;
}

+ 13
- 8
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java View File

@@ -967,12 +967,17 @@ public class ModelsServiceImpl implements ModelsService {


@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");
public Page<ModelsVo> newPubilcQueryByPage(ModelsVo modelsVo, PageRequest pageRequest, String accessToken) throws Exception {
String token;
if (StringUtils.isNotEmpty(accessToken)) {
token = accessToken;
} else {
LoginUser loginUser = SecurityUtils.getLoginUser();
String ci4sUsername = loginUser.getUsername();
String gitLinkPassword = loginUser.getSysUser().getOriginPassword();
Map<String, Object> userInfo = getUserInfo(ci4sUsername, gitLinkPassword);
token = (String) userInfo.get("token");
}

List<ModelsVo> collect = new ArrayList<>();
for (int i = 1; ; i++) {
@@ -1326,10 +1331,10 @@ public class ModelsServiceImpl implements ModelsService {
}

if (modelTopicName != null && modelTopic.equals(modelTopicName)) {
if (StrUtil.containsAnyIgnoreCase(modelTagName,modelTag)) {
if (StrUtil.containsAnyIgnoreCase(modelTagName, modelTag)) {
continue;
}
if (StrUtil.containsAnyIgnoreCase(modelTypeName,modelType)) {
if (StrUtil.containsAnyIgnoreCase(modelTypeName, modelType)) {
continue;
}
newModelVo.setModelTag(modelTagName);


+ 9
- 4
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java View File

@@ -335,8 +335,13 @@ public class NewDatasetServiceImpl implements NewDatasetService {
}

@Override
public Page<NewDatasetVo> newPubilcQueryByPage(Dataset dataset, PageRequest pageRequest) throws Exception {
String token = gitService.checkoutToken();
public Page<NewDatasetVo> newPubilcQueryByPage(Dataset dataset, PageRequest pageRequest, String accessToken) throws Exception {
String token;
if (StringUtils.isNotEmpty(accessToken)) {
token = accessToken;
} else {
token = gitService.checkoutToken();
}

List<NewDatasetVo> collect = new ArrayList<>();
for (int i = 1; ; i++) {
@@ -678,10 +683,10 @@ public class NewDatasetServiceImpl implements NewDatasetService {
}

if (datasetTopic.equals(datasetTopicName)) {
if (StrUtil.containsAnyIgnoreCase(datasetTagName,datasetTag)) {
if (StrUtil.containsAnyIgnoreCase(datasetTagName, datasetTag)) {
continue;
}
if (StrUtil.containsAnyIgnoreCase(datasetTypeName,datasetType)) {
if (StrUtil.containsAnyIgnoreCase(datasetTypeName, datasetType)) {
continue;
}
newDatasetVo.setDataTag(datasetTagName);


+ 43
- 47
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkflowServiceImpl.java View File

@@ -243,106 +243,107 @@ public class WorkflowServiceImpl implements WorkflowService {
List<Map<String, Object>> nodes = (List<Map<String, Object>>) dagMap.get("nodes");
for (Map<String, Object> node : nodes) {
String componentName = (String) node.get("component_name");
Map<String, Object> taskInfo = (Map<String, Object>) node.get("task_info");
Map<String, Object> inParameters = (Map<String, Object>) node.get("in_parameters");
// 自定义执行
if ("self-command-execute".equals(componentName)) {
//保存镜像-流水线关系
saveImageWorkFlow((String) node.get("image"), workflow.getId(), workflow.getName());
saveImageWorkFlow((Map<String, Object>) taskInfo.get("image"), workflow.getId(), workflow.getName());
}
// 代码拉取组件
else if ("git-clone".equals(componentName)) {
//保存镜像-流水线关系
saveImageWorkFlow((String) node.get("image"), workflow.getId(), workflow.getName());
saveImageWorkFlow((Map<String, Object>) taskInfo.get("image"), workflow.getId(), workflow.getName());
//保存代码-流水线关系
saveCodeWorkFlow((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveCodeWorkFlow(inParameters, workflow.getId(), workflow.getName());
}
// 模型训练
else if ("model-train".equals(componentName)) {
//保存镜像-流水线关系
saveImageWorkFlow((String) node.get("image"), workflow.getId(), workflow.getName());
saveImageWorkFlow((Map<String, Object>) taskInfo.get("image"), workflow.getId(), workflow.getName());
//保存数据集-流水线关系
saveDatasetWorkFlow((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveDatasetWorkFlow(inParameters, workflow.getId(), workflow.getName());
//保存模型-流水线关系
saveModelWorkFlow((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveModelWorkFlow(inParameters, workflow.getId(), workflow.getName());
}
// 分布式训练
else if ("distributed-model-train".equals(componentName)) {
//保存镜像-流水线关系
saveImageWorkFlow((String) node.get("image"), workflow.getId(), workflow.getName());
saveImageWorkFlow((Map<String, Object>) taskInfo.get("image"), workflow.getId(), workflow.getName());
//保存数据集-流水线关系
saveDatasetWorkFlow((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveDatasetWorkFlow(inParameters, workflow.getId(), workflow.getName());
//保存模型-流水线关系
saveModelWorkFlow((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveModelWorkFlow(inParameters, workflow.getId(), workflow.getName());
}
// 模型测试
else if ("model-evaluate".equals(componentName)) {
//保存镜像-流水线关系
saveImageWorkFlow((String) node.get("image"), workflow.getId(), workflow.getName());
saveImageWorkFlow((Map<String, Object>) taskInfo.get("image"), workflow.getId(), workflow.getName());
//保存数据集-流水线关系
saveDatasetWorkFlow((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveDatasetWorkFlow(inParameters, workflow.getId(), workflow.getName());
//保存模型-流水线关系
saveModelWorkFlow((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveModelWorkFlow(inParameters, workflow.getId(), workflow.getName());
}
// 数据预处理
else if ("general-data-process".equals(componentName)) {
//保存镜像-流水线关系
saveImageWorkFlow((String) node.get("image"), workflow.getId(), workflow.getName());
saveImageWorkFlow((Map<String, Object>) taskInfo.get("image"), workflow.getId(), workflow.getName());
//保存数据集-流水线关系
saveDatasetWorkFlow((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveDatasetWorkFlow(inParameters, workflow.getId(), workflow.getName());
}
// 模型导出
else if ("model-export".equals(componentName)) {
//保存镜像-流水线关系
saveImageWorkFlow((String) node.get("image"), workflow.getId(), workflow.getName());
saveImageWorkFlow((Map<String, Object>) taskInfo.get("image"), workflow.getId(), workflow.getName());
//保存模型-流水线关系
saveModelWorkFlow1((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveModelWorkFlow1(inParameters, workflow.getId(), workflow.getName());
}
// 数据集导出
else if ("dataset-export".equals(componentName)) {
//保存镜像-流水线关系
saveImageWorkFlow((String) node.get("image"), workflow.getId(), workflow.getName());
saveImageWorkFlow((Map<String, Object>) taskInfo.get("image"), workflow.getId(), workflow.getName());
//保存数据集-流水线关系
saveDatasetWorkFlow1((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveDatasetWorkFlow1(inParameters, workflow.getId(), workflow.getName());
}
// 模型部署
else if ("model-deploy".equals(componentName)) {
//保存镜像-流水线关系
saveImageWorkFlow((String) node.get("image"), workflow.getId(), workflow.getName());
saveImageWorkFlow((Map<String, Object>) taskInfo.get("image"), workflow.getId(), workflow.getName());
//保存模型-流水线关系
saveModelWorkFlow((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveModelWorkFlow(inParameters, workflow.getId(), workflow.getName());
//保存服务-流水线关系
saveServiceWorkFlow((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveServiceWorkFlow(inParameters, workflow.getId(), workflow.getName());
//保存镜像-流水线关系
saveImageWorkFlow1((String) node.get("in_parameters"), workflow.getId(), workflow.getName());
saveImageWorkFlow1(inParameters, workflow.getId(), workflow.getName());
}
}
}
}

public void saveImageWorkFlow(String image, Long workflowId, String workflowName) throws Exception {
public void saveImageWorkFlow(Map<String, Object> image, Long workflowId, String workflowName) throws Exception {
try {
String[] imageSplit = image.split(":");
String imageUrl = (String) image.get("url");
String[] imageSplit = imageUrl.split(":");
String tagName = imageSplit[1];
ImageVersion imageVersion = imageVersionDao.queryByUrl(image);
ImageVersion imageVersion = imageVersionDao.queryByUrl(imageUrl);
insertAssetWorkFlow(workflowId, workflowName, Long.valueOf(imageVersion.getImageId()), tagName, Constant.Asset_Type_Image);
} catch (Exception e) {
throw new Exception("镜像参数有误:" + e);
}
}

public void saveImageWorkFlow1(String inParameters, Long workflowId, String workflowName) throws Exception {
public void saveImageWorkFlow1(Map<String, Object> inParameters, Long workflowId, String workflowName) throws Exception {
try {
Map<String, Object> paramMap = JsonUtils.jsonToMap(inParameters);
Map<String, Object> image = (Map<String, Object>) paramMap.get("--image");
saveImageWorkFlow((String) image.get("value"), workflowId, workflowName);
Map<String, Object> image = (Map<String, Object>) inParameters.get("--image");
saveImageWorkFlow(image, workflowId, workflowName);
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}

public void saveCodeWorkFlow(String inParameters, Long workflowId, String workflowName) throws Exception {
public void saveCodeWorkFlow(Map<String, Object> inParameters, Long workflowId, String workflowName) throws Exception {
try {
Map<String, Object> paramMap = JsonUtils.jsonToMap(inParameters);
Map<String, Object> code_config = (Map<String, Object>) paramMap.get("--code_config");
Map<String, Object> code_config = (Map<String, Object>) inParameters.get("--code_config");
String value = (String) code_config.get("value");
Map<String, Object> valueMap = JsonUtils.jsonToMap(value);
insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((Integer) valueMap.get("id")), null, Constant.Asset_Type_Code);
@@ -351,10 +352,9 @@ public class WorkflowServiceImpl implements WorkflowService {
}
}

public void saveDatasetWorkFlow(String inParameters, Long workflowId, String workflowName) throws Exception {
public void saveDatasetWorkFlow(Map<String, Object> inParameters, Long workflowId, String workflowName) throws Exception {
try {
Map<String, Object> paramMap = JsonUtils.jsonToMap(inParameters);
Map<String, Object> dataset = (Map<String, Object>) paramMap.get("--dataset");
Map<String, Object> dataset = (Map<String, Object>) inParameters.get("--dataset");
String value = (String) dataset.get("value");
if (!value.startsWith("{{")) {
Map<String, Object> valueMap = JsonUtils.jsonToMap(value);
@@ -365,10 +365,9 @@ public class WorkflowServiceImpl implements WorkflowService {
}
}

public void saveDatasetWorkFlow1(String inParameters, Long workflowId, String workflowName) throws Exception {
public void saveDatasetWorkFlow1(Map<String, Object> inParameters, Long workflowId, String workflowName) throws Exception {
try {
Map<String, Object> paramMap = JsonUtils.jsonToMap(inParameters);
Map<String, Object> dataset = (Map<String, Object>) paramMap.get("--dataset_id");
Map<String, Object> dataset = (Map<String, Object>) inParameters.get("--dataset_id");
String value = (String) dataset.get("value");
Map<String, Object> valueMap = JsonUtils.jsonToMap(value);
insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((String) valueMap.get("id")), null, Constant.Asset_Type_Dataset);
@@ -377,10 +376,9 @@ public class WorkflowServiceImpl implements WorkflowService {
}
}

public void saveModelWorkFlow(String inParameters, Long workflowId, String workflowName) throws Exception {
public void saveModelWorkFlow(Map<String, Object> inParameters, Long workflowId, String workflowName) throws Exception {
try {
Map<String, Object> paramMap = JsonUtils.jsonToMap(inParameters);
Map<String, Object> model = (Map<String, Object>) paramMap.get("--model_name");
Map<String, Object> model = (Map<String, Object>) inParameters.get("--model_name");
String value = (String) model.get("value");
if (StringUtils.isNotEmpty(value) && !value.startsWith("{{")) {
Map<String, Object> valueMap = JsonUtils.jsonToMap(value);
@@ -391,10 +389,9 @@ public class WorkflowServiceImpl implements WorkflowService {
}
}

public void saveModelWorkFlow1(String inParameters, Long workflowId, String workflowName) throws Exception {
public void saveModelWorkFlow1(Map<String, Object> inParameters, Long workflowId, String workflowName) throws Exception {
try {
Map<String, Object> paramMap = JsonUtils.jsonToMap(inParameters);
Map<String, Object> model = (Map<String, Object>) paramMap.get("--model_id");
Map<String, Object> model = (Map<String, Object>) inParameters.get("--model_id");
String value = (String) model.get("value");
Map<String, Object> valueMap = JsonUtils.jsonToMap(value);
insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((String) valueMap.get("id")), null, Constant.Asset_Type_Model);
@@ -403,10 +400,9 @@ public class WorkflowServiceImpl implements WorkflowService {
}
}

public void saveServiceWorkFlow(String inParameters, Long workflowId, String workflowName) throws Exception {
public void saveServiceWorkFlow(Map<String, Object> inParameters, Long workflowId, String workflowName) throws Exception {
try {
Map<String, Object> paramMap = JsonUtils.jsonToMap(inParameters);
Map<String, Object> service = (Map<String, Object>) paramMap.get("--service_name");
Map<String, Object> service = (Map<String, Object>) inParameters.get("--service_name");
String value = (String) service.get("value");
Map<String, Object> valueMap = JsonUtils.jsonToMap(value);
insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((Integer) valueMap.get("id")), null, Constant.Asset_Type_Service);


+ 44
- 3
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkspaceServiceImpl.java View File

@@ -15,6 +15,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -42,6 +43,8 @@ public class WorkspaceServiceImpl implements WorkspaceService {
private ModelsService modelsService;
@Resource
private ServiceDao serviceDao;
@Resource
private GitService gitService;

@Override
public Map<String, Object> getOverview() {
@@ -84,9 +87,9 @@ public class WorkspaceServiceImpl implements WorkspaceService {
Page<ModelsVo> modelsVos;
if (isPublic) {
// 数据集
newDatasetVos = newDatasetService.newPubilcQueryByPage(new Dataset(), PageRequest.of(0, Integer.MAX_VALUE));
newDatasetVos = newDatasetService.newPubilcQueryByPage(new Dataset(), PageRequest.of(0, Integer.MAX_VALUE),null);
// 模型
modelsVos = modelsService.newPubilcQueryByPage(new ModelsVo(), PageRequest.of(0, Integer.MAX_VALUE));
modelsVos = modelsService.newPubilcQueryByPage(new ModelsVo(), PageRequest.of(0, Integer.MAX_VALUE), null);
} else {
// 数据集
newDatasetVos = newDatasetService.newPersonalQueryByPage(new Dataset(), PageRequest.of(0, Integer.MAX_VALUE));
@@ -123,7 +126,45 @@ public class WorkspaceServiceImpl implements WorkspaceService {
assetCountMap.put("codeConfig", codeConfigCount);
// 统计服务数量
com.ruoyi.platform.domain.Service service = new com.ruoyi.platform.domain.Service();
Integer serviceCount = (int) serviceDao.countService(service);
Integer serviceCount = (int) serviceDao.countService(service);
assetCountMap.put("service", serviceCount);
return assetCountMap;
}

@Override
public Map<String, Integer> getAssetPublicCount() throws Exception {
String accessToken = gitService.login("fanshuai", SecurityUtils.encrypt("h1n2x3j4y5@"));
Map<String, Integer> assetCountMap = new HashMap<>();
Page<NewDatasetVo> newDatasetVos;
Page<ModelsVo> modelsVos;
// 数据集
newDatasetVos = newDatasetService.newPubilcQueryByPage(new Dataset(), PageRequest.of(0, Integer.MAX_VALUE), accessToken);
// 模型
modelsVos = modelsService.newPubilcQueryByPage(new ModelsVo(), PageRequest.of(0, Integer.MAX_VALUE), accessToken);
assetCountMap.put("dataset", (int) newDatasetVos.getTotalElements());
assetCountMap.put("model", (int) modelsVos.getTotalElements());
// 镜像
Image image = new Image();
image.setImageType(Constant.Image_Type_Pub);
Integer imageCount = (int) this.imageDao.count(image);
assetCountMap.put("image", imageCount);
//统计组件数量
Component component = new Component();
component.setAvailableRange(Constant.Image_Type_Pub);
Integer componentCount = (int) this.componentDao.count(component);
assetCountMap.put("component", componentCount);
//统计流水线数量
Workflow workflow = new Workflow();
Integer workflowCount = (int) this.workflowDao.count(workflow);
assetCountMap.put("workflow", workflowCount);
// 统计代码配置数量
CodeConfig codeConfig = new CodeConfig();
codeConfig.setIsPublic(Boolean.TRUE);
Integer codeConfigCount = (int) this.codeConfigDao.count(codeConfig);
assetCountMap.put("codeConfig", codeConfigCount);
// 统计服务数量
com.ruoyi.platform.domain.Service service = new com.ruoyi.platform.domain.Service();
Integer serviceCount = (int) serviceDao.countService(service);
assetCountMap.put("service", serviceCount);
return assetCountMap;
}


Loading…
Cancel
Save