package com.indiScene.museGuest.service;
import java.io.IOException;
import java.io.PrintWriter;
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 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.museGuest.dao.MuseGuestDaoImpl;
import com.indiScene.museGuest.dto.MuseGuestDto;
/**
* @name:MuseGuestServiceImpl
* @date :2015. 7. 7.
* @author: 김정승
* @description : MuseGuestService Interface를 상속받은 class
*/
@Component
public class MuseGuestServiceImpl implements MuseGuestService {
@Autowired
private MuseGuestDaoImpl guestDao;
private final Logger logger = Logger.getLogger(this.getClass().getName());
/**
* @name: write
* @date :2015. 7. 7.
* @author: 김정승
* @description : 방명록 작성을 위해 Dao를 호출하는 method
*/
public void write(ModelAndView mav){
Map<String, Object> map = mav.getModelMap();
MuseGuestDto guestDto = (MuseGuestDto) map.get("guestDto");
HttpServletRequest request = (HttpServletRequest) map.get("request");
HttpServletResponse response = (HttpServletResponse) map.get("response");
guestDto.setGuest_date(new Date());
int check = guestDao.write(guestDto);
//logger.info("-- check : " + check);
try {
PrintWriter out = response.getWriter();
out.print(check);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @name: getList
* @date :2015. 7. 7.
* @author: 김정승
* @description : 방명록 list를 가지고 오기 위해 Dao를 호출하는 method
*/
public ModelAndView getList(ModelAndView mav){
Map<String, Object> map = mav.getModelMap();
HttpServletRequest request = (HttpServletRequest)map.get("request");
HttpServletResponse response = (HttpServletResponse)map.get("response");
String muse_name = request.getParameter("muse_name");
String pagenum = request.getParameter("pagenum");
if(pagenum == null)pagenum = "1";
int boardnum = 5;
int count = 0;
count = guestDao.getCount(muse_name);
//logger.info("-- count : " + count + "pagenum : " + pagenum);
int startpage = boardnum * (Integer.parseInt(pagenum)-1);
int endpage = boardnum * Integer.parseInt(pagenum);
if(endpage > count) endpage=count;
HashMap<String, Object> hmap = new HashMap<String, Object>();
hmap.put("startpage", startpage);
hmap.put("endpage", endpage);
hmap.put("muse_name", muse_name);
List<MuseGuestDto> list = guestDao.getList(hmap);
response.setCharacterEncoding("utf-8");
//logger.info("-- pagenum : " + pagenum);
/*if(pagenum == "1"){*/
//logger.info("-- pagenum 1 : " + pagenum);
//count = guestDao.getCount(muse_name);
mav.addObject("muse_name", muse_name);
mav.addObject("count", count);
mav.addObject("list", list);
mav.addObject("listsize", list.size());
mav.addObject("boardnum", boardnum);
mav.addObject("pagenum", pagenum);
mav.setViewName("museGuest/guest");
return mav;
/*}else{
try {
PrintWriter out = response.getWriter();
for(int i = 0; i < list.size(); i++){
MuseGuestDto guest = list.get(i);
out.print(guest.getGuest_num() +","+guest.getArtist_id() + "," + guest.getGuest_date() + "," + guest.getMuse_name() +","+guest.getGuest_content() + "/" );
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}*/
}
/**
* @name: update
* @date :2015. 7. 7.
* @author: 김정승
* @description : 방명록을 수정하기 위해 DAO를 호출하는 method
*/
public void update(ModelAndView mav){
Map<String, Object> map = mav.getModelMap();
HttpServletRequest request = (HttpServletRequest)map.get("request");
HttpServletResponse response = (HttpServletResponse)map.get("response");
String guest_num = request.getParameter("guest_num");
String guest_content = request.getParameter("guest_content");
//logger.info("-- guest num + guest_content : " + guest_num + " ,, " + guest_content);
int check = guestDao.update(guest_num, guest_content);
//logger.info("-- guestupdate check : " + check );
try {
PrintWriter out = response.getWriter();
out.print(check);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @name: delete
* @date :2015. 7. 7.
* @author: 김정승
* @description : 작성된 방명록을 삭제하기 위해 DAO를 호출하는 method
*/
public void delete(ModelAndView mav){
Map<String, Object> map = mav.getModelMap();
HttpServletRequest request = (HttpServletRequest)map.get("request");
HttpServletResponse response = (HttpServletResponse)map.get("response");
String guest_num = request.getParameter("guest_num");
//logger.info("-- guest num : " + guest_num);
int check = guestDao.delete(guest_num);
//logger.info("-- g check : " + check );
try {
PrintWriter out = response.getWriter();
out.print(check);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}