mirror of https://gitee.com/stylefeng/roses
【7.3.0】【auth】登录增加一个菜单类型返回
parent
271867f498
commit
e3681d2bf2
|
@ -174,6 +174,12 @@ public class LoginUser implements Serializable {
|
|||
@ChineseDescription("是否是C端用户")
|
||||
private Boolean customerFlag = false;
|
||||
|
||||
/**
|
||||
* 用户拥有的菜单类型:1-前台 ,2-后台,3-所有
|
||||
*/
|
||||
@ChineseDescription("用户拥有的菜单类型:1-前台 ,2-后台,3-所有")
|
||||
private Integer menuType;
|
||||
|
||||
public String getWsUrl() {
|
||||
if (ObjectUtil.isEmpty(this.wsUrl)) {
|
||||
return "";
|
||||
|
|
|
@ -31,6 +31,7 @@ import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo;
|
|||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo;
|
||||
import cn.stylefeng.roses.kernel.auth.api.prop.LoginUserPropExpander;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.login.CurrentUserInfoResponse;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.organization.DataScopeDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO;
|
||||
|
@ -59,6 +60,7 @@ public class UserLoginInfoFactory {
|
|||
* @param userOrgInfo 组织机构信息
|
||||
* @param resourceUrlsListByCodes 用户的所有资源url
|
||||
* @param roleButtonCodes 用户的所拥有的按钮编码
|
||||
* @param userMenuType 用户的菜单类型
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/26 17:53
|
||||
*/
|
||||
|
@ -67,7 +69,8 @@ public class UserLoginInfoFactory {
|
|||
DataScopeDTO dataScopeResponse,
|
||||
SysUserOrgDTO userOrgInfo,
|
||||
Set<String> resourceUrlsListByCodes,
|
||||
Set<String> roleButtonCodes) {
|
||||
Set<String> roleButtonCodes,
|
||||
AntdvFrontTypeEnum userMenuType) {
|
||||
|
||||
UserLoginInfoDTO userLoginInfoDTO = new UserLoginInfoDTO();
|
||||
|
||||
|
@ -129,6 +132,9 @@ public class UserLoginInfoFactory {
|
|||
// 设置用户的登录时间
|
||||
loginUser.setLoginTime(new Date());
|
||||
|
||||
// 设置登录用户的菜单类型
|
||||
loginUser.setMenuType(userMenuType.getCode());
|
||||
|
||||
// 响应dto
|
||||
userLoginInfoDTO.setLoginUser(loginUser);
|
||||
return userLoginInfoDTO;
|
||||
|
|
|
@ -56,6 +56,7 @@ import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
|||
import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory;
|
||||
import cn.stylefeng.roses.kernel.system.api.*;
|
||||
import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.enums.DevopsCheckStatusEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.enums.UserStatusEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
|
||||
|
@ -64,6 +65,7 @@ import cn.stylefeng.roses.kernel.system.api.expander.SystemConfigExpander;
|
|||
import cn.stylefeng.roses.kernel.system.api.pojo.organization.DataScopeDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.organization.HrOrganizationDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.organization.HrPositionDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.RoleAuthorizeInfo;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.*;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.request.OnlineUserRequest;
|
||||
|
@ -159,6 +161,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
@Resource(name = "loginErrorCountCacheApi")
|
||||
private CacheOperatorApi<Integer> loginErrorCountCacheApi;
|
||||
|
||||
@Resource
|
||||
private MenuServiceApi menuServiceApi;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void add(SysUserRequest sysUserRequest) {
|
||||
|
@ -768,15 +773,22 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
// 4. 获取用户的组织机构和职位信息
|
||||
SysUserOrgDTO userOrgInfo = sysUserOrgService.getUserOrgByUserId(userId);
|
||||
|
||||
// 获取角色相关的菜单按钮和资源信息
|
||||
RoleAuthorizeInfo roleAuthorizeInfo = roleServiceApi.getRoleAuthorizeInfo(roleIds);
|
||||
|
||||
// 4.1 获取用户拥有什么类型的菜单id
|
||||
List<Long> menuIdList = roleAuthorizeInfo.getMenuIdList();
|
||||
AntdvFrontTypeEnum userMenuType = menuServiceApi.getUserMenuType(menuIdList);
|
||||
|
||||
// 5. 获取用户的所有资源url
|
||||
Set<String> resourceCodeList = roleServiceApi.getRoleResourceCodeList(roleIds);
|
||||
Set<String> resourceCodeList = roleAuthorizeInfo.getResourceCodeList();
|
||||
Set<String> resourceUrlsListByCodes = resourceServiceApi.getResourceUrlsListByCodes(resourceCodeList);
|
||||
|
||||
// 6. 获取用户的所有按钮code集合
|
||||
Set<String> roleButtonCodes = roleServiceApi.getRoleButtonCodes(roleIds);
|
||||
|
||||
// 7. 组装响应结果
|
||||
return UserLoginInfoFactory.userLoginInfoDTO(sysUser, roleResponseList, dataScopeResponse, userOrgInfo, resourceUrlsListByCodes, roleButtonCodes);
|
||||
return UserLoginInfoFactory.userLoginInfoDTO(sysUser, roleResponseList, dataScopeResponse, userOrgInfo, resourceUrlsListByCodes, roleButtonCodes, userMenuType);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue