package com.example.security; import lombok.Data; @Data public class UserContext { private Long userId; private String username; private String deptCode; private static final ThreadLocal CONTEXT = new ThreadLocal<>(); public static void setUserContext(UserContext userContext) { CONTEXT.set(userContext); } public static UserContext getUserContext() { return CONTEXT.get(); } public static void clear() { CONTEXT.remove(); } public static Long getCurrentUserId() { UserContext context = getUserContext(); return context != null ? context.getUserId() : null; } public static String getCurrentDeptCode() { UserContext context = getUserContext(); return context != null ? context.getDeptCode() : null; } public static String getCurrentUsername() { UserContext context = getUserContext(); return context != null ? context.getUsername() : null; } }