全局登录态处理
This commit is contained in:
@@ -1,30 +0,0 @@
|
||||
package com.cool.store.context;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class CurrentUserContext {
|
||||
|
||||
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
|
||||
|
||||
public static CurrentUser getUser() {
|
||||
String userStr = contextHolder.get();
|
||||
if (StringUtils.isNotBlank(userStr)) {
|
||||
return JSON.parseObject(userStr, CurrentUser.class);
|
||||
}
|
||||
return new CurrentUser();
|
||||
}
|
||||
|
||||
public static void setUser(String user) {
|
||||
contextHolder.set(user);
|
||||
}
|
||||
|
||||
public static void removeUser(){
|
||||
contextHolder.remove();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.cool.store.context;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.cool.store.entity.SysRoleDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import org.apache.commons.lang3.SerializationException;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 当前登录用户信息
|
||||
*/
|
||||
public class CurrentUserHolder {
|
||||
|
||||
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
|
||||
|
||||
public static LoginUserInfo getUser() {
|
||||
String userStr = contextHolder.get();
|
||||
if (StringUtils.isNotBlank(userStr)) {
|
||||
return JSON.parseObject(userStr, LoginUserInfo.class);
|
||||
}
|
||||
return new LoginUserInfo();
|
||||
}
|
||||
|
||||
public static void setUser(String user) {
|
||||
contextHolder.set(user);
|
||||
}
|
||||
|
||||
public static void removeUser(){
|
||||
contextHolder.remove();
|
||||
}
|
||||
|
||||
/**
|
||||
* 仅登录态可获取
|
||||
* @return
|
||||
*/
|
||||
public static String getUserId(){
|
||||
LoginUserInfo user = getUser();
|
||||
return Optional.ofNullable(user).map(o->o.getUserId()).orElseThrow(()->new ServiceException(ErrorCodeEnum.ACCESS_TOKEN_INVALID));
|
||||
}
|
||||
|
||||
/**
|
||||
* 仅登录态可获取
|
||||
* @return
|
||||
*/
|
||||
public static String getRoleId(){
|
||||
LoginUserInfo user = getUser();
|
||||
return Optional.ofNullable(user).map(LoginUserInfo::getSysRole).map(SysRoleDO::getRoleId).orElse(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.cool.store.entity.SysRoleDO;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CurrentUser {
|
||||
public class LoginUserInfo {
|
||||
|
||||
private String userId;
|
||||
|
||||
@@ -29,5 +29,5 @@ public class CurrentUser {
|
||||
*/
|
||||
private String avatar;
|
||||
|
||||
private SysRoleDO sysRoleDO;
|
||||
private SysRoleDO sysRole;
|
||||
}
|
||||
@@ -12,5 +12,11 @@ import java.util.List;
|
||||
*/
|
||||
public interface MenuService {
|
||||
|
||||
List<MenuTreeVO> getUserMenus(String userId);
|
||||
/**
|
||||
* 获取用户某个角色的菜单
|
||||
* @param userId
|
||||
* @param roleId
|
||||
* @return
|
||||
*/
|
||||
List<MenuTreeVO> getUserMenus(String userId, String roleId);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.context.CurrentUser;
|
||||
import com.cool.store.context.LoginUserInfo;
|
||||
import com.cool.store.context.DataSourceContext;
|
||||
import com.cool.store.dao.*;
|
||||
import com.cool.store.dto.login.RefreshUser;
|
||||
@@ -51,7 +50,7 @@ public class LoginServiceImpl implements LoginService {
|
||||
if (StringUtils.isEmpty(userId)) {
|
||||
throw new ServiceException(ErrorCodeEnum.USER_NOT_EXIST);
|
||||
}
|
||||
CurrentUser currentUser = new CurrentUser();
|
||||
LoginUserInfo currentUser = new LoginUserInfo();
|
||||
RefreshUser refreshUser = new RefreshUser();
|
||||
// 查企业用户
|
||||
EnterpriseUserDO enterpriseUser = enterpriseUserDAO.getUserInfoById(userId);
|
||||
@@ -76,7 +75,7 @@ public class LoginServiceImpl implements LoginService {
|
||||
enterpriseUser.setFaceUrl(finalAvatar);
|
||||
currentUser.setUserId(enterpriseUser.getUserId());
|
||||
currentUser.setIsAdmin(enterpriseUser.getIsAdmin());
|
||||
currentUser.setSysRoleDO(sysRole);
|
||||
currentUser.setSysRole(sysRole);
|
||||
currentUser.setCorpId(corpId);
|
||||
currentUser.setAvatar(enterpriseUser.getAvatar());
|
||||
//生成令牌
|
||||
|
||||
@@ -24,7 +24,7 @@ public class MenuServiceImpl implements MenuService {
|
||||
private SysMenuDAO sysMenuDAO;
|
||||
|
||||
@Override
|
||||
public List<MenuTreeVO> getUserMenus(String userId) {
|
||||
public List<MenuTreeVO> getUserMenus(String userId, String roleId) {
|
||||
List<SysMenuDO> menuList= sysMenuDAO.selectMenuAll(null, PlatFormTypeEnum.PC.getCode());
|
||||
return MenuTreeVO.dealMenuTree(CommonConstants.ZERO_LONG, menuList);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user