From de2abff4377c9ee83161c954a51de4c9390fff76 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 수, 15 12월 2021 18:34:21 +0900
Subject: [PATCH] 프로필에 내 사용자 등급/부서 표시

---
 src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java  |   10 ++++
 src/main/webapp/scripts/app/user/userDetail.controller.js         |   27 +++++++++++--
 src/main/java/kr/wisestone/owl/mapper/UserMapper.java             |    2 +
 src/main/java/kr/wisestone/owl/web/controller/UserController.java |   10 +++++
 src/main/resources/mybatis/query-template/user-template.xml       |   16 ++++++++
 src/main/webapp/i18n/ko/global.json                               |    2 +
 src/main/webapp/views/user/userDetail.html                        |    6 +++
 src/main/java/kr/wisestone/owl/service/UserService.java           |    2 +
 src/main/webapp/scripts/components/user/user.service.js           |    6 +++
 9 files changed, 76 insertions(+), 5 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/mapper/UserMapper.java b/src/main/java/kr/wisestone/owl/mapper/UserMapper.java
index 28e4818..13a0e5f 100644
--- a/src/main/java/kr/wisestone/owl/mapper/UserMapper.java
+++ b/src/main/java/kr/wisestone/owl/mapper/UserMapper.java
@@ -33,4 +33,6 @@
     List<Map<String, Object>> findEvent();
 
     Long findByLevelId(Long levelId);
+
+    Map<String, Object> findByMyLevelAndDepartment(Long id);
 }
diff --git a/src/main/java/kr/wisestone/owl/service/UserService.java b/src/main/java/kr/wisestone/owl/service/UserService.java
index cefe199..ca9922e 100644
--- a/src/main/java/kr/wisestone/owl/service/UserService.java
+++ b/src/main/java/kr/wisestone/owl/service/UserService.java
@@ -32,6 +32,8 @@
 
     void detailUser(Map<String, Object> resJsonData, UserCondition userCondition);
 
+    void findMyLevelAndDepartment(Map<String, Object> resJsonData);
+
     void modifyUser(UserForm userForm, MultipartFile profile);
 
     void modifyPassword(UserForm userForm);
diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
index 96bcc28..f209240 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
@@ -18,7 +18,6 @@
 import kr.wisestone.owl.util.*;
 import kr.wisestone.owl.vo.*;
 import kr.wisestone.owl.web.condition.UserCondition;
-import kr.wisestone.owl.web.form.DepartmentForm;
 import kr.wisestone.owl.web.form.UserForm;
 import kr.wisestone.owl.web.view.ExcelView;
 import org.apache.commons.validator.routines.EmailValidator;
@@ -959,6 +958,15 @@
         return this.convertUserVoToMap(results, totalUsersCount, pageable, resJsonData);
     }
 
+    //  �궗�슜�옄 �젙蹂대�� 媛��졇�삩�떎.
+    @Override
+    @Transactional(readOnly = true)
+    public void findMyLevelAndDepartment(Map<String, Object> resJsonData) {
+        Long loginId = this.webAppUtil.getLoginId();
+        Map<String, Object> result = this.userMapper.findByMyLevelAndDepartment(loginId);
+        resJsonData.put(Constants.RES_KEY_CONTENTS, result);
+    }
+
     //  �궗�슜�옄 �븘�씠�뵒濡� �궗�슜�옄瑜� 議고쉶�븳�떎.
     @Override
     @Transactional(readOnly = true)
diff --git a/src/main/java/kr/wisestone/owl/web/controller/UserController.java b/src/main/java/kr/wisestone/owl/web/controller/UserController.java
index 0cefa21..259fe5d 100644
--- a/src/main/java/kr/wisestone/owl/web/controller/UserController.java
+++ b/src/main/java/kr/wisestone/owl/web/controller/UserController.java
@@ -113,6 +113,16 @@
         return this.setSuccessMessage(resJsonData);
     }
 
+    //  �궗�슜�옄 議고쉶
+    @RequestMapping(value = "/user/findMyLevelAndDepartment", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public
+    @ResponseBody
+    Map<String, Object> findMyLevelAndDepartment(@RequestBody Map<String, Map<String, Object>> params) {
+        Map<String, Object> resJsonData = new HashMap<>();
+        this.userService.findMyLevelAndDepartment(resJsonData);
+        return this.setSuccessMessage(resJsonData);
+    }
+
     //  �궗�슜�옄 �닔�젙
     @RequestMapping(value = "/user/modify", produces = MediaType.APPLICATION_JSON_VALUE)
     public
diff --git a/src/main/resources/mybatis/query-template/user-template.xml b/src/main/resources/mybatis/query-template/user-template.xml
index d335214..e16010d 100644
--- a/src/main/resources/mybatis/query-template/user-template.xml
+++ b/src/main/resources/mybatis/query-template/user-template.xml
@@ -182,4 +182,20 @@
         WHERE u.level_id = #{id}
     </select>
 
+    <select id="findByMyLevelAndDepartment" resultType="java.util.HashMap" parameterType="java.lang.Long">
+        SELECT
+        DISTINCT u.id as id,
+                 ul.level_name AS levelName,
+                 GROUP_CONCAT(d.department_name) AS departmentName,
+                 u.name as name,
+                 u.account as account,
+                 u.profile as profile,
+                 u.status as STATUS
+        FROM user u
+        LEFT OUTER JOIN user_level ul ON u.level_id = ul.id
+        LEFT OUTER JOIN user_department ud ON ud.user_id = u.id
+        LEFT OUTER JOIN department d ON d.id = ud.department_id
+        WHERE u.id = #{id}
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index b509df9..f9d846b 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -481,6 +481,8 @@
         "guidanceTemporaryPassword": "�엫�떆 鍮꾨�踰덊샇 諛쒓툒 �븞�궡",
         "pleaseMakeSureChangeYourPassword": "怨좉컼�떂�쓽 OWL ITS 怨꾩젙 鍮꾨�踰덊샇 蹂�寃쎌쓣 �쐞�빐 �엫�떆 鍮꾨�踰덊샇瑜� 諛쒓툒�빐 �뱶由쎈땲�떎.濡쒓렇�씤 �썑 瑗� 鍮꾨�踰덊샇瑜� 蹂�寃쏀븯�떆湲� 諛붾엻�땲�떎.",
         "phoneNumber": "�뿰�씫泥�",
+        "myLevel": "�벑湲�",
+        "myDepartments": "�떞�떦遺��꽌",
         "modifyInformation": "�젙蹂� �닔�젙",
         "updatePassword": "鍮꾨�踰덊샇 蹂�寃�",
         "setEmailNotificationTime": "�씠硫붿씪 �븣由� �떆媛� �꽕�젙",
diff --git a/src/main/webapp/scripts/app/user/userDetail.controller.js b/src/main/webapp/scripts/app/user/userDetail.controller.js
index 11714a5..227b6d8 100644
--- a/src/main/webapp/scripts/app/user/userDetail.controller.js
+++ b/src/main/webapp/scripts/app/user/userDetail.controller.js
@@ -7,11 +7,12 @@
         'app'
     ],
     function (app) {
-        app.controller('userDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', 'IssueHistory', '$uibModal', 'SweetAlert', '$filter',
-            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, IssueHistory, $uibModal, SweetAlert, $filter) {
+        app.controller('userDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', 'IssueHistory', '$uibModal', 'SweetAlert', '$filter', 'User',
+            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, IssueHistory, $uibModal, SweetAlert, $filter, User) {
 
                 //  �븿�닔
                 $scope.fn = {
+                    getMyInfo : getMyInfo,   //�굹�쓽 �젙蹂� 議고쉶(�벑湲�, �떞�떦遺��꽌)
                     getIssueHistoryList : getIssueHistoryList,    //  �씠�뒋 湲곕줉 �젙蹂� 議고쉶
                     modify : modify, //  �궗�슜�옄 �닔�젙
                     changeSearchPeriod : changeSearchPeriod,    //  �씠�젰 議고쉶 寃��깋 議곌굔 蹂�寃�
@@ -25,7 +26,9 @@
                         startEndDateRange : "" //  �씠�뒋 湲곕줉 議고쉶 �궇吏�
                     },
                     issueHistoryVos : [],   //  �씠�뒋 湲곕줉 �젙蹂�
-                    issueHistoryDates : [] //  �씠�뒋 湲곕줉 �젙蹂� �궇吏�
+                    issueHistoryDates : [], //  �씠�뒋 湲곕줉 �젙蹂� �궇吏�
+                    myLevel : "",
+                    myDepartments : []
                 };
 
                 //  吏곸젒 �엯�젰�뿉�꽌 �궇吏� �꽑�깮�떆 �씠�뒋 湲곕줉 �젙蹂� 議고쉶
@@ -65,6 +68,22 @@
                                     id : id
                                 };
                             }
+                        }
+                    });
+                }
+
+                //  �굹�쓽 �젙蹂� 議고쉶(�벑湲�, �떞�떦遺��꽌)
+                function getMyInfo() {
+
+                    User.findMyLevelAndDepartment($resourceProvider.getContent(
+                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            $scope.vm.myLevel = result.data.data.levelName;
+                            $scope.vm.myDepartments = result.data.data.departmentName;
+                        }
+                        else {
+                            SweetAlert.swal($filter("translate")("users.failedToRetrieveIssueHistory"), result.data.message.message, "error"); // "�씠�뒋 湲곕줉 �젙蹂� 議고쉶 �떎�뙣"
                         }
                     });
                 }
@@ -118,7 +137,7 @@
 
                 //  �씠�뒋 湲곕줉 �젙蹂� 議고쉶
                 $scope.fn.getIssueHistoryList();
-
+                $scope.fn.getMyInfo();
             }
         ]);
     }
diff --git a/src/main/webapp/scripts/components/user/user.service.js b/src/main/webapp/scripts/components/user/user.service.js
index f6f321b..f88a99e 100644
--- a/src/main/webapp/scripts/components/user/user.service.js
+++ b/src/main/webapp/scripts/components/user/user.service.js
@@ -64,6 +64,12 @@
                     return response;
                 });
             },
+            findMyLevelAndDepartment : function (conditions) {
+                return $http.post("user/findMyLevelAndDepartment", conditions).then(function (response) {
+                    $log.debug("�궡 �젙蹂� �뜲�씠�꽣 : ", response);
+                    return response;
+                });
+            },
             modify : function (conditions) {
                 conditions.url = "user/modify";
                 return $upload.upload(conditions).then(function (response) {
diff --git a/src/main/webapp/views/user/userDetail.html b/src/main/webapp/views/user/userDetail.html
index eaed8e9..e481ab9 100644
--- a/src/main/webapp/views/user/userDetail.html
+++ b/src/main/webapp/views/user/userDetail.html
@@ -17,6 +17,12 @@
                             <div class="user-sub" ng-if="$root.isDefined($root.user.phone)">
                                 <span translate="users.phoneNumber">�뿰�씫泥�</span> : {{$root.user.phone}}
                             </div>
+                            <div class="user-sub" ng-if="vm.myLevel != null">
+                                <span translate="users.myLevel">�벑湲�</span> : {{vm.myLevel}}
+                            </div>
+                            <div class="user-sub" ng-if="vm.myDepartments != null">
+                                <span translate="users.myDepartments">�떞�떦遺��꽌</span> : {{vm.myDepartments}}
+                            </div>
                             <div class="mt-30">
                                 <a class="btn btn-primary btn-sm" href="" ng-click="fn.modify($root.user.id)">
                                     <i class="os-icon os-icon-edit-1"></i>

--
Gitblit v1.8.0