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 fileInfo = new HashMap(); fileInfo.put("fileNameKey", fileNameKey); fileInfo.put("fileName", fileName); fileInfo.put("filePath", filePath); model.addAttribute("fileInfo", fileInfo); return new FileDownloadUtil(); } }