From d64ce641aa6985cf531abe819ea7991f4fd2ec94 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 화, 14 12월 2021 20:20:13 +0900
Subject: [PATCH] 사용자등급, 프로젝트 엑셀 다운로드 오류 해결

---
 src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java |   72 ++++++++++++++++++++++++++++++++++--
 1 files changed, 68 insertions(+), 4 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
index f1c5faa..18831c2 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
@@ -24,6 +24,9 @@
 import kr.wisestone.owl.web.form.ProjectForm;
 import kr.wisestone.owl.web.form.UserLevelForm;
 import kr.wisestone.owl.web.view.ExcelView;
+import org.jsoup.Jsoup;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -40,6 +43,8 @@
 
 @Service
 public class UserLevelServiceImpl extends AbstractServiceImpl<UserLevel, Long, JpaRepository<UserLevel, Long>> implements UserLevelService {
+
+    private static final Logger log = LoggerFactory.getLogger(IssueServiceImpl.class);
 
     @Autowired
     private UserLevelRepository userLevelRepository;
@@ -173,7 +178,7 @@
     public void removeUserLevel(UserLevelForm userLevelForm) {
         if (userLevelForm.getRemoveIds().size() < 1) {
             throw new OwlRuntimeException(
-                    this.messageAccessor.getMessage(MsgConstants.PROJECT_REMOVE_NOT_SELECT));
+                    this.messageAccessor.getMessage(MsgConstants.USER_LEVEL_REMOVE_NOT_SELECT));
         }
 
         // 湲곕낯 �궗�슜�옄 �벑湲� �궘�젣 泥댄겕
@@ -238,22 +243,81 @@
 
         // code_ko_KR �뿉 code紐� �꽕�젙
         ExportExcelVo excelInfo = new ExportExcelVo();
-        excelInfo.setFileName(this.messageAccessor.message("�궗�슜�옄 紐⑸줉"));
+        excelInfo.setFileName(this.messageAccessor.message("�궗�슜�옄 �벑湲� 紐⑸줉"));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("levelName", this.messageAccessor.message("managementWorkspace.levelName"), 6, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("permAllIssueAndProjectSetting", this.messageAccessor.message("manageUser.manageAllIssueAndProjectPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("permPartnerSetting", this.messageAccessor.message("manageUser.managePartnerPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permWorkSpaceSetting", this.messageAccessor.message("manageUser.manageWorkspacePerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permProjectSetting", this.messageAccessor.message("manageUser.manageProjectPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permIssueSetting", this.messageAccessor.message("manageUser.manageIssueSystemPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
-        excelInfo.addAttrInfos(new ExportExcelAttrVo("permApi", this.messageAccessor.message("manageUser.manageUserPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("permApi", this.messageAccessor.message("manageUser.manageUserApi"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permNotice", this.messageAccessor.message("manageUser.manageNoticePerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permFAQ", this.messageAccessor.message("manageUser.manageFAQPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permQnA", this.messageAccessor.message("manageUser.manageQnAPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permGuide", this.messageAccessor.message("manageUser.manageGuidePerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
 
-        excelInfo.setDatas(userLevelVos);
+        //  userLevelVos �뜲�씠�꽣瑜� �뿊���뿉�꽌 �몴�떆�븷 �닔 �엳�뒗 �뜲�씠�꽣濡� 蹂�寃쏀븳�떎.
+        List<Map<String, Object>> convertExcelViewToUserLevelMaps = this.convertExcelViewToUserLevelVos(userLevelVos);
+        excelInfo.setDatas(convertExcelViewToUserLevelMaps);
 
         model.addAttribute(Constants.EXCEL, excelInfo);
         return new ModelAndView(this.excelView);
     }
 
+    //  userLevelVos �뜲�씠�꽣瑜� �뿊���뿉�꽌 �몴�떆�븷 �닔 �엳�뒗 �뜲�씠�꽣濡� 蹂�寃쏀븳�떎.
+    private List<Map<String, Object>> convertExcelViewToUserLevelVos(List<UserLevelVo> userLevelVos) {
+        List<Map<String, Object>> results = Lists.newArrayList();
 
+        for (UserLevelVo userLevelVo : userLevelVos){
+            try {
+                Map<String, Object> result = new HashMap<>();
+                result.put("levelName", userLevelVo.getLevelName());
+                result.put("permAllIssueAndProjectSetting", userLevelVo.getPermAllIssueAndProjectSetting());
+                result.put("permPartnerSetting", userLevelVo.getPermPartnerSetting());
+                result.put("permWorkSpaceSetting", userLevelVo.getPermWorkSpaceSetting());
+                result.put("permProjectSetting", userLevelVo.getPermProjectSetting());
+                result.put("permIssueSetting", userLevelVo.getPermIssueSetting());
+                result.put("permApi", userLevelVo.getPermApi());
+                result.put("permNotice", userLevelVo.getPermNotice());
+                result.put("permFAQ", userLevelVo.getPermFAQ());
+                result.put("permQnA", userLevelVo.getPermQnA());
+                result.put("permGuide", userLevelVo.getPermGuide());
+
+                results.add(result);
+            } catch (Exception e) {
+                log.error("�뿊�� �떎�슫濡쒕뱶 �삤瑜� 諛쒖깮");
+            }
+        }
+        return results;
+    }
+
+    // �궗�슜�옄 �벑湲� �긽�깭瑜� 蹂�寃쏀븳�떎.
+    @Override
+    public void modifyLevelPermission(UserLevelForm userLevelForm) {
+        int newPermission = MngPermission.USER_PERMISSION_MNG_NONE;
+
+        newPermission |= MngPermission.makePermission(userLevelForm.getPermAllIssueAndProjectSetting(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL);
+        newPermission |= MngPermission.makePermission(userLevelForm.getPermPartnerSetting(), MngPermission.USER_PERMISSION_MNG_PARTNER);
+        newPermission |= MngPermission.makePermission(userLevelForm.getPermWorkSpaceSetting(), MngPermission.USER_PERMISSION_MNG_WORKSPACE);
+        newPermission |= MngPermission.makePermission(userLevelForm.getPermProjectSetting(), MngPermission.USER_PERMISSION_MNG_PROJECT);
+        newPermission |= MngPermission.makePermission(userLevelForm.getPermIssueSetting(), MngPermission.USER_PERMISSION_MNG_ISSUE_SETTING);
+        newPermission |= MngPermission.makePermission(userLevelForm.getPermApi(), MngPermission.USER_PERMISSION_MNG_API);
+        newPermission |= MngPermission.makePermission(userLevelForm.getPermNotice(), MngPermission.USER_PERMISSION_MNG_NOTICE);
+        newPermission |= MngPermission.makePermission(userLevelForm.getPermFAQ(), MngPermission.USER_PERMISSION_MNG_FAQ);
+        newPermission |= MngPermission.makePermission(userLevelForm.getPermQnA(), MngPermission.USER_PERMISSION_MNG_QNA);
+        /*newPermission |= MngPermission.makePermission(userLevelForm.getPermEvent(), MngPermission.USER_PERMISSION_MNG_EVENT);*/
+        newPermission |= MngPermission.makePermission(userLevelForm.getPermGuide(), MngPermission.USER_PERMISSION_MNG_GUIDE);
+
+        UserLevel userLevel = userLevelService.getUserLevel(userLevelForm.getId());
+        /*        user.setPermission(newPermission);*/
+        userLevel.setPermission(newPermission);
+        this.userLevelRepository.saveAndFlush(userLevel);
+    }
+
+    @Override
+    public void modifyLevelName(UserLevelForm userLevelForm) {
+        UserLevel userLevel = userLevelService.getUserLevel(userLevelForm.getId());
+        userLevel.setLevelName(userLevelForm.getLevelName());
+        this.userLevelRepository.saveAndFlush(userLevel);
+    }
 }

--
Gitblit v1.8.0