package com.indiScene.freeboard.service; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Logger; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import com.indiScene.commonIO.dao.CommonIODao; import com.indiScene.freeboard.dao.FreeBoardDao; import com.indiScene.freeboard.dto.FreeBoardDto; import com.indiScene.reply.dao.ReplyDao; import com.indiScene.reply.dto.ReplyDto; /** * @name : FreeBoardServiceImpl * @date : 2015. 7. 31. * @author : 손유진 * @description : 자유게시판 관련기능을 수행한다. */ @Component public class FreeBoardServiceImpl implements FreeBoardService { Logger logger=Logger.getLogger(this.getClass().getName()); @Autowired private FreeBoardDao freeBoardDao; @Autowired private ReplyDao replyDao; @Autowired private CommonIODao commonIODao; /** * @name : FreeBoardServiceImpl * @date : 2015. 7. 31. * @author : 손유진 * @description : 글쓰기하는데에 필요한 정보를 넘겨준다. * -boardNumber,seqNumber,groupNumber,seq_level,pageNumber * */ @Override public void freeBoardWrite(ModelAndView mav) { Map<String,Object>map=mav.getModelMap(); HttpServletRequest request=(HttpServletRequest)map.get("request"); int board_num=0; int group_num=1; int seq_num=0; int seq_level=0; if(request.getParameter("board_num")!=null){ board_num=Integer.parseInt(request.getParameter("board_num")); group_num=Integer.parseInt(request.getParameter("group_num")); seq_num=Integer.parseInt(request.getParameter("seq_num")); seq_level=Integer.parseInt(request.getParameter("seq_level")); } logger.info("board_num:"+board_num); logger.info("group_num:"+group_num); logger.info("seq_num:"+seq_num); logger.info("seq_level:"+seq_level); String pageNumber=request.getParameter("pageNumber"); if(pageNumber==null) pageNumber="1"; mav.addObject("board_num", board_num); mav.addObject("group_num", group_num); mav.addObject("seq_num", seq_num); mav.addObject("seq_level", seq_level); mav.addObject("pageNumber",pageNumber); mav.setViewName("freeBoard/write"); } /** * @name : FreeBoardServiceImpl * @date : 2015. 7. 31. * @author : 손유진 * @description : 글이 등록되었는지 등록실패되었는지 알려준다. */ @Override public void freeBoardWriteOk(ModelAndView mav) { Map<String,Object>map=mav.getModel(); HttpServletRequest request=(HttpServletRequest)map.get("request"); FreeBoardDto freeBoardDto=(FreeBoardDto)map.get("freeBoardDto"); freeBoardWriteNumber(freeBoardDto);//그룹번호, 시퀀스번호, 시퀀스넘버, 보드넘버를 넘김. freeBoardDto.setRegister_date(new Date()); freeBoardDto.setCount(0); int check = freeBoardDao.insert(freeBoardDto); logger.info("check:"+check); int pageNumber=Integer.parseInt(request.getParameter("pageNumber")); mav.addObject("pageNumber",pageNumber); mav.addObject("check",check); mav.setViewName("freeBoard/writeOk"); } /** * @name : FreeBoardServiceImpl * @date : 2015. 7. 31. * @author : 손유진 * @description : 조회수 증가증가를 위한 메소드 */ private void freeBoardWriteNumber(FreeBoardDto freeBoardDto) { String board_num=freeBoardDto.getBoard_num(); int group_num=freeBoardDto.getGroup_num(); int seq_num=freeBoardDto.getSeq_num(); int seq_level=freeBoardDto.getSeq_level(); logger.info("-----boardNumber:" + board_num); logger.info("groupNumber:"+ group_num); logger.info("sequenceNumber:"+seq_num); logger.info("sequenceLevel:"+seq_level); int max=0; if(board_num.equals("0")){ max=freeBoardDao.freeBoardGroupNumberMax(); if(max!=0){ max=max+1; }else{ max=freeBoardDto.getGroup_num(); } logger.info("max:"+max); group_num=max; seq_num=freeBoardDto.getSeq_num(); seq_level=freeBoardDto.getSeq_level(); }else{ //답글 sequenceNumber와 level이 수정되야함. HashMap<String, Integer> hMap=new HashMap<String, Integer>(); hMap.put("groupNumber", group_num); hMap.put("sequenceNumber", seq_num); hMap.put("sequenceLevel", seq_level); freeBoardDao.freeBoardGroupNumberUpdate(hMap); seq_num=seq_num+1; seq_level=seq_level+1; } freeBoardDto.setGroup_num(group_num); freeBoardDto.setSeq_num(seq_num); freeBoardDto.setSeq_level(seq_level); } /** * @name : FreeBoardServiceImpl * @date : 2015. 7. 31. * @author : 손유진 * @description : 게시글을 순서대로 목록에 나타내기 위해 페이징기법을 사용한 메소드 */ @Override public void freeBoardList(ModelAndView mav) { Map<String,Object> map=mav.getModelMap(); HttpServletRequest request=(HttpServletRequest)map.get("request"); String pageNumber=request.getParameter("pageNumber"); if(pageNumber==null) pageNumber="1"; String searchWord=request.getParameter("searchWord"); String searchType=request.getParameter("searchType"); //검색용 파라미터 String folderName=request.getParameter("folderName"); logger.info("pageNumber:" +pageNumber); logger.info("searchWord:" +searchWord); logger.info("searchType:" +searchType); logger.info("folderName:" +folderName); int boardSize=10; int currentPage=Integer.parseInt(pageNumber); int startRow=(currentPage-1)*boardSize+1; int endRow=currentPage*boardSize; logger.info("boardList startRow: "+startRow+", endRow: "+endRow); int count=0; if(folderName==null){ count=freeBoardDao.getFreeBoardCount(); logger.info("freeBoardList count: "+count); }else{ count=commonIODao.getCommonBoardCount(folderName, searchWord, searchType); logger.info("freeBoardList count(search): "+count); } List<FreeBoardDto> freeBoardList=null; if(count>0){ if(folderName==null){ freeBoardList=freeBoardDao.getFreeBoardList(startRow,endRow); }else{ freeBoardList=(List<FreeBoardDto>) commonIODao.getCommonBoardList(startRow, endRow, searchWord, searchType, folderName); if(freeBoardList!=null)logger.info("freeBoardList size(search): "+freeBoardList.size()); } } mav.addObject("searchWord",searchWord); mav.addObject("searchType",searchType); //search를 반환시켜야 page이동간도 사용가능 mav.addObject("freeBoardSize",boardSize); mav.addObject("currentPage",currentPage); mav.addObject("count",count); mav.addObject("freeBoardList",freeBoardList); mav.setViewName("freeBoard/list"); } /** * @name : FreeBoardServiceImpl * @date : 2015. 7. 31. * @author : 손유진 * @description : 자유게시판 읽기 메소드 */ @Override public void freeBoardRead(ModelAndView mav) { logger.info("freeboard ServerService-------------------------"); Map<String,Object> map=mav.getModelMap(); HttpServletRequest request=(HttpServletRequest)map.get("request"); /* int board_num=Integer.parseInt(request.getParameter("board_num")); */ String board_num=request.getParameter("board_num"); int pageNumber=Integer.parseInt(request.getParameter("pageNumber")); FreeBoardDto freeBoardDto= freeBoardDao.freeBoardRead(board_num); List<ReplyDto> replyList=replyDao.replyList(board_num); logger.info("freeBoardRead freeBoardDto: "+freeBoardDto); logger.info("ssfsdfsdfsdf:"+freeBoardDto.getContent()); mav.addObject("freeBoard",freeBoardDto); mav.addObject("replyList",replyList); mav.addObject("pageNumber",pageNumber); mav.setViewName("freeBoard/read"); } /** * @name : FreeBoardServiceImpl * @date : 2015. 7. 31. * @author : 손유진 * @description : 자유게시판 본인게시물 삭제하는 메소드 */ @Override public void freeBoardDelete(ModelAndView mav) { Map<String,Object> map=mav.getModelMap(); HttpServletRequest request=(HttpServletRequest)map.get("request"); String board_num=request.getParameter("board_num"); int pageNumber=Integer.parseInt(request.getParameter("pageNumber")); logger.info("freeBoardDelete board_num: "+board_num+", pageNumber: "+pageNumber); mav.addObject("board_num",board_num); mav.addObject("pageNumber",pageNumber); mav.setViewName("freeBoard/delete"); } /** * @name : FreeBoardServiceImpl * @date : 2015. 7. 31. * @author : 손유진 * @description : 게시물 삭제 확인 (실패,성공여부)을 위한 메소드 */ @Override public void freeBoardDeleteOk(ModelAndView mav) { Map<String,Object> map=mav.getModelMap(); HttpServletRequest request=(HttpServletRequest)map.get("request"); /* int board_num=Integer.parseInt(request.getParameter("board_num"));*/ String board_num=request.getParameter("board_num"); int pageNumber=Integer.parseInt(request.getParameter("pageNumber")); logger.info("freeBoardDeleteOk board_num: "+board_num+", pageNumber: "+pageNumber); int check=freeBoardDao.freeBoardDelete(board_num); logger.info("freeBoardDeleteOk check: "+check); mav.addObject("pageNumber",pageNumber); mav.addObject("check",check); mav.setViewName("freeBoard/deleteOk"); } /** * @name : FreeBoardServiceImpl * @date : 2015. 7. 31. * @author : 손유진 * @description : 자유게시판 수정 */ @Override public void freeBoardUpdate(ModelAndView mav) { Map<String, Object> map=mav.getModelMap(); HttpServletRequest request=(HttpServletRequest)map.get("request"); /*int board_num=Integer.parseInt(request.getParameter("board_num"));*/ String board_num=request.getParameter("board_num"); int pageNumber=Integer.parseInt(request.getParameter("pageNumber")); FreeBoardDto freeBoard=freeBoardDao.freeBoardUpdateSelect(board_num); /* freeBoard=freeBoardDao.freeBoardUpdateSelect(pageNumber);*/ logger.info("freeBoardUpdate freeBoard:"+freeBoard); //board와 pageNumber를 updateOk.jsp에 넘겨줘야한다. mav.addObject("freeBoard",freeBoard); mav.addObject("pageNumber",pageNumber); mav.addObject("board_num",board_num); mav.setViewName("freeBoard/update"); } /** * @name : FreeBoardServiceImpl * @date : 2015. 7. 31. * @author : 손유진 * @description : 자유게시판 수정 확인(실패,성공)하는 메소드 */ @Override public void freeBoardUpdateOk(ModelAndView mav) { Map<String,Object> map=mav.getModelMap(); HttpServletRequest request=(HttpServletRequest)map.get("request"); FreeBoardDto freeBoardDto=(FreeBoardDto)map.get("freeBoardDto"); int pageNumber=Integer.parseInt(request.getParameter("pageNumber")); int check=freeBoardDao.freeBoardUpdate(freeBoardDto); //updateOk.jsp에는 check와 pageNumber를 넘겨줘야 한다. mav.addObject("check",check); mav.addObject("pageNumber",pageNumber); mav.setViewName("freeBoard/updateOk"); } }