package com.indiScene.bestBoard.service; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Logger; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import com.indiScene.bestBoard.dao.BestBoardDao; import com.indiScene.bestBoard.dto.BestBoardDto; import com.indiScene.commonIO.dto.CommonMusicDto; /** * @type : BestBoardServiceImpl * @date : 2015. 7. 20. * @author : Kim MinSic * @description : 전반적인 BestBoard와 PlayList의 기능을 구현한 클래스 */ @Component public class BestBoardServiceImpl implements BestBoardService { // private String dir = "C:/SPB_Data/git/IndiScene/src/main/webapp/resources/"; // private String dir="C:/KMS_MavenSpring/apache-tomcat-7.0.59/wtpwebapps/IndiScene/resources/"; @Autowired private BestBoardDao dao; private Logger logger = Logger.getLogger(this.getClass().getName()); /** * @name : bestList * @date : 2015. 7. 20. * @author : Kim MinSic * @description : bestboard의 Database를 불러와준다. */ @Override public void bestList(ModelAndView mav) { logger.info("best List Service Start"); Map<String,Object> hMap = mav.getModel(); HttpServletRequest request=(HttpServletRequest)hMap.get("request"); int boardSize =10; String pageNumber = request.getParameter("pageNumber"); if(pageNumber == null) pageNumber ="1"; int currentPage = Integer.parseInt(pageNumber); int startRow = (currentPage - 1) * boardSize +1; int endRow = currentPage*boardSize; int count = dao.getBestCount(); HashMap<String,Integer> rowMap = new HashMap<String,Integer>(); rowMap.put("startRow", startRow); rowMap.put("endRow", endRow); List<BestBoardDto> list= dao.getBestList(rowMap); mav.addObject("boardList",list); mav.addObject("count",count); mav.addObject("boardSize",boardSize); mav.addObject("currentPage",currentPage); mav.setViewName("bestBoard/list"); } /** * @name : read * @date : 2015. 7. 23. * @author : Kim MinSic * @description : Best 게시판의 게시글을 읽는다. */ @Override public void read(ModelAndView mav) { Map<String, Object> map=mav.getModel(); HttpServletRequest request = (HttpServletRequest) map.get("request"); String board_num = request.getParameter("boardNum"); String pageNumber = request.getParameter("pageNumber"); BestBoardDto boardDto = dao.read(board_num); dao.readCount(board_num); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm"); String date= sdf.format(boardDto.getRegister_date()); mav.addObject("date",date); mav.addObject("pageNumber",pageNumber); mav.addObject("board_num",board_num); mav.addObject("boardDto",boardDto); mav.setViewName("bestBoard/read"); } /** * @name : musicListAppend * @date : 2015. 7. 22. * @author : Kim MinSic * @description : 선택된 게시물 번호와 사용자 아이디를 Database에 저장한다. */ @Override public void musicListAppend(ModelAndView mav) { Map<String, Object> map=mav.getModel(); HttpServletRequest request = (HttpServletRequest) map.get("request"); HttpServletResponse response = (HttpServletResponse) map.get("response"); String[] musicList = request.getParameter("musicList").split(","); String id =request.getParameter("artist_id"); int check = 0; List<CommonMusicDto> dtoList = new ArrayList<CommonMusicDto>(); for(int i =0; i<musicList.length; i++){ HashMap<String, String> hMap = new HashMap<String,String>(); hMap.put("artist_id",id); hMap.put("board_num", musicList[i]); int value=0; value=dao.musicAppend(hMap); System.out.println(value); check+= value; if(value>0){ if(musicList[i].charAt(0)=='u') dtoList.add(dao.getAppendMusic(musicList[i])); else if(musicList[i].charAt(0)=='m') dtoList.add(dao.getAppendMusicMuse(musicList[i])); } } response.setContentType("text/html; charset=UTF-8"); try { PrintWriter out = response.getWriter(); out.write(check+"곡이 추가되었습니다.<end>"); for(CommonMusicDto dto : dtoList){ out.write(dto.getSubject()+ "<cut>" + dto.getArtist_id() + "<cut>" + dto.getFile_path()+"<cut>"+dto.getImage_path()+"<cut>"+dto.getBoard_num()+"<end>"); } } catch (IOException e) { e.printStackTrace(); } } /** * @name : getMusicList * @date : 2015. 7. 23. * @author : Kim MinSic * @description : 사용자 아이디에 저장된 음악 게시물 번호를 가져온다. */ @Override public void getMusicList(ModelAndView mav){ Map<String, Object> map=mav.getModel(); HttpServletRequest request = (HttpServletRequest) map.get("request"); HttpServletResponse response = (HttpServletResponse) map.get("response"); response.setContentType("text/html; charset=UTF-8"); String id =request.getParameter("artist_id"); List<CommonMusicDto> dtoList = dao.getMusicList(id); // System.out.println(dtoList.size()); dtoList.addAll(dao.getMusicListMuse(id)); // System.out.println(dtoList.size()); try{ PrintWriter out=response.getWriter(); for(CommonMusicDto dto : dtoList){ // out.write(dto.getSubject()+ "\t" + dto.getArtist_id() + "\t" + dto.getFile_path()+"\t"+dto.getImage_path()+"\n"); out.write(dto.getSubject()+ "<cut>" + dto.getArtist_id() + "<cut>" + dto.getFile_path()+"<cut>"+dto.getImage_path()+"<cut>"+dto.getBoard_num()+"<end>"); // System.out.println(dto.getSubject()+ "\t" + dto.getArtist_id() + "\t" + dto.getFile_path()+"\t"+dto.getImage_path()+"\t"+dto.getBoard_num()); } }catch(IOException e){ e.printStackTrace(); } } /** * @name : musicListDelete * @date : 2015. 7. 23. * @author : Kim MinSic * @description : 플레이리스트를 Database에서 삭제한다. */ @Override public void musicListDelete(ModelAndView mav) { Map<String, Object> map=mav.getModel(); HttpServletRequest request = (HttpServletRequest) map.get("request"); HttpServletResponse response = (HttpServletResponse) map.get("response"); response.setContentType("text/html; charset=UTF-8"); String id =request.getParameter("artist_id"); String board_num =request.getParameter("boardNum"); HashMap<String, String> hMap = new HashMap<String,String>(); hMap.put("artist_id",id); hMap.put("board_num", board_num); int check =dao.musicListDelete(hMap); if(check > 0){ try { PrintWriter out = response.getWriter(); out.write("해당 곡이 목록에서 삭제되었습니다."); } catch (IOException e) { e.printStackTrace(); } } } }