package com.gk.hotwork.Controller.Base;
|
|
import cn.hutool.core.util.StrUtil;
|
import com.alibaba.fastjson.JSONObject;
|
import com.gk.hotwork.Config.Oauth2.IRedisService;
|
import com.gk.hotwork.Config.Oauth2.RedisKeyEnum;
|
import com.gk.hotwork.Domain.UserInfo;
|
import com.gk.hotwork.Domain.Utils.CommonUtil;
|
import com.gk.hotwork.Domain.Utils.Msg;
|
import com.google.common.net.HttpHeaders;
|
import io.jsonwebtoken.Claims;
|
import org.apache.log4j.Logger;
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpSession;
|
import java.io.IOException;
|
import java.io.PrintWriter;
|
|
public class BaseController {
|
|
protected static final Logger logger = Logger.getLogger(BaseController.class);
|
protected HttpServletRequest request;
|
protected HttpServletResponse response;
|
protected HttpSession session;
|
|
@Resource
|
IRedisService redisService;
|
|
@ModelAttribute
|
public void setReqAndResp(HttpServletRequest request, HttpServletResponse response){
|
this.request = request;
|
this.response = response;
|
this.session = request.getSession();
|
}
|
|
/**
|
* 输出信息到页面
|
* @param msg:要输出的信息(可以是js脚本等)
|
*/
|
public void printOutMsg(String msg){
|
try {
|
this.response.setCharacterEncoding("UTF-8");
|
this.response.setContentType("text/html;charset=utf-8");
|
PrintWriter out = null;
|
out = this.response.getWriter();
|
out.print(msg);
|
out.flush();
|
out.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 获取请求完整路径
|
* @param request
|
* @return
|
*/
|
public String getUrl(HttpServletRequest request){
|
String url = request.getRequestURI();
|
String params = "";
|
if(request.getQueryString()!=null){
|
params = request.getQueryString().toString();
|
}
|
if(!"".equals(params)){
|
url = url+"?"+params;
|
}
|
return url;
|
}
|
|
/**
|
* @Description: 获取用户
|
* @param
|
* @date 2021/3/23 14:36
|
*/
|
public UserInfo getUser() {
|
String token = this.request.getHeader(HttpHeaders.AUTHORIZATION);
|
//解析token
|
|
Claims claims = CommonUtil.parseJWT(token);
|
if (null != claims){
|
String tokenKey = StrUtil.format(RedisKeyEnum.AUTH_TOKEN.getKey(), claims.getId());
|
Object o = redisService.get(tokenKey);
|
if (o == null) {
|
return null;
|
}else{
|
JSONObject jo = JSONObject.parseObject(o.toString());
|
UserInfo user = new UserInfo();
|
user.setId(jo.getLong("id"));
|
user.setUsername(jo.getString("username"));
|
user.setRealname(jo.getString("realname"));
|
user.setType(jo.getInteger("type"));
|
user.setCompanyid(jo.getLong("companyid"));
|
user.setCompany(jo.getString("company"));
|
user.setProvince(jo.getString("province"));
|
user.setCity(jo.getString("city"));
|
user.setCounty(jo.getString("county"));
|
user.setProfessionalLevel(jo.getInteger("professionalLevel"));
|
user.setDepartment(jo.getLong("department"));
|
user.setDepartmentname(jo.getString("departmentname"));
|
return user;
|
}
|
}else{
|
return null;
|
}
|
|
}
|
|
public Msg success() {
|
Msg msg = new Msg();
|
msg.setCode("200");
|
msg.setMessage("success");
|
return msg;
|
}
|
|
public Msg failed(String errorMsg) {
|
Msg msg = new Msg();
|
msg.setCode("500");
|
msg.setMessage(errorMsg);
|
return msg;
|
}
|
|
public Msg success(Object object) {
|
Msg msg = new Msg();
|
msg.setCode("200");
|
msg.setMessage("success");
|
msg.setResult(object);
|
return msg;
|
}
|
}
|