update 优化 getLoginUser 方法 支持返回多种类型登陆实体

This commit is contained in:
疯狂的狮子Li 2025-03-07 15:05:08 +08:00
parent 279c8e014a
commit 7adf702283
2 changed files with 13 additions and 6 deletions

View File

@ -17,6 +17,7 @@ import org.dromara.common.core.constant.TenantConstants;
import org.dromara.common.core.domain.dto.PostDTO; import org.dromara.common.core.domain.dto.PostDTO;
import org.dromara.common.core.domain.dto.RoleDTO; import org.dromara.common.core.domain.dto.RoleDTO;
import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.domain.model.XcxLoginUser;
import org.dromara.common.core.enums.LoginType; import org.dromara.common.core.enums.LoginType;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.exception.user.UserException; import org.dromara.common.core.exception.user.UserException;
@ -109,7 +110,7 @@ public class SysLoginService {
*/ */
public void logout() { public void logout() {
try { try {
LoginUser loginUser = LoginHelper.getLoginUser(); XcxLoginUser loginUser = LoginHelper.getLoginUser();
if (ObjectUtil.isNull(loginUser)) { if (ObjectUtil.isNull(loginUser)) {
return; return;
} }

View File

@ -63,23 +63,25 @@ public class LoginHelper {
/** /**
* 获取用户(多级缓存) * 获取用户(多级缓存)
*/ */
public static LoginUser getLoginUser() { @SuppressWarnings("unchecked cast")
public static <T> T getLoginUser() {
SaSession session = StpUtil.getTokenSession(); SaSession session = StpUtil.getTokenSession();
if (ObjectUtil.isNull(session)) { if (ObjectUtil.isNull(session)) {
return null; return null;
} }
return (LoginUser) session.get(LOGIN_USER_KEY); return (T) session.get(LOGIN_USER_KEY);
} }
/** /**
* 获取用户基于token * 获取用户基于token
*/ */
public static LoginUser getLoginUser(String token) { @SuppressWarnings("unchecked cast")
public static <T> T getLoginUser(String token) {
SaSession session = StpUtil.getTokenSessionByToken(token); SaSession session = StpUtil.getTokenSessionByToken(token);
if (ObjectUtil.isNull(session)) { if (ObjectUtil.isNull(session)) {
return null; return null;
} }
return (LoginUser) session.get(LOGIN_USER_KEY); return (T) session.get(LOGIN_USER_KEY);
} }
/** /**
@ -191,7 +193,11 @@ public class LoginHelper {
* @return 结果 * @return 结果
*/ */
public static boolean isTenantAdmin() { public static boolean isTenantAdmin() {
return Convert.toBool(isTenantAdmin(getLoginUser().getRolePermission())); LoginUser loginUser = getLoginUser();
if (loginUser == null) {
return false;
}
return Convert.toBool(isTenantAdmin(loginUser.getRolePermission()));
} }
/** /**