package com.gaowj.system.login;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.jasig.cas.client.authentication.AttributePrincipal;

import com.gaowj.business.SystemOpeBusiness;
import com.gaowj.business.action.BasicAction;
import com.gaowj.business.comp.BusinessManager;
import com.gaowj.business.exception.BusinessException;
import com.gaowj.business.util.Java_tool;

public class CasAction extends BasicAction {

	/**
	 * 
	 */
	private static final long serialVersionUID = 4192673206777760091L;
	
	public String execute() throws BusinessException {
		response.setHeader("P3P","CP=CAO PSA OUR");
		AttributePrincipal principal = (AttributePrincipal)request.getUserPrincipal();
		
		Map<String, Object> attributes = principal.getAttributes();
		String userID = attributes.get("userid").toString();
		String userName = attributes.get("USER_NAME").toString();
		System.out.println("-----1"+userID);
		System.out.println("-----2"+userName);
		System.out.println("-----3"+attributes.get("UNIT_ID"));
		if(userID!=null){
		  String username = userID;
		  Java_tool jt = new Java_tool();
		  SystemOpeBusiness systemOpeBusiness = BusinessManager.getBusiness(SystemOpeBusiness.class);
		  
		  Map<String,Object> query = new HashMap<String,Object>();
		  query.put("EMID", username);
		  Map<String,Object> userInfoI = systemOpeBusiness.listLoginUserInfo(query).get(0);
		  Map<String,Object> sessionUser = new HashMap<String,Object>();
		  String u_all_m  = systemOpeBusiness.getUserAllModule(userInfoI.get("CODE").toString());
		  sessionUser.put("CODE",userInfoI.get("CODE"));
		  sessionUser.put("EMID",userInfoI.get("EMID"));
		  sessionUser.put("EMSEX",userInfoI.get("EMSEX"));
		  sessionUser.put("EMDEPARTNAME",userInfoI.get("EMDEPARTNAME"));
		  sessionUser.put("EMDEPART",userInfoI.get("EMDEPART"));
		  sessionUser.put("EMNAME",userInfoI.get("EMNAME"));
		  sessionUser.put("BEFORETIME",userInfoI.get("BEFORETIME"));
		                	    
		  sessionUser.put("SESSIONID", request.getSession().getId());
		  sessionUser.put("CURRENTTIME", jt.now_datetime());
		  sessionUser.put("LOGINIP", request.getRemoteAddr());
		  sessionUser.put("SERVERIP", request.getLocalAddr());
		  sessionUser.put("QUANXIAN",u_all_m);
		  request.getSession().setAttribute("userInfo", sessionUser);
		  //增加登陆日志
		  Map<String,Object> log = new HashMap<String,Object>();
		  log.put("CODE", sessionUser.get("CODE"));log.put("EMNAME", sessionUser.get("EMNAME"));log.put("EMIP", sessionUser.get("LOGINIP"));
		  log.put("OPENAME", "登陆");log.put("OPETIME", jt.String3date((String)sessionUser.get("CURRENTTIME")));log.put("TYPE", userInfoI.get("TYPE"));
		  log.put("OPETYPE", "B/S登陆");
		  systemOpeBusiness.insert_log(log);
		}
	    String strRedirecturl = request.getParameter("redirectUrl");
	    String toUrl = "";
		if(strRedirecturl != null && strRedirecturl.length() > 0) {
			toUrl = strRedirecturl;
		}else{
			toUrl = "index.jsp";
		}
		try {
			response.sendRedirect(toUrl);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

}
