From a75bcc7c2b0fc98bd3a8abc100a4ad4ec11b9c26 Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 화, 28 12월 2021 15:54:35 +0900
Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa

---
 src/main/java/kr/wisestone/owl/service/impl/FaqServiceImpl.java |   90 ++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 84 insertions(+), 6 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/FaqServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/FaqServiceImpl.java
index d796c94..aa6eaea 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/FaqServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/FaqServiceImpl.java
@@ -1,29 +1,38 @@
 package kr.wisestone.owl.service.impl;
 
+import com.google.common.collect.Lists;
+import kr.wisestone.owl.common.ExcelConditionCheck;
 import kr.wisestone.owl.config.kafka.KafkaSender;
 import kr.wisestone.owl.constant.Constants;
+import kr.wisestone.owl.constant.MngPermission;
 import kr.wisestone.owl.constant.MsgConstants;
 import kr.wisestone.owl.domain.Faq;
 import kr.wisestone.owl.domain.Guide;
 import kr.wisestone.owl.domain.User;
+import kr.wisestone.owl.domain.UserLevel;
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.mapper.FaqMapper;
+import kr.wisestone.owl.mapper.NoticeMapper;
 import kr.wisestone.owl.repository.FaqRepository;
-import kr.wisestone.owl.service.FaqService;
-import kr.wisestone.owl.service.UserService;
+import kr.wisestone.owl.service.*;
 import kr.wisestone.owl.util.ConvertUtil;
-import kr.wisestone.owl.vo.FaqVo;
-import kr.wisestone.owl.vo.ResPage;
+import kr.wisestone.owl.vo.*;
 import kr.wisestone.owl.web.condition.FaqCondition;
+import kr.wisestone.owl.web.condition.NoticeCondition;
 import kr.wisestone.owl.web.form.FaqForm;
 import kr.wisestone.owl.web.form.GuideForm;
+import kr.wisestone.owl.web.form.NoticeForm;
+import kr.wisestone.owl.web.view.ExcelView;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.ui.Model;
+import org.springframework.web.servlet.ModelAndView;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -42,6 +51,21 @@
 
     @Autowired
     private FaqMapper faqMapper;
+
+    @Autowired
+    private WorkspaceService workspaceService;
+
+    @Autowired
+    private UserLevelService userLevelService;
+
+    @Autowired
+    private UserWorkspaceService userWorkspaceService;
+
+    @Autowired
+    private ExcelView excelView;
+
+    @Autowired
+    private ExcelConditionCheck excelConditionCheck;
 
     @Override
     protected JpaRepository<Faq, Long> getRepository() {
@@ -78,8 +102,19 @@
         faqCondition.setPageSize(pageable.getPageSize());
         faqCondition.setTitle(faqCondition.getTitle());
 
-        List<Map<String, Object>> results = this.faqMapper.find(faqCondition);
-        Long totalCount = this.faqMapper.count(faqCondition);
+        User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
+
+        List<Map<String, Object>> results = Lists.newArrayList();
+        Long totalCount = 0L;
+        if (this.userWorkspaceService.checkWorkspaceManager(user)
+                || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_FAQ)) {
+            results = this.faqMapper.find(faqCondition);
+            totalCount = this.faqMapper.count(faqCondition);
+        } else {
+            results = this.faqMapper.findNotActivation(faqCondition);
+            totalCount = this.faqMapper.countNotActivation(faqCondition);
+        }
         int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
         List<FaqVo> faqVos = ConvertUtil.convertListToListClass(results, FaqVo.class);
 
@@ -164,4 +199,47 @@
 
         resJsonData.put(Constants.RES_KEY_CONTENTS, faqVo);
     }
+
+    @Override
+    public void remove(FaqForm faqForm) {
+        if (faqForm.getRemoveIds().size() < 1) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.COMPANY_REMOVE_NOT_SELECT));
+        }
+        for (Long id : faqForm.getRemoveIds()) {
+            this.faqRepository.deleteById(id);
+            this.faqRepository.flush();
+        }
+    }
+
+    @Override
+    public ModelAndView downloadExcel(HttpServletRequest request, Model model) {
+        ModelAndView modelAndView = this.workspaceService.checkUseExcelDownload(model);
+        if (modelAndView != null) {
+            return modelAndView;
+        }
+
+        Map<String, Object> conditions = new HashMap<>();
+        //  �뿊�� �떎�슫濡쒕뱶�뿉 �븘�슂�븳 寃��깋 議곌굔 �젙蹂대�� 異붿텧�븯怨� 寃��깋 議곌굔 異붿텧�뿉 �삤瑜섍� 諛쒖깮�븯硫� 寃쎄퀬瑜� �몴�떆�빐以��떎.
+        modelAndView = this.excelConditionCheck.checkCondition(conditions, request, model);
+        if (modelAndView != null) {
+            return modelAndView;
+        }
+
+        FaqCondition faqCondition = FaqCondition.make(conditions);
+        List<Map<String, Object>> results = this.faqMapper.find(faqCondition);
+        List<FaqVo> faqVos = ConvertUtil.convertListToListClass(results, FaqVo.class);
+
+        // code_ko_KR �뿉 code紐� �꽕�젙
+        ExportExcelVo excelInfo = new ExportExcelVo();
+        excelInfo.setFileName(this.messageAccessor.message("FAQ 紐⑸줉"));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("title", this.messageAccessor.message("faq.title"), 6, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("registerDate", this.messageAccessor.message("faq.registerDate"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("writer", this.messageAccessor.message("faq.registerId"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+
+        excelInfo.setDatas(faqVos);
+
+        model.addAttribute(Constants.EXCEL, excelInfo);
+        return new ModelAndView(this.excelView);
+    }
 }

--
Gitblit v1.8.0