update 优化 兼容部分用户不想给用户分配角色与部门的场景
This commit is contained in:
parent
96d57bd263
commit
4de45ce170
@ -19,7 +19,10 @@ import org.dromara.common.core.enums.LoginType;
|
|||||||
import org.dromara.common.core.enums.TenantStatus;
|
import org.dromara.common.core.enums.TenantStatus;
|
||||||
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;
|
||||||
import org.dromara.common.core.utils.*;
|
import org.dromara.common.core.utils.DateUtils;
|
||||||
|
import org.dromara.common.core.utils.MessageUtils;
|
||||||
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.log.event.LogininforEvent;
|
import org.dromara.common.log.event.LogininforEvent;
|
||||||
import org.dromara.common.mybatis.helper.DataPermissionHelper;
|
import org.dromara.common.mybatis.helper.DataPermissionHelper;
|
||||||
import org.dromara.common.redis.utils.RedisUtils;
|
import org.dromara.common.redis.utils.RedisUtils;
|
||||||
@ -155,9 +158,11 @@ public class SysLoginService {
|
|||||||
loginUser.setUserType(user.getUserType());
|
loginUser.setUserType(user.getUserType());
|
||||||
loginUser.setMenuPermission(permissionService.getMenuPermission(user.getUserId()));
|
loginUser.setMenuPermission(permissionService.getMenuPermission(user.getUserId()));
|
||||||
loginUser.setRolePermission(permissionService.getRolePermission(user.getUserId()));
|
loginUser.setRolePermission(permissionService.getRolePermission(user.getUserId()));
|
||||||
Opt<SysDeptVo> deptOpt = Opt.of(user.getDeptId()).map(deptService::selectDeptById);
|
if (ObjectUtil.isNotNull(user.getDeptId())) {
|
||||||
loginUser.setDeptName(deptOpt.map(SysDeptVo::getDeptName).orElse(StringUtils.EMPTY));
|
Opt<SysDeptVo> deptOpt = Opt.of(user.getDeptId()).map(deptService::selectDeptById);
|
||||||
loginUser.setDeptCategory(deptOpt.map(SysDeptVo::getDeptCategory).orElse(StringUtils.EMPTY));
|
loginUser.setDeptName(deptOpt.map(SysDeptVo::getDeptName).orElse(StringUtils.EMPTY));
|
||||||
|
loginUser.setDeptCategory(deptOpt.map(SysDeptVo::getDeptCategory).orElse(StringUtils.EMPTY));
|
||||||
|
}
|
||||||
List<SysRoleVo> roles = roleService.selectRolesByUserId(user.getUserId());
|
List<SysRoleVo> roles = roleService.selectRolesByUserId(user.getUserId());
|
||||||
loginUser.setRoles(BeanUtil.copyToList(roles, RoleDTO.class));
|
loginUser.setRoles(BeanUtil.copyToList(roles, RoleDTO.class));
|
||||||
return loginUser;
|
return loginUser;
|
||||||
|
@ -2,6 +2,7 @@ package org.dromara.system.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.common.core.utils.StreamUtils;
|
import org.dromara.common.core.utils.StreamUtils;
|
||||||
@ -38,6 +39,9 @@ public class SysDataScopeServiceImpl implements ISysDataScopeService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getRoleCustom(Long roleId) {
|
public String getRoleCustom(Long roleId) {
|
||||||
|
if (ObjectUtil.isNull(roleId)) {
|
||||||
|
return "-1";
|
||||||
|
}
|
||||||
List<SysRoleDept> list = roleDeptMapper.selectList(
|
List<SysRoleDept> list = roleDeptMapper.selectList(
|
||||||
new LambdaQueryWrapper<SysRoleDept>()
|
new LambdaQueryWrapper<SysRoleDept>()
|
||||||
.select(SysRoleDept::getDeptId)
|
.select(SysRoleDept::getDeptId)
|
||||||
@ -45,7 +49,7 @@ public class SysDataScopeServiceImpl implements ISysDataScopeService {
|
|||||||
if (CollUtil.isNotEmpty(list)) {
|
if (CollUtil.isNotEmpty(list)) {
|
||||||
return StreamUtils.join(list, rd -> Convert.toStr(rd.getDeptId()));
|
return StreamUtils.join(list, rd -> Convert.toStr(rd.getDeptId()));
|
||||||
}
|
}
|
||||||
return null;
|
return "-1";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -56,6 +60,9 @@ public class SysDataScopeServiceImpl implements ISysDataScopeService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getDeptAndChild(Long deptId) {
|
public String getDeptAndChild(Long deptId) {
|
||||||
|
if (ObjectUtil.isNull(deptId)) {
|
||||||
|
return "-1";
|
||||||
|
}
|
||||||
List<SysDept> deptList = deptMapper.selectList(new LambdaQueryWrapper<SysDept>()
|
List<SysDept> deptList = deptMapper.selectList(new LambdaQueryWrapper<SysDept>()
|
||||||
.select(SysDept::getDeptId)
|
.select(SysDept::getDeptId)
|
||||||
.apply(DataBaseHelper.findInSet(deptId, "ancestors")));
|
.apply(DataBaseHelper.findInSet(deptId, "ancestors")));
|
||||||
@ -64,7 +71,7 @@ public class SysDataScopeServiceImpl implements ISysDataScopeService {
|
|||||||
if (CollUtil.isNotEmpty(ids)) {
|
if (CollUtil.isNotEmpty(ids)) {
|
||||||
return StreamUtils.join(ids, Convert::toStr);
|
return StreamUtils.join(ids, Convert::toStr);
|
||||||
}
|
}
|
||||||
return null;
|
return "-1";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user