优化
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
package com.emotion.util;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 当前用户工具类
|
||||
* 提供便捷的方法获取当前登录用户信息
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-07-25
|
||||
*/
|
||||
@Slf4j
|
||||
public class CurrentUserUtil {
|
||||
|
||||
/**
|
||||
* 获取当前用户ID
|
||||
*
|
||||
* @return 当前用户ID,如果未登录则返回null
|
||||
*/
|
||||
public static String getCurrentUserId() {
|
||||
return UserContextHolder.getCurrentUserId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前用户名
|
||||
*
|
||||
* @return 当前用户名,如果未登录则返回null
|
||||
*/
|
||||
public static String getCurrentUsername() {
|
||||
return UserContextHolder.getCurrentUsername();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前用户Token
|
||||
*
|
||||
* @return 当前用户Token,如果未登录则返回null
|
||||
*/
|
||||
public static String getCurrentToken() {
|
||||
return UserContextHolder.getCurrentToken();
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查当前是否有用户登录
|
||||
*
|
||||
* @return 是否有用户登录
|
||||
*/
|
||||
public static boolean isUserLoggedIn() {
|
||||
return UserContextHolder.hasUserContext();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前用户ID,如果未登录则抛出异常
|
||||
*
|
||||
* @return 当前用户ID
|
||||
* @throws IllegalStateException 如果用户未登录
|
||||
*/
|
||||
public static String requireCurrentUserId() {
|
||||
String userId = getCurrentUserId();
|
||||
if (userId == null || userId.trim().isEmpty()) {
|
||||
throw new IllegalStateException("用户未登录或认证失败");
|
||||
}
|
||||
return userId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前用户名,如果未登录则抛出异常
|
||||
*
|
||||
* @return 当前用户名
|
||||
* @throws IllegalStateException 如果用户未登录
|
||||
*/
|
||||
public static String requireCurrentUsername() {
|
||||
String username = getCurrentUsername();
|
||||
if (username == null || username.trim().isEmpty()) {
|
||||
throw new IllegalStateException("用户未登录或认证失败");
|
||||
}
|
||||
return username;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前用户上下文摘要信息
|
||||
*
|
||||
* @return 用户上下文摘要
|
||||
*/
|
||||
public static String getContextSummary() {
|
||||
return UserContextHolder.getContextSummary();
|
||||
}
|
||||
}
|
||||
@@ -37,6 +37,11 @@ public class UserContextHolder {
|
||||
*/
|
||||
private static final ThreadLocal<String> REQUEST_ID_HOLDER = new ThreadLocal<>();
|
||||
|
||||
/**
|
||||
* Token线程本地变量
|
||||
*/
|
||||
private static final ThreadLocal<String> TOKEN_HOLDER = new ThreadLocal<>();
|
||||
|
||||
/**
|
||||
* 设置当前用户ID
|
||||
*
|
||||
@@ -125,12 +130,31 @@ public class UserContextHolder {
|
||||
|
||||
/**
|
||||
* 获取请求ID
|
||||
*
|
||||
*
|
||||
* @return 请求ID
|
||||
*/
|
||||
public static String getRequestId() {
|
||||
return REQUEST_ID_HOLDER.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置当前Token
|
||||
*
|
||||
* @param token Token
|
||||
*/
|
||||
public static void setCurrentToken(String token) {
|
||||
TOKEN_HOLDER.set(token);
|
||||
log.debug("设置当前Token: {}", token != null ? "***" : null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前Token
|
||||
*
|
||||
* @return Token
|
||||
*/
|
||||
public static String getCurrentToken() {
|
||||
return TOKEN_HOLDER.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置用户上下文信息
|
||||
@@ -188,6 +212,13 @@ public class UserContextHolder {
|
||||
REQUEST_ID_HOLDER.remove();
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除当前Token
|
||||
*/
|
||||
public static void clearToken() {
|
||||
TOKEN_HOLDER.remove();
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除所有用户上下文信息
|
||||
*/
|
||||
@@ -197,6 +228,7 @@ public class UserContextHolder {
|
||||
clearUserType();
|
||||
clearClientIp();
|
||||
clearRequestId();
|
||||
clearToken();
|
||||
log.debug("清除所有用户上下文信息");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user