186 lines
7.8 KiB
Java
186 lines
7.8 KiB
Java
package com.dbnt.faisp.publicBoard;
|
|
|
|
import com.dbnt.faisp.config.Role;
|
|
import com.dbnt.faisp.publicBoard.model.PublicBoard;
|
|
import com.dbnt.faisp.publicBoard.model.PublicComment;
|
|
import com.dbnt.faisp.publicBoard.service.PublicBoardService;
|
|
import com.dbnt.faisp.userInfo.model.UserInfo;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
|
|
|
|
@RestController
|
|
@RequiredArgsConstructor
|
|
@RequestMapping("/publicBoard")
|
|
public class PublicBoardController {
|
|
private final PublicBoardService publicBoardService;
|
|
|
|
@GetMapping("/noticePage")
|
|
public ModelAndView organMgtPage(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) {
|
|
ModelAndView mav = new ModelAndView("publicBoard/notice/noticePage");
|
|
publicBoard.setQueryInfo();
|
|
publicBoard.setPublicType("PLB001");
|
|
if (loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())) {
|
|
publicBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
|
|
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
|
|
}
|
|
publicBoard.setUpOrganCdList(loginUser.getUpOrganCdList());
|
|
mav.addObject("noticeList", publicBoardService.selectContentList(publicBoard));
|
|
publicBoard.setContentCnt(publicBoardService.selectContentListCnt(publicBoard));
|
|
publicBoard.setPaginationInfo();
|
|
mav.addObject("searchParams", publicBoard);
|
|
return mav;
|
|
}
|
|
|
|
@GetMapping("/boardPage")
|
|
public ModelAndView boardPage(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) {
|
|
ModelAndView mav = new ModelAndView("publicBoard/board/boardPage");
|
|
publicBoard.setQueryInfo();
|
|
publicBoard.setPublicType("PLB002");
|
|
if (loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())) {
|
|
publicBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
|
|
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
|
|
}
|
|
publicBoard.setUpOrganCdList(loginUser.getUpOrganCdList());
|
|
mav.addObject("boardList", publicBoardService.selectContentList(publicBoard));
|
|
publicBoard.setContentCnt(publicBoardService.selectContentListCnt(publicBoard));
|
|
publicBoard.setPaginationInfo();
|
|
mav.addObject("searchParams", publicBoard);
|
|
return mav;
|
|
}
|
|
|
|
|
|
@GetMapping("/referencePage")
|
|
public ModelAndView referencePage(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) {
|
|
ModelAndView mav = new ModelAndView("publicBoard/reference/referencePage");
|
|
publicBoard.setQueryInfo();
|
|
publicBoard.setPublicType("PLB003");
|
|
if (loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())) {
|
|
publicBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
|
|
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
|
|
}
|
|
publicBoard.setUpOrganCdList(loginUser.getUpOrganCdList());
|
|
mav.addObject("referenceList", publicBoardService.selectContentList(publicBoard));
|
|
publicBoard.setContentCnt(publicBoardService.selectContentListCnt(publicBoard));
|
|
publicBoard.setPaginationInfo();
|
|
mav.addObject("searchParams", publicBoard);
|
|
return mav;
|
|
}
|
|
|
|
|
|
@GetMapping("/qnaPage")
|
|
public ModelAndView qnaPage(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) {
|
|
ModelAndView mav = new ModelAndView("publicBoard/qna/qnaPage");
|
|
publicBoard.setQueryInfo();
|
|
publicBoard.setPublicType("PLB004");
|
|
if (loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())) {
|
|
publicBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
|
|
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
|
|
}
|
|
mav.addObject("qnaList", publicBoardService.selectContentList(publicBoard));
|
|
publicBoard.setContentCnt(publicBoardService.selectContentListCnt(publicBoard));
|
|
publicBoard.setPaginationInfo();
|
|
mav.addObject("searchParams", publicBoard);
|
|
return mav;
|
|
}
|
|
|
|
|
|
@GetMapping("/editModal")
|
|
public ModelAndView editModal(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) {
|
|
ModelAndView mav = null;
|
|
switch (publicBoard.getPublicType()) {
|
|
case "PLB001": // 공지사항
|
|
mav = new ModelAndView("publicBoard/notice/noticeEditModal");
|
|
if (publicBoard.getPublicKey() != null) {
|
|
publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey());
|
|
}
|
|
break;
|
|
case "PLB002": // 공용게시판
|
|
mav = new ModelAndView("publicBoard/board/boardEditModal");
|
|
if (publicBoard.getPublicKey() != null) {
|
|
publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey());
|
|
}
|
|
break;
|
|
case "PLB003": // 자료실
|
|
mav = new ModelAndView("publicBoard/reference/referenceEditModal");
|
|
if (publicBoard.getPublicKey() != null) {
|
|
publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey());
|
|
}
|
|
break;
|
|
case "PLB004": // Q&A
|
|
mav = new ModelAndView("publicBoard/qna/qnaEditModal");
|
|
if (publicBoard.getPublicKey() != null) {
|
|
publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey());
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (publicBoard.getPublicKey() == null) {
|
|
publicBoard.setWrtOrgan(loginUser.getOgCd());
|
|
publicBoard.setWrtPart(loginUser.getOfcCd());
|
|
publicBoard.setWrtUserSeq(loginUser.getUserSeq());
|
|
publicBoard.setWrtUserNm(loginUser.getUserNm());
|
|
publicBoard.setWrtDt(LocalDateTime.now());
|
|
}
|
|
mav.addObject("info", publicBoard);
|
|
return mav;
|
|
}
|
|
|
|
|
|
@GetMapping("/viewModal")
|
|
public ModelAndView viewModal (@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard){
|
|
ModelAndView mav = null;
|
|
switch (publicBoard.getPublicType()) {
|
|
case "PLB001": // 공지사항
|
|
mav = new ModelAndView("publicBoard/notice/noticeViewModal");
|
|
break;
|
|
case "PLB002": // 공용게시판
|
|
mav = new ModelAndView("publicBoard/board/boardViewModal");
|
|
break;
|
|
case "PLB003": // 자료실
|
|
mav = new ModelAndView("publicBoard/reference/referenceViewModal");
|
|
break;
|
|
case "PLB004": // Q&A
|
|
mav = new ModelAndView("publicBoard/qna/qnaViewModal");
|
|
break;
|
|
}
|
|
publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey());
|
|
mav.addObject("userSeq", loginUser.getUserSeq());
|
|
mav.addObject("info", publicBoard);
|
|
return mav;
|
|
}
|
|
|
|
@PostMapping("/saveContent")
|
|
public Integer saveContent (PublicBoard publicBoard,
|
|
MultipartHttpServletRequest request,
|
|
@RequestParam(value = "fileSeq", required = false) List < Integer > deleteFileSeq){
|
|
publicBoard.setMultipartFileList(request.getMultiFileMap().get("uploadFiles"));
|
|
return publicBoardService.saveContent(publicBoard, deleteFileSeq);
|
|
}
|
|
@PostMapping("/saveComment")
|
|
public ModelAndView saveComment (@AuthenticationPrincipal UserInfo loginUser, PublicComment comment){
|
|
comment.setWrtOrgan(loginUser.getOgCd());
|
|
comment.setWrtPart(loginUser.getOfcCd());
|
|
comment.setWrtUserSeq(loginUser.getUserSeq());
|
|
comment.setWrtUserNm(loginUser.getUserNm());
|
|
comment.setWrtDt(LocalDateTime.now());
|
|
publicBoardService.saveComment(comment);
|
|
ModelAndView mav = new ModelAndView("publicBoard/commentDiv");
|
|
mav.addObject("comment", comment);
|
|
mav.addObject("userSeq", loginUser.getUserSeq());
|
|
return mav;
|
|
}
|
|
|
|
@PostMapping("/deleteComment")
|
|
@ResponseBody
|
|
public void deleteComment (@RequestBody PublicComment comment){
|
|
publicBoardService.deleteComment(comment.getPublicKey(), comment.getCommentKey());
|
|
}
|
|
}
|