From 1f48550c5b7ef46fe33c869d60b1e6c758488942 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 월, 27 12월 2021 17:56:35 +0900 Subject: [PATCH] 하위 프로젝트에만 속해있는 일반회원은 프로젝트 리스트에서 하위 프로젝트가 보이지 않는 현상 수정 --- src/main/resources/mybatis/query-template/project-template.xml | 4 +--- src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java | 17 ++++++++++++++++- src/main/java/kr/wisestone/owl/vo/ProjectVo.java | 9 +++++++++ src/main/webapp/scripts/app/project/projectList.controller.js | 4 +++- src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js | 12 ++++++++---- 5 files changed, 37 insertions(+), 9 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java index 16c21d2..27fb86f 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java @@ -389,6 +389,7 @@ int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1; // �봽濡쒖젥�듃 議고쉶 寃곌낵瑜� ProjectVos 濡� 蹂��솚�븳�떎. - 愿�由ъ옄, �씪諛� �궗�슜�옄 �젙蹂� 異붽� List<ProjectVo> projectVos = this.makeProjectVos(results, user); + this.setParentProject(projectVos); this.setChildrenProject(projectVos, user); resJsonData.put(Constants.RES_KEY_CONTENTS, projectVos); @@ -449,6 +450,20 @@ } return projectVos; + } + + // �긽�쐞 �봽濡쒖젥�듃瑜� 李얠븘以��떎. + private void setParentProject(List<ProjectVo> projectVos) { + for (ProjectVo projectVo : projectVos) { + ProjectClosure projectClosure = this.projectClosureRepository.findByProjectId(projectVo.getId()); + if (projectClosure != null) { + Project parentProject = this.getProject(projectClosure.getParentProject().getId()); + ProjectVo parentProjectVo = ConvertUtil.copyProperties(parentProject, ProjectVo.class); + parentProjectVo.setParentYn(true); + ConvertUtil.copyProperties(parentProjectVo, projectVo); + this.setProjectDepartment(projectVo); + } + } } // 愿�由ъ옄, �씪諛� �궗�슜�옄瑜� 議곌굔�뿉 �뵲�씪 李얠븘以��떎. @@ -1293,4 +1308,4 @@ resJsonData.put(Constants.RES_KEY_CONTENTS, ConvertUtil.copyProperties(project, ProjectVo.class)); } -} +} \ No newline at end of file diff --git a/src/main/java/kr/wisestone/owl/vo/ProjectVo.java b/src/main/java/kr/wisestone/owl/vo/ProjectVo.java index 717cf69..b83f239 100644 --- a/src/main/java/kr/wisestone/owl/vo/ProjectVo.java +++ b/src/main/java/kr/wisestone/owl/vo/ProjectVo.java @@ -22,6 +22,7 @@ private String projectKey; private Long parentProjectId; private Boolean defaultYn = Boolean.FALSE; // �뀒�씠釉붿뿉�꽌 泥댄겕諛뺤뒪 �꽑�깮 湲덉��븷 �닔 �엳寃� 吏��젙 + private Boolean parentYn = Boolean.FALSE; // �냽�빐�엳�뒗 �봽濡쒖젥�듃�쓽 �긽�쐞 �봽濡쒖젥�듃 �쑀臾� �솗�씤 private Boolean modifyPermissionCheck = Boolean.FALSE; private List<UserVo> projectUserVos = Lists.newArrayList(); private List<UserVo> projectManagerVos = Lists.newArrayList(); @@ -157,4 +158,12 @@ public void setProjectDepartmentVos(List<DepartmentVo> projectDepartmentVos) { this.projectDepartmentVos = projectDepartmentVos; } + + public Boolean getParentYn() { + return parentYn; + } + + public void setParentYn(Boolean parentYn) { + this.parentYn = parentYn; + } } diff --git a/src/main/resources/mybatis/query-template/project-template.xml b/src/main/resources/mybatis/query-template/project-template.xml index af293cd..823b0f3 100644 --- a/src/main/resources/mybatis/query-template/project-template.xml +++ b/src/main/resources/mybatis/query-template/project-template.xml @@ -77,7 +77,7 @@ INNER JOIN user_department ud on ud.department_id = prd.department_id INNER JOIN workspace ws on ws.id = p.workspace_id LEFT JOIN project_closure pc ON p.id = pc.project_id - WHERE if (pc.parent_project_id > -1, pc.parent_project_id, -1) = -1 + WHERE 1=1 <if test="name != '' and name != null"> AND p.name like CONCAT('%',#{name},'%') </if> @@ -181,7 +181,6 @@ INNER JOIN workspace ws on ws.id = p.workspace_id LEFT JOIN project_closure pc on p.id = pc.project_id WHERE prd.department_id = ud.id - AND if (pc.parent_project_id > -1, pc.parent_project_id, -1) = -1 <if test="name != '' and name != null"> AND p.name like CONCAT('%',#{name},'%') </if> @@ -565,7 +564,6 @@ INNER JOIN user_department ud on ud.department_id = prd.department_id LEFT JOIN project_closure pc ON p.id = pc.project_id WHERE prd.department_id = ud.department_id - AND if (pc.parent_project_id > -1, pc.parent_project_id, -1) = -1 AND p.workspace_id = #{workspaceId} <if test="name != '' and name != null"> AND p.name like CONCAT('%',#{name},'%') diff --git a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js index 2be164a..6abb30e 100644 --- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js +++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js @@ -74,10 +74,14 @@ // �봽濡쒖젥�듃 �씠由�(�봽濡쒖젥�듃 由ъ뒪�듃�뿉�꽌 �궗�슜) case "PROJECT_NAME" : - if ($rootScope.workProject != null && $rootScope.workProject.id == scope.data.id) { - makeTag += "<span class='titlenameSelect cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; - } else { - makeTag += "<span class='titlename cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; + if (!scope.data.parentYn) { + if ($rootScope.workProject != null && $rootScope.workProject.id == scope.data.id) { + makeTag += "<span class='titlenameSelect cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; + } else { + makeTag += "<span class='titlename cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; + } + }else { + makeTag += "<span class='titlename cursor table-word-break-all sub-line'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; } break; diff --git a/src/main/webapp/scripts/app/project/projectList.controller.js b/src/main/webapp/scripts/app/project/projectList.controller.js index 8735a34..ce9c613 100644 --- a/src/main/webapp/scripts/app/project/projectList.controller.js +++ b/src/main/webapp/scripts/app/project/projectList.controller.js @@ -62,7 +62,8 @@ projects : [], // �봽濡쒖젥�듃 projectName : "", // �봽濡쒖젥�듃 寃��깋 viewSub : true, // �븯�쐞 �봽濡쒖젥�듃 蹂닿린 �뿬遺� - childCount : 0 // �븯�쐞 �봽濡쒖젥�듃 媛쒖닔 + childCount : 0, // �븯�쐞 �봽濡쒖젥�듃 媛쒖닔 + parentYn : false //�냽�빐�엳�뒗 �봽濡쒖젥�듃媛� �븯�쐞 �봽濡쒖젥�듃�씪 寃쎌슦 �긽�쐞 �봽濡쒖젥�듃�뿉 true媛� �꽔�뼱以� }; // �뀒�씠釉� �씠踰ㅽ듃 @@ -196,6 +197,7 @@ for (var row of arr.data) { row.depth = 0; + $scope.vm.parentYn = row.parentYn; datas.push(row); datas = setChildren(row, datas, row.depth); } -- Gitblit v1.8.0