package jp.ac.kcska.questionsystem.kawano;

import java.io.IOException;
import java.sql.ResultSet;
import java.sql.Timestamp;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import jp.ac.kcska.questionsystem.ExcuteDatabase;
import jp.ac.kcska.questionsystem.Mst_userVo;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		HttpSession session = request.getSession();
		Mst_userVo userVo = new Mst_userVo();
		ResultSet resultSet =null;
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		String sqlString="SELECT id,username,password,lastlogindate,count(*) count FROM MST_USER WHERE(USERNAME='"
				+ username
				+"') AND (PASSWORD = '"
				+ password
				+"') AND (adminflag=true)";
		ExcuteDatabase excuteDatabase = new ExcuteDatabase();
		boolean adminflag = false;
		try{
			resultSet=excuteDatabase.excuteSelect(sqlString);
			while(resultSet.next()){
				if(resultSet.getInt("count")!=1){
					//該当データがなければ、�?�?��抜け�?
					break;
				}
				userVo.setId(resultSet.getInt("id"));
				userVo.setUsername(resultSet.getString("username"));
				userVo.setPassword(resultSet.getString("password"));
				Timestamp timestamp= new Timestamp(System.currentTimeMillis());
				userVo.setLastlogindate(timestamp);
				String updateSQL="UPDATE MST_USER SET lastlogindate ='"
						+ timestamp.toString() +"' WHERE id ="
						+resultSet.getInt("id");
				int i = excuteDatabase.excuteUpdate(updateSQL);
				adminflag=true;
				session.setAttribute("adminflag", adminflag);
				session.setAttribute("userVo", userVo);
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		RequestDispatcher dispatcher = null;

		if(adminflag){
			dispatcher= request.getRequestDispatcher("/mypage.jsp");
		}else{
			dispatcher = request.getRequestDispatcher("/index.jsp");
		}
		dispatcher.forward(request, response);
		return;
	}
}