From b98d25d2425b932e70efb1b6ea6bec436cd3f6f2 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 금, 19 11월 2021 13:35:30 +0900 Subject: [PATCH] 프로젝트 담당부서 백엔드 수정 * 프로젝트에 속해있는 부서만 이슈 담당부서로 설정 가능 --- src/main/java/kr/wisestone/owl/service/impl/ProjectRoleServiceImpl.java | 40 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/ProjectRoleServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/ProjectRoleServiceImpl.java index 2795517..c36dc52 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/ProjectRoleServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/ProjectRoleServiceImpl.java @@ -26,6 +26,9 @@ private ProjectRoleUserService projectRoleUserService; @Autowired + private ProjectRoleDepartmentService projectRoleDepartmentService; + + @Autowired private ProjectRolePermissionService projectRolePermissionService; @Override @@ -34,7 +37,7 @@ } // 湲곕낯, 愿�由ъ옄 �봽濡쒖젥�듃 �뿭�븷�쓣 �깮�꽦�븳�떎. - @Override + /*@Override @Transactional public void addDefaultProjectRole(Project project, List<User> managers, List<User> users) { ProjectRole projectRole = this.addProjectRole(project, "湲곕낯 �봽濡쒖젥�듃 �뿭�븷", ProjectRole.TYPE_DEFAULT, Permission.ROLE_TYPE_PROJECT_JOIN); @@ -42,7 +45,23 @@ // �봽濡쒖젥�듃 愿�由ъ옄 ���옣 this.projectRoleAssociatedUser(managers, managerProjectRole); // �봽濡쒖젥�듃 �씪諛� �궗�슜�옄 ���옣 - this.projectRoleAssociatedUser(users, projectRole); + //this.projectRoleAssociatedUser(users, projectRole); + + this.projectRoleRepository.flush(); + }*/ + + // �봽濡쒖젥�듃 �뿭�븷 �깮�꽦(愿�由ъ옄, �떞�떦遺��꽌) + @Override + @Transactional + public void addDefaultProjectRole(Project project, List<User> managers, List<Department> departments) { + ProjectRole projectRole = this.addProjectRole(project, "湲곕낯 �봽濡쒖젥�듃 �뿭�븷", ProjectRole.TYPE_DEFAULT, Permission.ROLE_TYPE_PROJECT_JOIN); + ProjectRole managerProjectRole = this.addProjectRole(project, "�봽濡쒖젥�듃 愿�由ъ옄 �뿭�븷", ProjectRole.TYPE_MANAGER, Permission.ROLE_TYPE_PROJECT_MANAGER); + // �봽濡쒖젥�듃 愿�由ъ옄 ���옣 + this.projectRoleAssociatedUser(managers, managerProjectRole); + // �봽濡쒖젥�듃 �씪諛� �궗�슜�옄 ���옣 + //this.projectRoleAssociatedUser(users, projectRole); + // �봽濡쒖젥�듃 �떞�떦 遺��꽌 ���옣 + this.projectRoleAssociatedDepartment(departments, projectRole); this.projectRoleRepository.flush(); } @@ -64,6 +83,23 @@ } } + // �봽濡쒖젥�듃 �뿭�븷怨� 遺��꽌 �뿰寃� + private void projectRoleAssociatedDepartment(List<Department> departments, ProjectRole projectRole) { + for (Department department : departments) { + this.addDefaultProjectRoleAssociatedDepartment(projectRole, department); + } + } + + // �빐�떦 �뿭�븷怨� 遺��꽌瑜� �뿰寃곗떆�궓�떎. + private void addDefaultProjectRoleAssociatedDepartment(ProjectRole projectRole, Department department) { + ProjectRoleDepartment projectRoleDepartment = this.projectRoleDepartmentService.findByProjectRoleIdAndDepartmentId(projectRole.getId(), department.getId()); + + if (projectRoleDepartment == null) { + // �봽濡쒖젥�듃 愿�由ъ옄 - 湲곕낯 �봽濡쒖젥�듃 �뿭�븷�뿉 異붽�. + department.addProjectRole(projectRole); + } + } + // �봽濡쒖젥�듃 �뿭�븷�쓣 �깮�꽦�븳�떎. private ProjectRole addProjectRole(Project project, String projectRoleName, String projectRoleType, String permissionType) { ProjectRole projectRole = new ProjectRole(project, projectRoleName, projectRoleType); -- Gitblit v1.8.0