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, '&lt;') + "</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, '&lt;') + "</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, '&lt;') + "</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, '&lt;') + "</span>";
+                                                }
+                                            }else {
+                                                makeTag += "<span class='titlename cursor table-word-break-all sub-line'>" + myToken + scope.data.name.replace(/</gi, '&lt;') + "</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