BoardController.java
package com.scsa.busta.board; import java.io.File; import java.io.IOException; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; 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.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; @Controller public class BoardController { @Autowired IBoardService service; //커뮤니티 메인 @RequestMapping("/community_main.do") public String community_main(Model m) { ListsugList=service.searchSugList(); List lostList=service.searchLostList(); m.addAttribute("sugList", sugList); m.addAttribute("lostList", lostList); m.addAttribute("content", "view/community_main.jsp"); return "index.jsp"; } /*건의사항 글쓰기 페이지로 이동*/ @RequestMapping("/sugWritePage.do") public String sugWritePage(Model m) { m.addAttribute("content", "view/sug_write.jsp"); return "index.jsp"; } /*건의사항 글 검색*/ @RequestMapping("/searchSug.do") @ResponseBody public List searchSug(@RequestParam String searchOption, @RequestParam String title, @RequestParam String content, Model m){ if(searchOption.equals("title")){ content = null; }else if(searchOption.equals("content")){ title = null; } List list = service.searchSug(title, content); return list; } /*건의사항 글 등록*/ @RequestMapping(value="/sugWrite.do", method=RequestMethod.POST) public String sugWrite(SuggestionVO suggestion, String content, Model m) { content=content.replace("\r\n", "
"); suggestion.setContent(content); service.sugWrite(suggestion); return "redirect:searchSugList.do?page=1"; } /*건의사항 글 목록&댓글 수*/ @RequestMapping("/searchSugList.do") public String searchSugList(int page, Model m) { Listlist=service.searchSugList(); m.addAttribute("list", list); m.addAttribute("page", page); m.addAttribute("content", "view/sug_list.jsp"); return "index.jsp"; } /*건의사항 글 읽기&조회수 +1*/ @RequestMapping("/getSugDetail.do") public String getSugDetail(int sugnum, int count, int page, Model m) { service.updateSugCount(sugnum, count); SuggestionVO sug=service.getSugDetail(sugnum); List list=service.sugReplyList(sugnum); m.addAttribute("sug", sug); m.addAttribute("list", list); m.addAttribute("page", page); m.addAttribute("content", "view/sug_detail.jsp"); return "index.jsp"; } /*건의사항 글 삭제*/ @RequestMapping("/sugDelete.do") public String sugDelete(int sugnum, Model m) { service.sugDelete(sugnum); return "redirect:searchSugList.do?page=1"; } /*건의사항 글수정 페이지로 이동*/ @RequestMapping("/sugUpdatePage.do") public String sugUpdatePage(int sugnum, int page, Model m) { SuggestionVO sug=service.getSugDetail(sugnum); m.addAttribute("sug", sug); m.addAttribute("page", page); m.addAttribute("content", "view/sug_write.jsp"); return "index.jsp"; } /*건의사항 글 수정*/ @RequestMapping("/sugUpdate.do") public String sugUpdate(SuggestionVO suggestion, String content, int sugnum, int count, int page, Model m) { content=content.replace("\r\n", "
"); suggestion.setContent(content); service.sugUpdate(suggestion); m.addAttribute("page", page); return "redirect:getSugDetail.do?sugnum="+sugnum+"&count="+count+"&page="+page; } /*건의사항 댓글 등록*/ @RequestMapping("/sugReplyWrite.do") public String sugReplyWrite(ReplyVO reply, int sugnum, int count, int page) { service.sugRepltWrite(reply); return "redirect:getSugDetail.do?sugnum="+sugnum+"&count="+count+"&page="+page; } /*건의사항 댓글 수정 시 선택*/ @RequestMapping("/sugReply.do") @ResponseBody public ReplyVO sugReply(int replynum) { ReplyVO reply=service.sugReply(replynum); return reply; } /*건의사항 댓글 수정*/ @RequestMapping("/sugReplyUpdate.do") public String sugReplyUpdate(ReplyVO reply, int sugnum, int count, int page) { service.sugReplyUpdate(reply); return "redirect:getSugDetail.do?sugnum="+sugnum+"&count="+count+"&page="+page; } /*건의사항 댓글 삭제*/ @RequestMapping("/sugReplyDelete.do") public String sugReplyDelete(int replynum, int sugnum, int count, int page) { service.sugReplyDelete(replynum); return "redirect:getSugDetail.do?sugnum="+sugnum+"&count="+count+"&page="+page; } /*분실물 글쓰기 페이지로 이동*/ @RequestMapping("/lostWritePage.do") public String lostWritePage(Model m) { m.addAttribute("content", "view/lost_write.jsp"); return "index.jsp"; } /*분실물 글 목록*/ @RequestMapping("/searchLostList.do") public String searchLostList(int page, Model m) { Listlist=service.searchLostList(); m.addAttribute("list", list); m.addAttribute("page", page); m.addAttribute("content", "view/lost_list.jsp"); return "index.jsp"; } /*분실물 글 검색*/ @RequestMapping("/searchLostNFound.do") @ResponseBody public List searchLostNFound(@RequestParam String searchOption, @RequestParam String title, @RequestParam String content, Model m){ if(searchOption.equals("title")){ content = null; }else if(searchOption.equals("content")){ title = null; } List list=service.searchLostNFound(title, content); return list; } /*분실물 글 등록*/ @RequestMapping(value="/lostWrite.do", method=RequestMethod.POST) public String lostWrite(LostBoardVO lost, String content, @RequestParam("lostimage") MultipartFile file, HttpServletRequest req, Model m) throws IllegalStateException, IOException { String fileName=file.getOriginalFilename().trim(); if(!fileName.equals("")){ String path=req.getServletContext().getRealPath("/img"); File myFile=new File(path, fileName); file.transferTo(myFile); lost.setImage(fileName); }else if(fileName.equals("")){ lost.setImage(""); } content=content.replace("\r\n", "
"); lost.setContent(content); service.lostWrite(lost); return "redirect:searchLostList.do?page=1"; } /*분실물 글 읽기&조회수 +1&댓글보기*/ @RequestMapping("/getLostDetail.do") public String getLostDetail(int lostnum, int count, int page, Model m) { service.updateLostCount(lostnum, count); LostBoardVO lost=service.getLostDetail(lostnum); Listlist=service.lostReplyList(lostnum); m.addAttribute("lost", lost); m.addAttribute("list", list); m.addAttribute("page", page); m.addAttribute("content", "view/lost_detail.jsp"); return "index.jsp"; } /*분실물 글 삭제*/ @RequestMapping("/lostDelete.do") public String lostDelete(int lostnum, Model m) { service.lostDelete(lostnum); return "redirect:searchLostList.do?page=1"; } /*분실물 글수정 페이지로 이동*/ @RequestMapping("/lostUpdatePage.do") public String lostUpdatePage(int lostnum, int page, Model m) { LostBoardVO lost=service.getLostDetail(lostnum); m.addAttribute("lost", lost); m.addAttribute("page", page); m.addAttribute("content", "view/lost_write.jsp"); return "index.jsp"; } /*분실물 글 수정*/ @RequestMapping("/lostUpdate.do") public String lostUpdate(LostBoardVO lost, String content, @RequestParam("lostimage") MultipartFile file, HttpServletRequest req, int lostnum, int count, int page, Model m) throws IllegalStateException, IOException { String fileName=file.getOriginalFilename().trim(); if(!fileName.equals("")){ String path=req.getServletContext().getRealPath("/img"); File myFile=new File(path, fileName); file.transferTo(myFile); lost.setImage(fileName); }else if(fileName.equals("")){ lost.setImage(""); } content=content.replace("\r\n", "
"); lost.setContent(content); service.lostUpdate(lost); m.addAttribute("page", page); return "redirect:getLostDetail.do?lostnum="+lostnum+"&count="+count+"&page="+page; } /*분실물 댓글 등록*/ @RequestMapping("/lostReplyWrite.do") public String lostReplyWrite(ReplyVO reply, int lostnum, int count, int page) { service.lostRepltWrite(reply); return "redirect:getLostDetail.do?lostnum="+lostnum+"&count="+count+"&page="+page; } /*분실물 댓글 수정 시 선택*/ @RequestMapping("/lostReply.do") @ResponseBody public ReplyVO lostReply(int replynum) { ReplyVO reply=service.lostReply(replynum); return reply; } /*분실물 댓글 수정*/ @RequestMapping("/lostReplyUpdate.do") public String lostReplyUpdate(ReplyVO reply, int lostnum, int count, int page) { service.lostReplyUpdate(reply); return "redirect:getLostDetail.do?lostnum="+lostnum+"&count="+count+"&page="+page; } /*분실물 댓글 삭제*/ @RequestMapping("/lostReplyDelete.do") public String lostReplyDelete(int replynum, int lostnum, int count, int page) { service.lostReplyDelete(replynum); return "redirect:getLostDetail.do?lostnum="+lostnum+"&count="+count+"&page="+page; } }
BoardServiceImpl.java
package com.scsa.busta.board; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class BoardServiceImpl implements IBoardService { @Autowired IBoardDAO dao; @Override public void sugWrite(SuggestionVO suggestion) { dao.sugWrite(suggestion); } @Override public ListsearchSugList() { List list=dao.searchSugList(); return list; } @Override public List searchSug(String title, String content) { List list=dao.searchSug(title, content); return list; } @Override public SuggestionVO getSugDetail(int sugnum) { SuggestionVO suggestion=dao.getSugDetail(sugnum); return suggestion; } @Override public void updateSugCount(int sugnum, int count) { dao.updateSugCount(sugnum, count+1); } @Override public void sugDelete(int sugnum) { dao.sugDelete(sugnum); } @Override public void sugUpdate(SuggestionVO suggestion) { dao.sugUpdate(suggestion); } @Override public void lostWrite(LostBoardVO lost) { dao.lostWrite(lost); } @Override public List searchLostList() { List list=dao.searchLostList(); return list; } @Override public List searchLostNFound(String title, String content) { List list=dao.searchLostNFound(title, content); return list; } @Override public LostBoardVO getLostDetail(int lostnum) { LostBoardVO lost=dao.getLostDetail(lostnum); return lost; } @Override public void updateLostCount(int lostnum, int count) { dao.updateLostCount(lostnum, count+1); } @Override public void lostDelete(int lostnum) { dao.lostDelete(lostnum); } @Override public void lostUpdate(LostBoardVO lost) { dao.lostUpdate(lost); } @Override public void lostRepltWrite(ReplyVO reply) { dao.lostRepltWrite(reply); } @Override public List lostReplyList(int gulnum) { List list=dao.lostReplyList(gulnum); return list; } @Override public void lostReplyUpdate(ReplyVO reply) { dao.lostReplyUpdate(reply); } @Override public ReplyVO lostReply(int replynum) { ReplyVO reply=dao.lostReply(replynum); return reply; } @Override public void lostReplyDelete(int replynum) { dao.lostReplyDelete(replynum); } @Override public void sugRepltWrite(ReplyVO reply) { dao.sugRepltWrite(reply); } @Override public List sugReplyList(int gulnum) { List list=dao.sugReplyList(gulnum); return list; } @Override public void sugReplyUpdate(ReplyVO reply) { dao.sugReplyUpdate(reply); } @Override public ReplyVO sugReply(int replynum) { ReplyVO reply=dao.sugReply(replynum); return reply; } @Override public void sugReplyDelete(int replynum) { dao.sugReplyDelete(replynum); } }
BoardDAOImpl.java
package com.scsa.busta.board; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.session.SqlSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @Repository public class BoardDAOImpl implements IBoardDAO { @Autowired SqlSession session; //건의사항 글 쓰기 @Override public void sugWrite(SuggestionVO suggestion) { session.insert("board.sugWrite", suggestion); } //건의사항 글 목록 @Override public ListsearchSugList() { List list=session.selectList("board.searchSugList"); return list; } //건의사항 글 검색 @Override public List searchSug(String title, String content) { Map map=new HashMap (); map.put("title", title); map.put("content", content); List list = session.selectList("board.searchSug", map); return list; } //건의사항 글 읽기 @Override public SuggestionVO getSugDetail(int sugnum) { SuggestionVO suggestion=session.selectOne("board.getSugDetail", sugnum); return suggestion; } //건의사항 조회수 +1 @Override public void updateSugCount(int sugnum, int count) { Map map=new HashMap<>(); map.put("sugnum", sugnum); map.put("count", count); session.update("board.updateSugCount", map); } //건의사항 글 삭제 @Override public void sugDelete(int sugnum) { session.delete("board.sugDelete", sugnum); } //건의사항 글 수정 @Override public void sugUpdate(SuggestionVO suggestion) { session.update("board.sugUpdate", suggestion); } //건의사항 댓글 작성 @Override public void sugRepltWrite(ReplyVO reply) { session.insert("board.sugReplyWrite", reply); } //건의사항 댓글 리스트 @Override public List sugReplyList(int gulnum) { List list=session.selectList("board.sugReplyList", gulnum); return list; } //건의사항 리플 수정 @Override public void sugReplyUpdate(ReplyVO reply) { session.update("board.sugReplyUpdate", reply); } //건의사항 리플 수정 시 선택 @Override public ReplyVO sugReply(int replynum) { ReplyVO reply=session.selectOne("board.sugReplyDetail", replynum); return reply; } //건의사항 리플 삭제 @Override public void sugReplyDelete(int replynum) { session.delete("board.sugReplyDelete", replynum); } //분실물 글 작성 @Override public void lostWrite(LostBoardVO lost) { session.insert("board.lostWrite", lost); } //분실물 글 목록 @Override public List searchLostList() { List list=session.selectList("board.searchLostList"); return list; } //분실물 글 검색 @Override public List searchLostNFound(String title, String content) { System.out.println("dao에서 searchLostNFound실행"); Map map=new HashMap (); map.put("title", title); map.put("content", content); List list = session.selectList("board.searchLostNFound", map); return list; } //분실물 글 읽기 @Override public LostBoardVO getLostDetail(int lostnum) { LostBoardVO lost=session.selectOne("board.getLostDetail", lostnum); return lost; } //분실물 조회수 +1 @Override public void updateLostCount(int lostnum, int count) { Map map=new HashMap<>(); map.put("lostnum", lostnum); map.put("count", count); session.update("board.updateLostCount", map); } //분실물 글 삭제 @Override public void lostDelete(int lostnum) { session.delete("board.lostDelete", lostnum); } //분실물 글 수정 @Override public void lostUpdate(LostBoardVO lost) { session.update("board.lostUpdate", lost); } //분실물 댓글 작성 @Override public void lostRepltWrite(ReplyVO reply) { session.insert("board.lostReplyWrite", reply); } //분실물 댓글 목록 @Override public List lostReplyList(int gulnum) { List list=session.selectList("board.lostReplyList", gulnum); return list; } //분실물 댓글 수정 @Override public void lostReplyUpdate(ReplyVO reply) { session.update("board.lostReplyUpdate", reply); } //분실물 댓글 수정 시 선택 @Override public ReplyVO lostReply(int replynum) { ReplyVO reply=session.selectOne("board.lostReplyDetail", replynum); return reply; } //분실물 댓글 삭제 @Override public void lostReplyDelete(int replynum) { session.delete("board.lostReplyDelete", replynum); } }
SqlBoardQuery.xml
insert into suggestion values (SUGGESTION_SEQ.NEXTVAL, #{mid}, #{title}, #{content}, sysdate, 0) update suggestion set count=#{count} where sugnum=#{sugnum} update suggestion set title=#{title}, content=#{content} where sugnum=#{sugnum} delete suggestion where sugnum=#{sugnum} insert into sugreply values (sugreply_SEQ.NEXTVAL, #{gulnum}, #{mid}, #{content}, sysdate) update sugreply set content=#{content} where replynum=#{replynum} delete sugreply where replynum=#{replynum} insert into lostboard values (LOSTBOARD_SEQ.NEXTVAL, #{title}, #{mid}, #{location}, #{content}, #{image}, sysdate, 0) update lostboard set count=#{count} where lostnum=#{lostnum} update lostboard set title=#{title}, location=#{location}, content=#{content}, image=#{image} where lostnum=#{lostnum} delete lostboard where lostnum=#{lostnum} insert into lostreply values (lostreply_SEQ.NEXTVAL, #{gulnum}, #{mid}, #{content}, sysdate) update lostreply set content=#{content} where replynum=#{replynum} delete lostreply where replynum=#{replynum}
'나의 이야기 > 삼성 SCSA 파이널 프로젝트' 카테고리의 다른 글
[BustaBusta | 버스타버스타] 아두이노 설계도 및 소스코드 (0) | 2017.04.20 |
---|---|
[BustaBusta | 버스타버스타] 스마트 광역버스 어플리케이션(A Smart Express Bus App) (12) | 2015.04.05 |