BoardController.java 7.19 KB
package com.daeucna.board.controller;
 
import java.util.HashMap;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.View;

import com.daeucna.board.common.FileDownloadUtil;
import com.daeucna.board.common.ResultUtil;
import com.daeucna.board.domain.BoardDto;
import com.daeucna.board.domain.BoardForm;
import com.daeucna.board.security.domain.UserDto;
import com.daeucna.board.service.BoardService;
 
@Controller
@RequestMapping(value = "/board")
public class BoardController {
 
    @Autowired
    private BoardService boardService;
 
    /** 게시판 - 목록 페이지 이동 */
    @RequestMapping(value = "/boardList")
    public String boardList(HttpServletRequest request, HttpServletResponse response, Model model, Authentication authentication) throws Exception {
    	UserDto userDto = (UserDto) authentication.getPrincipal();
    	//기본 게시판 종료 셋팅
    	String sBoardName = request.getParameter("boardName");
    	if (sBoardName == null || sBoardName.equals("")) {
    		sBoardName = userDto.getBoardName();
    	}
    	if (sBoardName == null || sBoardName.equals("")) {
    		sBoardName = "maintenance";
    	}
		userDto.setBoardName(sBoardName);
    	model.addAttribute("user_id", userDto.getUsername());
    	String sBoardDispName = "maintenance".equalsIgnoreCase(sBoardName)?"유지보수":("etc".equalsIgnoreCase(sBoardName)?"기타":"");
    	model.addAttribute("board_name", sBoardDispName);
        return "page/boardList";
    }

    /** 게시판 - 목록 조회 */
    @RequestMapping(value = "/getBoardList")
    @ResponseBody
    public ResultUtil getBoardList(HttpServletRequest request, HttpServletResponse response, BoardForm boardForm, Authentication authentication) throws Exception {
    	UserDto userDto = (UserDto) authentication.getPrincipal();
    	boardForm.setBoard_kind(userDto.getBoardName());
    	
        ResultUtil resultUtils = boardService.getBoardList(boardForm);
        resultUtils.setCurrent_user(userDto.getUsername());
        
        return resultUtils;
    }
 
    /** 게시판 - 상세 페이지 이동 */
    @RequestMapping(value = "/boardDetail")
    public String boardDetail(HttpServletRequest request, HttpServletResponse response) throws Exception {
 
        return "page/boardDetail";
    }
 
    /** 게시판 - 상세 조회 */
    @RequestMapping(value = "/getBoardDetail")
    @ResponseBody
    public BoardDto getBoardDetail(HttpServletRequest request, HttpServletResponse response, BoardForm boardForm, Authentication authentication) throws Exception {
    	UserDto userDto = (UserDto) authentication.getPrincipal();
    	
        MDC.put("ID", String.valueOf(boardForm.getBoard_seq()));
        
        BoardDto boardDto = boardService.getBoardDetail(boardForm);
        boardDto.setCurrent_user(userDto.getUsername());
        
        MDC.remove("ID");
 
        return boardDto;
    }
 
    /** 게시판 - 작성 페이지 이동 */
    @RequestMapping(value = "/boardWrite")
    public String boardWrite(HttpServletRequest request, HttpServletResponse response, Model model, Authentication authentication) throws Exception {
    	UserDto userDto = (UserDto) authentication.getPrincipal();
    	model.addAttribute("user_id", userDto.getUsername());
 
        return "page/boardWrite";
    }
 
    /** 게시판 - 등록 */
    @RequestMapping(value = "/insertBoard")
    @ResponseBody
    public BoardDto insertBoard(HttpServletRequest request, HttpServletResponse response, BoardForm boardForm, Authentication authentication) throws Exception {
    	UserDto userDto = (UserDto) authentication.getPrincipal();
    	boardForm.setBoard_kind(userDto.getBoardName());
        boardForm.setIns_user_id(userDto.getUsername());
        boardForm.setUpd_user_id(userDto.getUsername());
        
        BoardDto boardDto = boardService.insertBoard(boardForm);
 
        return boardDto;
    }
 
    /** 게시판 - 삭제 */
    @RequestMapping(value = "/deleteBoard")
    @ResponseBody
    public BoardDto deleteBoard(HttpServletRequest request, HttpServletResponse response, BoardForm boardForm) throws Exception {
 
        BoardDto boardDto = boardService.deleteBoard(boardForm);
 
        return boardDto;
    }
 
    /** 게시판 - 수정 페이지 이동 */
    @RequestMapping(value = "/boardUpdate")
    public String boardUpdate(HttpServletRequest request, HttpServletResponse response) throws Exception {
 
        return "page/boardUpdate";
    }
 
    /** 게시판 - 수정 */
    @RequestMapping(value = "/updateBoard")
    @ResponseBody
    public BoardDto updateBoard(HttpServletRequest request, HttpServletResponse response, BoardForm boardForm, Authentication authentication) throws Exception {
    	UserDto userDto = (UserDto) authentication.getPrincipal();
        boardForm.setIns_user_id(userDto.getUsername());
        boardForm.setUpd_user_id(userDto.getUsername());

        BoardDto boardDto = boardService.updateBoard(boardForm);
        boardDto.setCurrent_user(userDto.getUsername());

        return boardDto;
    }
 
    /** 게시판 - 답글 페이지 이동 */
    @RequestMapping(value = "/boardReply")
    public String boardReply(HttpServletRequest request, HttpServletResponse response) throws Exception {
 
        return "page/boardReply";
    }
 
    /** 게시판 - 답글 등록 */
    @RequestMapping(value = "/insertBoardReply")
    @ResponseBody
    public BoardDto insertBoardReply(HttpServletRequest request, HttpServletResponse response, BoardForm boardForm, Authentication authentication) throws Exception {
    	UserDto userDto = (UserDto) authentication.getPrincipal();
    	boardForm.setBoard_kind(userDto.getBoardName());
    	boardForm.setIns_user_id(userDto.getUsername());
        boardForm.setUpd_user_id(userDto.getUsername());

        BoardDto boardDto = boardService.insertBoardReply(boardForm);
 
        return boardDto;
    }
    
    /** 게시판 - 첨부파일 다운로드 */
    @RequestMapping("/fileDownload")                      
    public View fileDownload(@RequestParam("fileNameKey") String fileNameKey
                                    ,@RequestParam("fileName") String fileName
                                    ,@RequestParam("filePath") String filePath
                                    , Model model) throws Exception {
          
        /** 첨부파일 정보 조회 */

        Map<String, Object> fileInfo = new HashMap<String, Object>();
        fileInfo.put("fileNameKey", fileNameKey);
        fileInfo.put("fileName", fileName);
        fileInfo.put("filePath", filePath);
    	model.addAttribute("fileInfo", fileInfo); 
     
        return new FileDownloadUtil();
    }
}