From 916a3cbabe4e50062fce61ff6f2f5d46c05dfbd1 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 목, 17 3월 2022 17:47:45 +0900
Subject: [PATCH] - api로 이슈 추가 시 url/ip로 업체 찾는 코드 수정

---
 src/main/java/kr/wisestone/owl/service/impl/ProjectRoleServiceImpl.java |   38 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 37 insertions(+), 1 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..e62af13 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
@@ -36,13 +39,29 @@
     //  湲곕낯, 愿�由ъ옄 �봽濡쒖젥�듃 �뿭�븷�쓣 �깮�꽦�븳�떎.
     @Override
     @Transactional
-    public void addDefaultProjectRole(Project project, List<User> managers, List<User> users) {
+    public void addDefaultProjectRoleUser(Project project, List<User> managers, List<User> users) {
         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.projectRoleRepository.flush();
+    }
+
+    //  �봽濡쒖젥�듃 �뿭�븷 �깮�꽦(愿�由ъ옄, �떞�떦遺��꽌)
+    @Override
+    @Transactional
+    public void addDefaultProjectRoleDepartment(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