diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/DataAnalysisService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/DataAnalysisService.java index 1f97f493ab..e8e6939747 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/DataAnalysisService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/DataAnalysisService.java @@ -43,7 +43,7 @@ import java.util.*; * data analysis service */ @Service -public class DataAnalysisService { +public class DataAnalysisService extends BaseService{ private static final Logger logger = LoggerFactory.getLogger(DataAnalysisService.class); @@ -83,13 +83,9 @@ public class DataAnalysisService { public Map countTaskStateByProject(User loginUser, int projectId, String startDate, String endDate) { Map result = new HashMap<>(5); - if(projectId != 0){ - Project project = projectMapper.selectById(projectId); - result = projectService.checkProjectAndAuth(loginUser, project, String.valueOf(projectId)); - - if (getResultStatus(result)){ - return result; - } + boolean checkProject = checkProject(loginUser, projectId, result); + if(!checkProject){ + return result; } /** @@ -139,13 +135,9 @@ public class DataAnalysisService { public Map countProcessInstanceStateByProject(User loginUser, int projectId, String startDate, String endDate) { Map result = new HashMap<>(5); - if(projectId != 0){ - Project project = projectMapper.selectById(projectId); - result = projectService.checkProjectAndAuth(loginUser, project, String.valueOf(projectId)); - - if (getResultStatus(result)){ - return result; - } + boolean checkProject = checkProject(loginUser, projectId, result); + if(!checkProject){ + return result; } Date start = null; @@ -205,19 +197,6 @@ public class DataAnalysisService { result.put(Constants.MSG, status.getMsg()); } - /** - * get result status - * @param result - * @return - */ - private boolean getResultStatus(Map result) { - Status resultEnum = (Status) result.get(Constants.STATUS); - if (resultEnum != Status.SUCCESS) { - return true; - } - return false; - } - /** * statistical command status data * @@ -230,13 +209,9 @@ public class DataAnalysisService { public Map countCommandState(User loginUser, int projectId, String startDate, String endDate) { Map result = new HashMap<>(5); - if(projectId != 0){ - Project project = projectMapper.selectById(projectId); - result = projectService.checkProjectAndAuth(loginUser, project, String.valueOf(projectId)); - - if (getResultStatus(result)){ - return result; - } + boolean checkProject = checkProject(loginUser, projectId, result); + if(!checkProject){ + return result; } /** @@ -346,18 +321,15 @@ public class DataAnalysisService { */ public Map countQueueState(User loginUser, int projectId) { Map result = new HashMap<>(5); - if(projectId != 0){ - Project project = projectMapper.selectById(projectId); - result = projectService.checkProjectAndAuth(loginUser, project, String.valueOf(projectId)); - if (getResultStatus(result)){ - return result; - } + boolean checkProject = checkProject(loginUser, projectId, result); + if(!checkProject){ + return result; } ITaskQueue tasksQueue = TaskQueueFactory.getTaskQueueInstance(); - List tasksQueueList = tasksQueue.getAllTasks(org.apache.dolphinscheduler.common.Constants.DOLPHINSCHEDULER_TASKS_QUEUE); - List tasksKillList = tasksQueue.getAllTasks(org.apache.dolphinscheduler.common.Constants.DOLPHINSCHEDULER_TASKS_KILL); + List tasksQueueList = tasksQueue.getAllTasks(Constants.DOLPHINSCHEDULER_TASKS_QUEUE); + List tasksKillList = tasksQueue.getAllTasks(Constants.DOLPHINSCHEDULER_TASKS_KILL); Map dataMap = new HashMap<>(); if (loginUser.getUserType() == UserType.ADMIN_USER){ @@ -412,4 +384,12 @@ public class DataAnalysisService { putMsg(result, Status.SUCCESS); return result; } + + private boolean checkProject(User loginUser, int projectId, Map result){ + if(projectId != 0){ + Project project = projectMapper.selectById(projectId); + return projectService.hasProjectAndPerm(loginUser, project, result); + } + return true; + } }