
com.diboot.framework.utils.BaseHelper Maven / Gradle / Ivy
The newest version!
package com.diboot.framework.utils;
import com.diboot.framework.model.BaseUser;
import com.diboot.framework.model.JsonResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
/***
* 应用通用帮助类
* @author [email protected]
* @version 20161107
*
*/
public class BaseHelper {
private static final Logger logger = LoggerFactory.getLogger(BaseHelper.class);
/**
* 得到当前登录的用户名
* @return
*/
public static T getCurrentUser(){
try{
Subject subject = SecurityUtils.getSubject();
if(subject != null && subject.isAuthenticated()){
return (T)subject.getPrincipal();
}
}
catch (Exception e){
logger.warn("获取用户信息异常", e);
}
return null;
}
/**
* 得到当前登录的用户id
* @return
*/
public static Long getCurrentUserId(){
BaseUser user = getCurrentUser();
if(user != null){
return (Long)user.getId();
}
if(logger.isDebugEnabled()){
logger.warn("无法获取当前用户Id!");
}
return null;
}
/**
* 是否来自微信
* @param request
* @return
*/
public static boolean isFromWechat(HttpServletRequest request){
String userAgent = request.getHeader("user-agent").toLowerCase();
return V.notEmpty(userAgent) && userAgent.contains("micromessenger");
}
/***
* 是否为AJAX请求
* @param request
* @return
*/
public static boolean isAjaxRequest(HttpServletRequest request){
String header = request.getHeader("X-Requested-With");
if (V.notEmpty(header) && "XMLHttpRequest".equals(header)){
return true;
}
return false;
}
/**
* 获取Session中的对象
* @param request
* @param key
* @return
*/
public static Object getSessionObj(HttpServletRequest request, String key){
HttpSession session = request.getSession(false);
if(session != null && session.getAttribute(key) != null){
return session.getAttribute(key);
}
return null;
}
/***
* 获取请求URI (去除contextPath)
* @param request
* @return
*/
public static String getRequestMappingURI(HttpServletRequest request){
String contextPath = request.getContextPath();
if(V.notEmpty(contextPath)){
return S.replace(request.getRequestURI(), contextPath, "");
}
return request.getRequestURI();
}
/***
* 返回json格式错误信息
* @param response
* @param jsonResult
*/
public static void responseJson(HttpServletResponse response, JsonResult jsonResult){
// 处理异步请求
PrintWriter pw = null;
try {
response.setStatus(HttpStatus.OK.value());
response.setContentType(MediaType.APPLICATION_JSON_UTF8_VALUE);
pw = response.getWriter();
pw.write(JSON.stringify(jsonResult));
pw.flush();
}
catch (IOException e) {
logger.error("处理异步请求异常", e);
}
finally {
if (pw != null) {
pw.close();
}
}
}
/***
* 转换key-value对的List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy