mirror of
https://gitee.com/bookshelfplus/bookshelfplus
synced 2025-09-21 01:10:39 +08:00
89 lines
3.2 KiB
Java
89 lines
3.2 KiB
Java
package plus.bookshelf.Controller.Controller;
|
|
|
|
import com.aventrix.jnanoid.jnanoid.NanoIdUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
import plus.bookshelf.Common.SessionManager.RedisSessionManager;
|
|
import plus.bookshelf.Common.SessionManager.SessionManager;
|
|
import plus.bookshelf.Service.Model.UserModel;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
public class BaseController {
|
|
|
|
@Autowired
|
|
HttpServletRequest httpServletRequest;
|
|
|
|
@Autowired
|
|
RedisTemplate redisTemplate;
|
|
|
|
// content-type 常量
|
|
public static final String CONTENT_TYPE_FORMED = "application/x-www-form-urlencoded";
|
|
|
|
// PageHelper分页常量
|
|
public static final Integer COMMON_START_PAGE = 1;
|
|
public static final Integer COMMON_PAGE_SIZE = 10;
|
|
|
|
/**
|
|
* 获取用户登陆状态
|
|
*/
|
|
public Boolean isLogin() {
|
|
SessionManager sessionManager = RedisSessionManager.getInstance(redisTemplate);
|
|
return (Boolean) sessionManager.getValue("IS_LOGIN");
|
|
|
|
// SessionManager sessionManager = LocalSessionManager.getInstance(httpServletRequest);
|
|
// return (Boolean) sessionManager.getValue("IS_LOGIN");
|
|
}
|
|
|
|
/**
|
|
* 保存用户的登录状态
|
|
*
|
|
* @return String uuidToken
|
|
*/
|
|
public String onLogin(UserModel userModel) {
|
|
String token = NanoIdUtils.randomNanoId(); // UUID.randomUUID().toString();
|
|
SessionManager sessionManager = RedisSessionManager.getInstance(redisTemplate);
|
|
sessionManager.setValue(token, userModel.getId());
|
|
return token;
|
|
|
|
// SessionManager sessionManager = LocalSessionManager.getInstance(httpServletRequest);
|
|
// sessionManager.setValue("IS_LOGIN", true);
|
|
// sessionManager.setValue("user", userModel);
|
|
// return;
|
|
}
|
|
|
|
/**
|
|
* 用户退出登录
|
|
*/
|
|
public void onLogout(String token) {
|
|
SessionManager sessionManager = RedisSessionManager.getInstance(redisTemplate);
|
|
sessionManager.remove(token);
|
|
return;
|
|
|
|
// SessionManager sessionManager = LocalSessionManager.getInstance(httpServletRequest);
|
|
// sessionManager.setValue("IS_LOGIN", false);
|
|
// sessionManager.remove("user");
|
|
// return;
|
|
}
|
|
|
|
// // 定义ExceptionHandler解决未被Controller层吸收的Exception
|
|
// @ExceptionHandler(Exception.class)
|
|
// @ResponseStatus(HttpStatus.OK)
|
|
// @ResponseBody
|
|
// public Object handlerException(HttpServletRequest request, Exception ex) {
|
|
// HashMap<Object, Object> responseData = new HashMap<>();
|
|
//
|
|
// if (ex instanceof BusinessException) {
|
|
// BusinessException businessException = (BusinessException) ex;
|
|
// responseData.put("errCode", businessException.getErrCode());
|
|
// responseData.put("errMsg", businessException.getErrMsg());
|
|
// } else {
|
|
// // 生产环境输出格式化信息
|
|
// responseData.put("errCode", BusinessErrorCode.UNKNOWN_ERROR.getErrCode());
|
|
// responseData.put("errMsg", BusinessErrorCode.UNKNOWN_ERROR.getErrMsg());
|
|
// }
|
|
//
|
|
// return CommonReturnType.create(responseData, CommonReturnTypeStatus.FAILED);
|
|
// }
|
|
}
|