You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by we...@apache.org on 2021/07/19 10:01:59 UTC

[dolphinscheduler] branch json_split_two updated: [Fix-5518]: The user definition count interface, projectId change to projectCode (#5839)

This is an automated email from the ASF dual-hosted git repository.

wenhemin pushed a commit to branch json_split_two
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/json_split_two by this push:
     new 90a9a72  [Fix-5518]: The user definition count interface, projectId change to projectCode (#5839)
90a9a72 is described below

commit 90a9a7283ca2f05c4ec9562b45a8703ac241d86d
Author: wen-hemin <39...@users.noreply.github.com>
AuthorDate: Mon Jul 19 18:01:52 2021 +0800

    [Fix-5518]: The user definition count interface, projectId change to projectCode (#5839)
    
    * fix: the data analysis state count interface, projectId change to projectCode
    
    * fix: the data analysis state count interface, projectId change to projectCode
    
    * fix checkstyle
    
    * fix checkstyle
    
    * fix: the process state count page use "projectCode"
    
    * fix: English comments
    
    * fix: the user definition count interface, projectId change to projectCode
    
    * fix comment
    
    Co-authored-by: wen-hemin <we...@apache.com>
---
 .../api/controller/DataAnalysisController.java     | 10 +++----
 .../api/service/DataAnalysisService.java           |  4 +--
 .../api/service/impl/DataAnalysisServiceImpl.java  | 31 ++++++++++++++--------
 .../api/controller/DataAnalysisControllerTest.java |  2 +-
 .../api/service/DataAnalysisServiceTest.java       |  9 +++++--
 .../pages/index/_source/defineUserCount.vue        |  8 +++---
 .../conf/home/pages/projects/pages/index/index.vue | 10 ++-----
 .../pages/projects/pages/list/_source/list.vue     |  2 +-
 .../src/js/conf/home/router/index.js               |  2 +-
 9 files changed, 43 insertions(+), 35 deletions(-)

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 076f9c0..0ea664a 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
@@ -118,21 +118,21 @@ public class DataAnalysisController extends BaseController {
      * statistics the process definition quantities of certain person
      *
      * @param loginUser login user
-     * @param projectId project id
-     * @return definition count in project id
+     * @param projectCode project code
+     * @return definition count in project code
      */
     @ApiOperation(value = "countDefinitionByUser", notes = "COUNT_PROCESS_DEFINITION_BY_USER_NOTES")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "projectId", value = "PROJECT_ID", dataType = "Int", example = "100")
+        @ApiImplicitParam(name = "projectCode", value = "PROJECT_CODE", dataType = "Long", example = "100")
     })
     @GetMapping(value = "/define-user-count")
     @ResponseStatus(HttpStatus.OK)
     @ApiException(COUNT_PROCESS_DEFINITION_USER_ERROR)
     @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
     public Result countDefinitionByUser(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
-                                        @RequestParam(value = "projectId", required = false, defaultValue = "0") int projectId) {
+                                        @RequestParam(value = "projectCode", required = false, defaultValue = "0") long projectCode) {
 
-        Map<String, Object> result = dataAnalysisService.countDefinitionByUser(loginUser, projectId);
+        Map<String, Object> result = dataAnalysisService.countDefinitionByUser(loginUser, projectCode);
         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 f189358..680c896 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
@@ -52,10 +52,10 @@ public interface DataAnalysisService {
      * statistics the process definition quantities of certain person
      *
      * @param loginUser login user
-     * @param projectId project id
+     * @param projectCode project code
      * @return definition count data
      */
-    Map<String, Object> countDefinitionByUser(User loginUser, int projectId);
+    Map<String, Object> countDefinitionByUser(User loginUser, long projectCode);
 
     /**
      * statistical command status data
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 25bc3f8..3e3d6ea 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
@@ -132,10 +132,14 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl implements DataAnal
 
     private Map<String, Object> countStateByProject(User loginUser, long projectCode, String startDate, String endDate
             , TriFunction<Date, Date, Long[], List<ExecuteStatusCount>> instanceStateCounter) {
-        Project project = projectMapper.queryByCode(projectCode);
-        Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, project.getName());
-        if (result.get(Constants.STATUS) != Status.SUCCESS) {
-            return result;
+        Map<String, Object> result = new HashMap<>();
+
+        if (projectCode != 0) {
+            Project project = projectMapper.queryByCode(projectCode);
+            result = projectService.checkProjectAndAuth(loginUser, project, project.getName());
+            if (result.get(Constants.STATUS) != Status.SUCCESS) {
+                return result;
+            }
         }
 
         Date start = null;
@@ -167,18 +171,23 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl implements DataAnal
      * statistics the process definition quantities of certain person
      *
      * @param loginUser login user
-     * @param projectId project id
+     * @param projectCode project code
      * @return definition count data
      */
     @Override
-    public Map<String, Object> countDefinitionByUser(User loginUser, int projectId) {
+    public Map<String, Object> countDefinitionByUser(User loginUser, long projectCode) {
         Map<String, Object> 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;
+            }
         }
-        Long[] projectCodeArray = projectId == 0 ? getProjectCodesArrays(loginUser)
-                : new Long[] { projectMapper.selectById(projectId).getCode() };
+
+        Long[] projectCodeArray = projectCode == 0 ? getProjectCodesArrays(loginUser)
+                : new Long[] { projectCode };
         List<DefinitionGroupByUser> defineGroupByUsers = processDefinitionMapper.countDefinitionGroupByUser(
                 loginUser.getId(), projectCodeArray, isAdmin(loginUser));
 
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 0818753..39cf9bd 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
@@ -92,7 +92,7 @@ public class DataAnalysisControllerTest extends AbstractControllerTest {
 
     @Test
     public void testCountDefinitionByUser() throws Exception {
-        PowerMockito.when(projectMapper.selectById(Mockito.any())).thenReturn(getProject("test"));
+        PowerMockito.when(projectMapper.queryByCode(Mockito.any())).thenReturn(getProject("test"));
 
         MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
         paramsMap.add("projectId","16");
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 d838b15..f098ee4 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
@@ -237,10 +237,15 @@ public class DataAnalysisServiceTest {
 
     @Test
     public void testCountDefinitionByUser() {
-        Mockito.when(projectMapper.selectById(Mockito.any())).thenReturn(getProject("test"));
+        Mockito.when(projectMapper.queryByCode(Mockito.any())).thenReturn(getProject("test"));
+
+        Map<String, Object> result = new HashMap<>();
+        putMsg(result, Status.SUCCESS, null);
+        Mockito.when(projectService.checkProjectAndAuth(any(), any(), any())).thenReturn(result);
+
         Mockito.when(processDefinitionMapper.countDefinitionGroupByUser(Mockito.anyInt(), Mockito.any(Long[].class),
             Mockito.anyBoolean())).thenReturn(new ArrayList<DefinitionGroupByUser>());
-        Map<String, Object> result = dataAnalysisServiceImpl.countDefinitionByUser(user, 0);
+        result = dataAnalysisServiceImpl.countDefinitionByUser(user, 0);
         Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
     }
 
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/_source/defineUserCount.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/_source/defineUserCount.vue
index 07e7349..be4304f 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/_source/defineUserCount.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/_source/defineUserCount.vue
@@ -38,11 +38,11 @@
       return {
         isSpin: true,
         msg: true,
-        parameter: { projectId: 0 }
+        parameter: { projectCode: 0 }
       }
     },
     props: {
-      projectId: Number
+      projectCode: Number
     },
     methods: {
       ...mapActions('projects', ['getDefineUserCount']),
@@ -57,7 +57,7 @@
         const myChart = Chart.bar('#process-definition-bar', this.defineUserList, {})
         myChart.echart.setOption(bar)
         // Jump not allowed on home page
-        if (this.projectId) {
+        if (this.projectCode) {
           myChart.echart.on('click', e => {
             this.$router.push({
               name: 'projects-definition-list',
@@ -71,7 +71,7 @@
     },
     created () {
       this.isSpin = true
-      this.parameter.projectId = this.projectId
+      this.parameter.projectCode = this.projectCode
       this.getDefineUserCount(this.parameter).then(res => {
         this.msg = res.data.count > 0
         this.defineUserList = []
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/index.vue
index 5175ba5..e482ed6 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/index/index.vue
@@ -56,7 +56,7 @@
               <span>{{$t('Process Definition Statistics')}}</span>
             </div>
             <div>
-              <m-define-user-count :project-id="searchParams.projectId">
+              <m-define-user-count :project-code="searchParams.projectCode">
               </m-define-user-count>
             </div>
           </div>
@@ -71,7 +71,6 @@
   import mDefineUserCount from './_source/defineUserCount'
   import mTaskStatusCount from './_source/taskStatusCount'
   import mProcessStateCount from './_source/processStateCount'
-  import localStore from '@/module/util/localStorage'
   import mListConstruction from '@/module/components/listConstruction/listConstruction'
 
   export default {
@@ -79,7 +78,6 @@
     data () {
       return {
         searchParams: {
-          projectId: null,
           projectCode: null,
           startDate: '',
           endDate: ''
@@ -87,9 +85,6 @@
         dataTime: []
       }
     },
-    props: {
-      id: Number
-    },
     methods: {
       _datepicker (val) {
         this.searchParams.startDate = val[0]
@@ -97,8 +92,7 @@
       }
     },
     created () {
-      this.searchParams.projectId = this.id === 0 ? 0 : localStore.getItem('projectId')
-      this.searchParams.projectCode = this.id === 0 ? 0 : localStore.getItem('projectCode')
+      this.searchParams.projectCode = this.$route.params.projectCode == null ? 0 : this.$route.params.projectCode
       this.dataTime[0] = dayjs().format('YYYY-MM-DD 00:00:00')
       this.dataTime[1] = dayjs().format('YYYY-MM-DD HH:mm:ss')
       this.searchParams.startDate = this.dataTime[0]
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/list/_source/list.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/list/_source/list.vue
index fe5086f..9ce93e5 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/list/_source/list.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/list/_source/list.vue
@@ -97,7 +97,7 @@
         localStore.setItem('projectId', item.id)
         localStore.setItem('projectCode', item.code)
         localStore.setItem('projectName', item.name)
-        this.$router.push({ path: `/projects/${item.id}/index` })
+        this.$router.push({ path: `/projects/${item.code}/index` })
       },
       /**
        * Delete Project
diff --git a/dolphinscheduler-ui/src/js/conf/home/router/index.js b/dolphinscheduler-ui/src/js/conf/home/router/index.js
index 1ebe4a3..f73dba2 100644
--- a/dolphinscheduler-ui/src/js/conf/home/router/index.js
+++ b/dolphinscheduler-ui/src/js/conf/home/router/index.js
@@ -83,7 +83,7 @@ const router = new Router({
           }
         },
         {
-          path: '/projects/:projectId/index',
+          path: '/projects/:projectCode/index',
           name: 'projects-index',
           component: resolve => require(['../pages/projects/pages/index/index'], resolve),
           meta: {