diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/DataAnalysisController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/DataAnalysisController.java index 0ea664ae62..0f707a697b 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/DataAnalysisController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/DataAnalysisController.java @@ -136,21 +136,20 @@ public class DataAnalysisController extends BaseController { return returnDataList(result); } - /** * statistical command status data * * @param loginUser login user * @param startDate start date * @param endDate end date - * @param projectId project id - * @return command state in project id + * @param projectCode project code + * @return command state in project code */ @ApiOperation(value = "countCommandState", notes = "COUNT_COMMAND_STATE_NOTES") @ApiImplicitParams({ - @ApiImplicitParam(name = "startDate", value = "START_DATE", dataType = "String"), - @ApiImplicitParam(name = "endDate", value = "END_DATE", dataType = "String"), - @ApiImplicitParam(name = "projectId", value = "PROJECT_ID", dataType = "Int", example = "100") + @ApiImplicitParam(name = "startDate", value = "START_DATE", dataType = "String"), + @ApiImplicitParam(name = "endDate", value = "END_DATE", dataType = "String"), + @ApiImplicitParam(name = "projectCode", value = "PROJECT_CODE", dataType = "Long", example = "100") }) @GetMapping(value = "/command-state-count") @ResponseStatus(HttpStatus.OK) @@ -159,9 +158,9 @@ public class DataAnalysisController extends BaseController { public Result countCommandState(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser, @RequestParam(value = "startDate", required = false) String startDate, @RequestParam(value = "endDate", required = false) String endDate, - @RequestParam(value = "projectId", required = false, defaultValue = "0") int projectId) { + @RequestParam(value = "projectCode", required = false, defaultValue = "0") long projectCode) { - Map result = dataAnalysisService.countCommandState(loginUser, projectId, startDate, endDate); + Map result = dataAnalysisService.countCommandState(loginUser, projectCode, startDate, endDate); return returnDataList(result); } 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 680c8962f2..1a68514fb5 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 @@ -61,12 +61,12 @@ public interface DataAnalysisService { * statistical command status data * * @param loginUser login user - * @param projectId project id + * @param projectCode project code * @param startDate start date * @param endDate end date * @return command state count data */ - Map countCommandState(User loginUser, int projectId, String startDate, String endDate); + Map countCommandState(User loginUser, long projectCode, String startDate, String endDate); /** * count queue state diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/DataAnalysisServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/DataAnalysisServiceImpl.java index 3e3d6ea751..fcc69c71ef 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/DataAnalysisServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/DataAnalysisServiceImpl.java @@ -202,18 +202,21 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl implements DataAnal * statistical command status data * * @param loginUser login user - * @param projectId project id + * @param projectCode project code * @param startDate start date * @param endDate end date * @return command state count data */ @Override - public Map countCommandState(User loginUser, int projectId, String startDate, String endDate) { - + public Map countCommandState(User loginUser, long projectCode, String startDate, String endDate) { Map result = new HashMap<>(); - boolean checkProject = checkProject(loginUser, projectId, result); - if (!checkProject) { - return result; + + if (projectCode != 0) { + Project project = projectMapper.queryByCode(projectCode); + result = projectService.checkProjectAndAuth(loginUser, project, project.getName()); + if (result.get(Constants.STATUS) != Status.SUCCESS) { + return result; + } } /** @@ -237,8 +240,8 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl implements DataAnal } } - Long[] projectCodeArray = projectId == 0 ? getProjectCodesArrays(loginUser) - : new Long[] { projectMapper.selectById(projectId).getCode() }; + Long[] projectCodeArray = projectCode == 0 ? getProjectCodesArrays(loginUser) + : new Long[] { projectCode }; // count normal command state Map normalCountCommandCounts = commandMapper.countCommandState(loginUser.getId(), start, end, projectCodeArray) .stream() diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/DataAnalysisControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/DataAnalysisControllerTest.java index 39cf9bd8bb..382a795ab5 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/DataAnalysisControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/DataAnalysisControllerTest.java @@ -110,7 +110,7 @@ public class DataAnalysisControllerTest extends AbstractControllerTest { @Test public void testCountCommandState() throws Exception { - PowerMockito.when(projectMapper.selectById(Mockito.any())).thenReturn(getProject("test")); + PowerMockito.when(projectMapper.queryByCode(Mockito.any())).thenReturn(getProject("test")); MultiValueMap paramsMap = new LinkedMultiValueMap<>(); paramsMap.add("startDate","2019-12-01 00:00:00"); diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DataAnalysisServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DataAnalysisServiceTest.java index f098ee40e8..eb942333ee 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DataAnalysisServiceTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DataAnalysisServiceTest.java @@ -251,12 +251,18 @@ public class DataAnalysisServiceTest { @Test public void testCountCommandState() { - String startDate = "2020-02-11 16:02:18"; String endDate = "2020-02-11 16:03:18"; + + Mockito.when(projectMapper.queryByCode(Mockito.any())).thenReturn(getProject("test")); + //checkProject false Map result = dataAnalysisServiceImpl.countCommandState(user, 2, startDate, endDate); Assert.assertTrue(result.isEmpty()); + + putMsg(result, Status.SUCCESS, null); + Mockito.when(projectService.checkProjectAndAuth(any(), any(), any())).thenReturn(result); + List commandCounts = new ArrayList<>(1); CommandCount commandCount = new CommandCount(); commandCount.setCommandType(CommandType.START_PROCESS); @@ -266,7 +272,6 @@ public class DataAnalysisServiceTest { Mockito.when(errorCommandMapper.countCommandState(DateUtils.getScheduleDate(startDate), DateUtils.getScheduleDate(endDate), new Long[]{1L})).thenReturn(commandCounts); - Mockito.when(projectMapper.selectById(Mockito.any())).thenReturn(getProject("test")); Mockito.when(projectService.hasProjectAndPerm(Mockito.any(), Mockito.any(), Mockito.any())).thenReturn(true); result = dataAnalysisServiceImpl.countCommandState(user, 1, startDate, endDate); diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/_source/commandStateCount.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/_source/commandStateCount.vue deleted file mode 100644 index ab615e141c..0000000000 --- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/_source/commandStateCount.vue +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -