【7.3.0】【auth】登录增加一个菜单类型返回

pull/40/MERGE
fengshuonan 2022-10-25 16:54:01 +08:00
parent 271867f498
commit e3681d2bf2
3 changed files with 27 additions and 3 deletions

View File

@ -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 "";

View File

@ -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;

View File

@ -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