From 3bdf2a1f2757de8ab6570508385d89124243943c Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 금, 10 12월 2021 15:34:13 +0900
Subject: [PATCH] 일반회원 대시보드 오류 해결

---
 src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java |  113 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 91 insertions(+), 22 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java
index df9aac1..510d85c 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java
@@ -4,11 +4,9 @@
 import kr.wisestone.owl.common.ExcelConditionCheck;
 import kr.wisestone.owl.common.MessageAccessor;
 import kr.wisestone.owl.constant.Constants;
+import kr.wisestone.owl.constant.MngPermission;
 import kr.wisestone.owl.constant.MsgConstants;
-import kr.wisestone.owl.domain.IssueStatus;
-import kr.wisestone.owl.domain.Project;
-import kr.wisestone.owl.domain.ProjectClosure;
-import kr.wisestone.owl.domain.UserDepartment;
+import kr.wisestone.owl.domain.*;
 import kr.wisestone.owl.domain.enumType.ProjectType;
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.mapper.IssueMapper;
@@ -63,6 +61,9 @@
 
     @Autowired
     private UserService userService;
+
+    @Autowired
+    private UserLevelService userLevelService;
 
     @Autowired
     private UserDepartmentService userDepartmentService;
@@ -166,9 +167,12 @@
     @Override
     @Transactional(readOnly = true)
     public WidgetCondition makeWidgetCondition() {
+        User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
         //  �빐�떦 �썙�겕�뒪�럹�씠�뒪�뿉�꽌 李몄뿬�븯怨� �엳�뒗 �봽濡쒖젥�듃 以� �긽�깭媛� �삤�뵂�씤 �봽濡쒖젥�듃
         List<Map<String, Object>> projects = null;
-        if (this.userWorkspaceService.checkWorkspaceManager()) {
+        if (this.userWorkspaceService.checkWorkspaceManager(user)
+                || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
             projects = this.projectService.findByWorkspaceManagerAll();
         } else  {
             projects = this.projectService.findByWorkspaceIdAndIncludeProjectAll(Lists.newArrayList("02"), ProjectType.BTS_PROJECT.toString());
@@ -245,15 +249,30 @@
         Long delayIssue = 0L; //  吏��뿰�맂 �씠�뒋
         Long completeIssue = 0L; // �셿猷뚮맂 �씠�뒋
 
+        widgetCondition.setLoginUserId(this.webAppUtil.getLoginId());
+        widgetCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
+        User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
+
         if (widgetCondition.getProjectIds().size() > 0) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
-
-            remainIssue = this.widgetMapper.countRemainIssue(widgetCondition);   //  �옍�뿬 �씠�뒋
-            delayIssue = this.widgetMapper.countTodayDelayIssue(widgetCondition); //  吏��뿰�맂 �씠�뒋
-            assigneeIssue = this.widgetMapper.countAssigneeIssue(widgetCondition);   //  �븷�떦�맂 �씠�뒋
-            registerIssue = this.widgetMapper.countTodayRegisterIssue(widgetCondition);    //  �벑濡앺븳 �씠�뒋
-            noAssigneeIssue = this.widgetMapper.countNoAssigneeIssue(widgetCondition);   //  誘명븷�떦 �씠�뒋
-            completeIssue = this.widgetMapper.countCompleteIssue(widgetCondition); // �셿猷뚮맂 �씠�뒋
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
+                remainIssue = this.widgetMapper.countRemainIssue(widgetCondition);   //  �옍�뿬 �씠�뒋
+                delayIssue = this.widgetMapper.countTodayDelayIssue(widgetCondition); //  吏��뿰�맂 �씠�뒋
+                assigneeIssue = this.widgetMapper.countAssigneeIssue(widgetCondition);   //  �븷�떦�맂 �씠�뒋
+                registerIssue = this.widgetMapper.countTodayRegisterIssue(widgetCondition);    //  �벑濡앺븳 �씠�뒋
+                noAssigneeIssue = this.widgetMapper.countNoAssigneeIssue(widgetCondition);   //  誘명븷�떦 �씠�뒋
+                completeIssue = this.widgetMapper.countCompleteIssue(widgetCondition); // �셿猷뚮맂 �씠�뒋
+            } else {
+                SetMyDepartmentId(widgetCondition);
+                remainIssue = this.widgetMapper.countRemainIssueByDepartment(widgetCondition);   //  �옍�뿬 �씠�뒋
+                delayIssue = this.widgetMapper.countTodayDelayIssueByDepartment(widgetCondition); //  吏��뿰�맂 �씠�뒋
+                assigneeIssue = this.widgetMapper.countAssigneeIssueByDepartment(widgetCondition);   //  �븷�떦�맂 �씠�뒋
+                registerIssue = this.widgetMapper.countTodayRegisterIssueByDepartment(widgetCondition);    //  �벑濡앺븳 �씠�뒋
+                //noAssigneeIssue = this.widgetMapper.countNoAssigneeIssueByDepartment(widgetCondition);   //  �씪諛� �쑀���뒗 誘명븷�떦 �씠�뒋 0媛쒕줈 蹂댁씠寃�
+                completeIssue = this.widgetMapper.countCompleteIssueByDepartment(widgetCondition); // �셿猷뚮맂 �씠�뒋
+            }
         }
 
         Map<String, Object> results = new HashMap<>();
@@ -277,9 +296,13 @@
     public void findProjectProgress(Map<String, Object> resJsonData, WidgetCondition widgetCondition) {
         List<Map<String, Object>> progressingProjectDetails = Lists.newArrayList();
 
+        User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
+
         if (widgetCondition.getProjectIds().size() > 0) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
-            if (this.userWorkspaceService.checkWorkspaceManager()) {
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
                 progressingProjectDetails = this.widgetMapper.findProjectProgressAll(widgetCondition);
             } else {
                 progressingProjectDetails = this.widgetMapper.findProjectProgress(widgetCondition);
@@ -379,11 +402,11 @@
 
         if (widgetCondition.getProjectIds().size() > 0) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
+            this.SetMyDepartmentId(widgetCondition);
             todayCount = this.widgetMapper.countTodayMyAssigneeIssue(widgetCondition);
             assigneeIssues = this.widgetMapper.findMyAssigneeIssue(widgetCondition);
             totalCount = this.widgetMapper.countMyAssigneeIssue(widgetCondition);
         }
-
 
         //  0.156 - 0.166
         int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
@@ -481,9 +504,20 @@
         //  �쐞�젽 寃��깋 議곌굔�쓣 留뚮뱾怨� �쟾泥� �봽濡쒖젥�듃 �젙蹂대�� 由ы꽩�븳�떎.
         Map<String, Object> results = this.makeWidgetConditionAllProject(widgetCondition, getWidgetCondition);
 
+        widgetCondition.setLoginUserId(this.webAppUtil.getLoginId());
+        widgetCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
+        User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
+
         if (widgetCondition.getProjectId() != null) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
-            List<Map<String, Object>> projectMemberIssues = this.widgetMapper.findProjectMemberIssue(widgetCondition);
+            List<Map<String, Object>> projectMemberIssues = Lists.newArrayList();
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
+                projectMemberIssues = this.widgetMapper.findProjectMemberIssue(widgetCondition);
+            } else {
+                projectMemberIssues = this.widgetMapper.findProjectMemberIssueByDepartment(widgetCondition);
+            }
 
             for (Map<String, Object> projectMemberIssue : projectMemberIssues) {
                 //String departmentName = MapUtil.getString(projectMemberIssue, "departmentName");
@@ -761,10 +795,17 @@
         }
 
         List<Map<String, Object>> results = Lists.newArrayList();
+        User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
 
         if (widgetCondition.getProjectIds().size() > 0) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
-            results = this.widgetMapper.findByStandIssueStatus(widgetCondition);
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
+                results = this.widgetMapper.findByStandIssueStatus(widgetCondition);
+            }else {
+                results = this.widgetMapper.findByStandIssueStatusOfDepartment(widgetCondition);
+            }
         }
 
         for (Map<String, Object> result : results) {
@@ -788,10 +829,17 @@
     public void findByStandIssueType(Map<String, Object> resJsonData, WidgetCondition widgetCondition, Boolean getWidgetCondition) {
         //  �쐞�젽 寃��깋 議곌굔�쓣 �뼸�뼱�빞 �븷 �긽�솴�씪 �븣 - �솕硫댁뿉�꽌 �꺆�쓣 �닃�윭 �뜲�씠�꽣瑜� �옱�슂泥��뻽�쓣 �븣 �쐞�젽 寃��깋 議곌굔�쓣 留뚮뱾怨� �쟾泥� �봽濡쒖젥�듃 �젙蹂대�� 由ы꽩�븳�떎.
         Map<String, Object> results = this.makeWidgetConditionAllProject(widgetCondition, getWidgetCondition);
-
+        User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
         if (widgetCondition.getProjectId() != null) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
-            List<Map<String, Object>> issueTypeIssues = this.widgetMapper.findByStandIssueType(widgetCondition);
+            List<Map<String, Object>> issueTypeIssues = Lists.newArrayList();
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
+                issueTypeIssues = this.widgetMapper.findByStandIssueType(widgetCondition);
+            } else {
+                issueTypeIssues = this.widgetMapper.findByStandIssueTypeOfDepartment(widgetCondition);
+            }
             //  �씠�뒋 �젙蹂�
             results.put("issues", issueTypeIssues);
         } else {
@@ -864,12 +912,24 @@
         List<Map<String, Object>> severityIssues = Lists.newArrayList();
         Long totalCount = 0L;
 
+        widgetCondition.setLoginUserId(this.webAppUtil.getLoginId());
+        widgetCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
+        User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
+
         if (widgetCondition.getProjectIds().size() > 0) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
-
-            severityCounts = this.widgetMapper.countSeverityIssue(widgetCondition);
-            severityIssues = this.widgetMapper.findSeverityIssues(widgetCondition);
-            totalCount = this.widgetMapper.countSearchIssue(widgetCondition);
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
+                severityCounts = this.widgetMapper.countSeverityIssue(widgetCondition);
+                severityIssues = this.widgetMapper.findSeverityIssues(widgetCondition);
+                totalCount = this.widgetMapper.countSearchIssue(widgetCondition);
+            }else {
+                SetMyDepartmentId(widgetCondition);
+                severityCounts = this.widgetMapper.countSeverityIssueByDepartment(widgetCondition);
+                severityIssues = this.widgetMapper.findSeverityIssuesByDepartment(widgetCondition);
+                totalCount = this.widgetMapper.countSearchIssueByDepartment(widgetCondition);
+            }
         }
 
         Long criticalIssueCount = 0L, majorIssueCount = 0L, minorIssueCount = 0L, trivialIssueCount = 0L;
@@ -1027,10 +1087,19 @@
     //  �굹�뿉寃� �븷�떦�맂 �씠�뒋 �젙蹂대�� �뿊��濡� �떎�슫濡쒕뱶 �븳�떎.
     private ExportExcelVo downloadExcelMyAssigneeIssue() {
         WidgetCondition widgetCondition = this.makeWidgetCondition();
+
+        /*widgetCondition.setLoginUserId(this.webAppUtil.getLoginId());
+        widgetCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
+        User user = this.webAppUtil.getLoginUserObject();*/
+
         //  �굹�뿉寃� �븷�떦�맂 �씠�뒋
         List<Map<String, Object>> assigneeIssues = Lists.newArrayList();
         if (widgetCondition.getProjectIds().size() > 0) {
+            //if (this.userWorkspaceService.checkWorkspaceManager(user)) {
             assigneeIssues = this.widgetMapper.findMyAssigneeIssue(this.makeWidgetCondition());
+            /*} else {
+                assigneeIssues = this.widgetMapper.findMyAssigneeIssueByDepartment(this.makeWidgetCondition());
+            }*/
         }
 
         ExportExcelVo excelInfo = new ExportExcelVo();

--
Gitblit v1.8.0