From a93ef198d8ac95975560d71e53aa1aa59d8c5125 Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 화, 30 11월 2021 15:53:24 +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