com.poscoict.license.web.controller.MorgueController.java Source code

Java tutorial

Introduction

Here is the source code for com.poscoict.license.web.controller.MorgueController.java

Source

package com.poscoict.license.web.controller;

import java.io.IOException;
import java.io.Writer;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Map;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import com.poscoict.license.exception.UserException;
import com.poscoict.license.security.CustomUserDetails;
import com.poscoict.license.service.MorgueService;
import com.poscoict.license.vo.UserPermission;

@Controller
public class MorgueController {

    @Autowired
    MorgueService getMorgueService;

    @RequestMapping(value = { "morgue" }, method = { RequestMethod.GET, RequestMethod.POST })
    public ModelAndView morgue(HttpSession session) throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("mainPage");
        mv.addObject("page", "morgue/morgue");
        mv.addObject("customBoardList",
                getMorgueService.getUerCustomBoardList((String) session.getAttribute("USER_NO")));
        return mv;
    }

    @RequestMapping(value = { "createCustomBoard" }, method = { RequestMethod.POST })
    public ModelAndView createBoard(HttpSession session, String boardName) throws Exception {
        getMorgueService.createCustomBoard(session, boardName.trim());
        CustomUserDetails userDetails = (CustomUserDetails) SecurityContextHolder.getContext().getAuthentication()
                .getPrincipal();
        session.setAttribute("userMenu",
                getMorgueService.getUserMenu((UserPermission) session.getAttribute("userPermission"), userDetails));

        ModelAndView mv = new ModelAndView();
        mv.setViewName("mainPage");
        mv.addObject("page", "morgue/morgue");
        mv.addObject("customBoardList",
                getMorgueService.getUerCustomBoardList((String) session.getAttribute("USER_NO")));
        return mv;
    }

    @RequestMapping(value = { "deleteCustomBoard" }, method = { RequestMethod.POST })
    public ModelAndView deleteCustomBoard(HttpSession session, String boardId) throws Exception {
        getMorgueService.deleteCustomBoard(boardId, (String) session.getAttribute("USER_NO"));
        CustomUserDetails userDetails = (CustomUserDetails) SecurityContextHolder.getContext().getAuthentication()
                .getPrincipal();
        session.setAttribute("userMenu",
                getMorgueService.getUserMenu((UserPermission) session.getAttribute("userPermission"), userDetails));

        ModelAndView mv = new ModelAndView();
        mv.setViewName("mainPage");
        mv.addObject("page", "morgue/morgue");
        mv.addObject("customBoardList",
                getMorgueService.getUerCustomBoardList((String) session.getAttribute("USER_NO")));
        return mv;
    }

    @RequestMapping(value = { "renameCustomBoard" }, method = { RequestMethod.POST })
    public ModelAndView renameCustomBoard(HttpSession session, String boardId, String boardName) throws Exception {
        getMorgueService.renameCustomBoard(boardId, boardName, (String) session.getAttribute("USER_NO"));
        CustomUserDetails userDetails = (CustomUserDetails) SecurityContextHolder.getContext().getAuthentication()
                .getPrincipal();
        session.setAttribute("userMenu",
                getMorgueService.getUserMenu((UserPermission) session.getAttribute("userPermission"), userDetails));

        ModelAndView mv = new ModelAndView();
        mv.setViewName("mainPage");
        mv.addObject("page", "morgue/morgue");
        mv.addObject("customBoardList",
                getMorgueService.getUerCustomBoardList((String) session.getAttribute("USER_NO")));
        return mv;
    }

    @RequestMapping(value = { "customBoard" }, method = { RequestMethod.GET, RequestMethod.POST })
    public ModelAndView customBoard(HttpSession session, @RequestParam(value = "boardId") String boardId,
            @RequestParam(value = "chartNum", defaultValue = "1") String chartNum,
            @RequestParam(value = "search", required = false) String search,
            @RequestParam(value = "select", required = false) String select) throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("mainPage");
        mv.addObject("page", "morgue/customBoardList");

        Map<String, Object> map = getMorgueService.getBoardList(boardId, chartNum, search, select);
        if ((search != null) || (search != "")) {
            mv.addObject("search", search);
            mv.addObject("select", select);
        }

        mv.addObject("boardList", map.get("list"));
        mv.addObject("boardId", boardId);
        mv.addObject("totalPage", map.get("totalPage"));
        mv.addObject("chartNum", chartNum);
        mv.addObject("boardName", map.get("boardName"));

        return mv;
    }

    //customWriting
    @RequestMapping(value = { "customWriting" }, method = { RequestMethod.GET, RequestMethod.POST })
    public ModelAndView customWritingForm(HttpSession session, @RequestParam(value = "boardId") String boardId)
            throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("mainPage");
        mv.addObject("page", "morgue/write");
        mv.addObject("boardId", boardId);
        mv.addObject("boardName", getMorgueService.getCustomBoardName(boardId));

        return mv;
    }

    @RequestMapping(value = { "customWrite" }, method = RequestMethod.POST)
    public String insertBoard(@RequestParam("WRITE_TITLE") String title,
            @RequestParam("WRITE_MAIN_CONTENT") String mainContent, @RequestParam("boardId") String boardId,
            @RequestParam(value = "boardAttach", required = false) MultipartFile[] boardAttach, HttpSession session)
            throws Exception {
        getMorgueService.insertBoard(title, boardId, mainContent, boardAttach, session);

        return "redirect:/customBoard?boardId=" + boardId;
    }

    @RequestMapping(value = { "cViewPost" }, method = { RequestMethod.GET, RequestMethod.POST })
    public ModelAndView viewPost(@RequestParam(value = "boardId") String boardId,
            @RequestParam("contentNo") String contentNo,
            @RequestParam(value = "chartNum", defaultValue = "1") String chartNum,
            @RequestParam(value = "search", required = false) String search,
            @RequestParam(value = "select", required = false) String select, HttpSession session)
            throws UserException {
        Map<String, Object> map = getMorgueService.viewPost(boardId, chartNum, contentNo, search, select, session);
        ModelAndView mv = new ModelAndView();
        mv.setViewName("mainPage");
        mv.addObject("search", search);
        mv.addObject("select", select);
        mv.addObject("page", "morgue/viewPost");
        mv.addObject("board", map.get("boardInfo"));
        mv.addObject("attachInfo", map.get("attachInfo"));
        mv.addObject("boardId", boardId);
        mv.addObject("contentNo", contentNo);
        mv.addObject("chartNum", chartNum);

        return mv;
    }

    //  
    @RequestMapping(value = { "cReplyList" }, method = RequestMethod.POST)
    public ModelAndView replyList(String boardId, String contentNo, HttpSession session) {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("morgue/replyList");
        ArrayList<Map<String, Object>> list = getMorgueService.replyList(boardId, contentNo, session);
        mv.addObject("list", list);
        mv.addObject("size", list.size());
        mv.addObject("replyBoardId", boardId);
        mv.addObject("contentNo", contentNo);
        return mv;
    }

    //  ?
    @RequestMapping(value = "cInsertReply", method = RequestMethod.POST)
    public void insertReply(String boardId, String contentNo, String mainContent, HttpSession session,
            Writer writer) throws IOException, UserException {
        writer.write(
                getMorgueService.insertReply(boardId, contentNo, URLDecoder.decode(mainContent, "UTF-8"), session));
    }

    //  
    @RequestMapping(value = { "cDeleteReply" }, method = RequestMethod.POST)
    public void deleteReply(String boardId, String reContentNo, String contentNo, HttpSession session,
            Writer writer) throws IOException {
        writer.write(getMorgueService.deleteReply(boardId, reContentNo, contentNo, session));
    }

    //  ?    
    @RequestMapping(value = { "replyCustomBoardForm" }, method = RequestMethod.POST)
    public ModelAndView replyBoardForm(String boardId, String contentNo, String search, String select,
            String chartNum) {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("morgue/replyBoard");
        mv.addObject("replyBoardForm", getMorgueService.replyBoardForm(boardId, contentNo));
        mv.addObject("boardId", boardId);
        mv.addObject("search", search);
        mv.addObject("select", select);
        mv.addObject("chartNum", chartNum);
        return mv;
    }

    //  
    @RequestMapping(value = "replyCustomBoard", method = RequestMethod.POST)
    public String replyBoard(HttpSession session, @RequestParam("boardId") String boardId,
            @RequestParam(value = "reply_openFlag", defaultValue = "Y") String openFlag,
            @RequestParam("reply_title") String title, @RequestParam("reply_content") String content,
            @RequestParam("content_no") String contentNo, @RequestParam("chartNum") String chartNum,
            @RequestParam(value = "search", required = false) String search,
            @RequestParam(value = "select", required = false) String select,
            @RequestParam(value = "boardAttach", required = false) MultipartFile[] boardAttach)
            throws UserException {
        ModelAndView mv = new ModelAndView();

        int no = getMorgueService.replyBoard(session, boardId, title, content, contentNo, boardAttach);

        mv.setViewName("board/replyBoard");
        mv.addObject("success", "success");
        mv.addObject("boardId", boardId);
        mv.addObject("chartNum", chartNum);
        mv.addObject("search", search);
        mv.addObject("select", select);

        return "redirect:/cViewPost?boardId=" + boardId + "&contentNo=" + no + "&chartNum=" + chartNum;
    }

    // ?  ?
    @RequestMapping(value = { "cModifyBoardForm" }, method = { RequestMethod.GET, RequestMethod.POST })
    public ModelAndView modifyBoardForm(@RequestParam("boardId") String boardId,
            @RequestParam("contentNo") String contentNo,
            @RequestParam(value = "chartNum", defaultValue = "1") String chartNum,
            @RequestParam(value = "search", required = false) String search,
            @RequestParam(value = "select", required = false) String select,
            @RequestParam(value = "subCategory", required = false) String subCategory, HttpSession session)
            throws UserException {
        ModelAndView mv = new ModelAndView();
        Map<String, Object> map = getMorgueService.modifyBoardForm(session, boardId, contentNo);

        mv.setViewName("mainPage");
        mv.addObject("page", "morgue/modify");
        mv.addObject("board", map.get("boardInfo"));
        mv.addObject("attachInfo", map.get("attachInfo"));
        mv.addObject("chartNum", chartNum);
        mv.addObject("search", search);
        mv.addObject("select", select);

        return mv;
    }

    //  
    @RequestMapping(value = "cModifyBoard", method = { RequestMethod.GET, RequestMethod.POST })
    public String modifyBoard(HttpSession session, @RequestParam("boardId") String boardId,
            @RequestParam("modify_title") String title, @RequestParam("modify_content") String content,
            @RequestParam("content_no") String contentNo,
            @RequestParam(value = "boardAttach", required = false) MultipartFile[] boardAttach,
            @RequestParam(value = "deleteFile", required = false) String[] deleteFile,
            @RequestParam(value = "chartNum", defaultValue = "1") String chartNum,
            @RequestParam(value = "search", required = false) String search,
            @RequestParam(value = "select", required = false) String select) throws UserException {
        //attachFileMode default:0, :1

        ModelAndView mv = new ModelAndView();
        mv.setViewName("board/modify");
        getMorgueService.modifyBoard(session, boardId, title, content, contentNo, boardAttach, deleteFile);
        mv.addObject("success", "success");

        //        return viewPost(category, chartNum, contentNo, search, select, oldSubCategory, session);
        return "redirect:/customBoard?boardId=" + boardId + "&contentNo=" + contentNo + "&chartNum=" + chartNum;
    }

    //  
    @RequestMapping(value = { "cDeleteBoard" }, method = RequestMethod.POST)
    public String deleteBoard(HttpSession session, @RequestParam("boardId") String boardId,
            @RequestParam("contentNo") String contentNo, @RequestParam("chartNum") String chartNum,
            @RequestParam(value = "search", required = false) String search,
            @RequestParam(value = "select", required = false) String select) throws UserException {

        getMorgueService.deleteBoard(session, boardId, contentNo);
        return "redirect:/customBoard?boardId=" + boardId;
    }

    @RequestMapping(value = { "boardManagement" }, method = { RequestMethod.GET, RequestMethod.POST })
    public ModelAndView boardManagement(HttpSession session, String solution) throws UserException {
        CustomUserDetails userDetails = (CustomUserDetails) SecurityContextHolder.getContext().getAuthentication()
                .getPrincipal();
        ModelAndView mv = new ModelAndView();
        mv.setViewName("mainPage");
        mv.addObject("page", "boardManagement/boardManagement");
        mv.addObject("projectFolders", getMorgueService.defaultprojectFolderTree(solution, userDetails));
        mv.addObject("solution", solution);

        return mv;
    }

    @RequestMapping(value = { "projectFolders" }, method = { RequestMethod.POST })
    public ModelAndView projectFolders(HttpSession session, @RequestParam("solution") String solution,
            @RequestParam("mode") String mode, @RequestParam(value = "upperId") String upperId,
            @RequestParam(value = "projectName", required = false) String projectName) throws UserException {
        getMorgueService.projectFolders(session, solution, mode, upperId, projectName);

        CustomUserDetails userDetails = (CustomUserDetails) SecurityContextHolder.getContext().getAuthentication()
                .getPrincipal();
        UserPermission userPermission = (UserPermission) session.getAttribute("userPermission");

        session.setAttribute("userMenu", getMorgueService.getUserMenu(userPermission, userDetails));
        ModelAndView mv = new ModelAndView();
        mv.setViewName("mainPage");
        mv.addObject("page", "boardManagement/boardManagement");
        mv.addObject("projectFolders", getMorgueService.defaultprojectFolderTree(solution, userDetails));
        mv.addObject("solution", solution);

        return mv;
    }
}