package com.lion.config;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.jdbc.core.JdbcTemplate;

import com.lion.entity.LoginUserInfo;
import com.lion.util.PropertiesUtil;
import com.lion.util.TimeUtil;
import com.lion.util.Util;

public class LoginUserInfoCache {
	public static Map<String,LoginUserInfo> mapUser=new HashMap<String, LoginUserInfo>();
	/** 重启时清空
	 * @return
	 */
	public static Map<String,LoginUserInfo> load(){
		mapUser=new HashMap<String, LoginUserInfo>();
		String openID=PropertiesUtil.getProperty("openID");
		if(openID.equals("1")){
			JdbcTemplate jdbc=Util.jdbc();
			List<Map<String,Object>> list=jdbc.queryForList("select s.cookie,id,userAccount,roleid,orgid "
					+ "from org_user o INNER JOIN sys_login s on o.id=s.userid "
					+ "where s.logintime like '"+TimeUtil.getNowTimeNYR()+"%'");
			if(list.size()>0){
				for(Map<String,Object> map:list){
					LoginUserInfo user=new LoginUserInfo();
					user.setOrgid(map.get("orgid").toString());
					user.setRoleid(map.get("roleid").toString());
					user.setUserId(map.get("id").toString());
					user.setUserAccount(map.get("userAccount").toString());
					mapUser.put(map.get("cookie").toString(),user);
				}
			}
		}
		return mapUser;
	}
	/** 删除人员时操作
	 */
	public static void remove(String cookie){
		mapUser.remove(cookie);
	}
	/** 登录成功后操作
	 */
	public static void add(String cookie,LoginUserInfo user){
		mapUser.put(cookie,user);
	}
	/**根据token获取用户信息
	 * @param token
	 * @return
	 */
	public static LoginUserInfo getLoginUserInfoByToken(String cookie){
		return mapUser.get(cookie);
	}
	/**更新用户信息
	 * @param user
	 */
	public static void updateUserInfo(String cookie,LoginUserInfo user){
		mapUser.put(cookie, user);
	}
}
