package com.zdcf.tool;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import com.zdcf.base.Constants;
import com.zdcf.model.User;
public class UserSessionUtil {
public static final int currentUserId(){
return currentUser().getId();
}
public static final String currentUserName(){
return "";
}
public static final Locale currentLocale(){
return Locale.CHINESE;
}
public static User currentUser() {
User user = null;
Object obj = getObjectFromSession(Constants.USER_SESSION_KEY);
if (obj != null) {
user = (User) obj;
}
return user;
}
public static Object getObjectByKey(String key) {
return getObjectFromSession(key);
}
private static Object getObjectFromSession(String attributeKey) {
HttpSession session = getSession();
if (session != null) {
return session.getAttribute(attributeKey);
}
return null;
}
public static void setUser(User user) {
addSessionAttribute(Constants.USER_SESSION_KEY, user);
}
public static void setObjectToSession(Object obj,String key) {
addSessionAttribute(key, obj);
}
private static void addSessionAttribute(String attributeKey, Object object) {
HttpSession session = getSession();
if (session != null) {
session.setAttribute(attributeKey, object);
}
}
private static HttpSession getSession() {
HttpServletRequest request = getRequest();
if (request != null) {
return request.getSession();
}
return null;
}
private static HttpServletRequest getRequest(){
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getRequest();
return request;
}
public static void updateUser(User user) {
if(currentUser() != null){
addSessionAttribute(Constants.USER_SESSION_KEY, user);
}
}
//当前用户是否登录
public static boolean getCurrentUserIsLogin(){
return UserSessionUtil.currentUser()==null?false:true;
}
//获取环境语言
public static String getSysLanguage(){
Locale locale = LocaleContextHolder.getLocale();
if(locale != null){
return locale.getLanguage() + "_" + locale.getCountry();
} else {
return Constants.LOCALE_LANGUAGE.en_US;
}
}
}