forked from github/cool-admin-java
feat: 部门和角色添加启用/停用状态,停用角色不参与权限计算
This commit is contained in:
@@ -24,7 +24,9 @@ public class BaseSysDepartmentEntity extends BaseEntity<BaseSysDepartmentEntity>
|
||||
@ColumnDefine(comment = "排序", defaultValue = "0")
|
||||
private Integer orderNum;
|
||||
|
||||
// 父菜单名称
|
||||
@ColumnDefine(comment = "状态 0:禁用 1:启用", defaultValue = "1")
|
||||
private Integer status;
|
||||
|
||||
@Column(ignore = true)
|
||||
private String parentName;
|
||||
}
|
||||
|
||||
@@ -30,6 +30,9 @@ public class BaseSysRoleEntity extends BaseEntity<BaseSysRoleEntity> {
|
||||
@ColumnDefine(comment = "备注")
|
||||
private String remark;
|
||||
|
||||
@ColumnDefine(comment = "状态 0:禁用 1:启用", defaultValue = "1")
|
||||
private Integer status;
|
||||
|
||||
@ColumnDefine(comment = "数据权限是否关联上下级", defaultValue = "1")
|
||||
private Integer relevance;
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@ public class BaseSysPermsServiceImpl implements BaseSysPermsService {
|
||||
|
||||
final private BaseSysRoleMenuMapper baseSysRoleMenuMapper;
|
||||
|
||||
final private BaseSysRoleMapper baseSysRoleMapper;
|
||||
|
||||
final private BaseSysRoleDepartmentMapper baseSysRoleDepartmentMapper;
|
||||
|
||||
final private BaseSysDepartmentMapper baseSysDepartmentMapper;
|
||||
@@ -114,7 +116,14 @@ public class BaseSysPermsServiceImpl implements BaseSysPermsService {
|
||||
if (!userEntity.getUsername().equals("admin")) {
|
||||
List<BaseSysUserRoleEntity> list = baseSysUserRoleMapper
|
||||
.selectListByQuery(QueryWrapper.create().eq(BaseSysUserRoleEntity::getUserId, userEntity.getId()));
|
||||
roleIds = list.stream().map(BaseSysUserRoleEntity::getRoleId).toArray(Long[]::new);
|
||||
List<Long> activeRoleIds = new ArrayList<>();
|
||||
for (BaseSysUserRoleEntity userRole : list) {
|
||||
BaseSysRoleEntity role = baseSysRoleMapper.selectOneById(userRole.getRoleId());
|
||||
if (role != null && role.getStatus() != 0) {
|
||||
activeRoleIds.add(userRole.getRoleId());
|
||||
}
|
||||
}
|
||||
roleIds = activeRoleIds.toArray(Long[]::new);
|
||||
if (Arrays.asList(roleIds).contains(1L)) {
|
||||
roleIds = null;
|
||||
}
|
||||
|
||||
@@ -82,6 +82,9 @@ public class BaseSysRoleServiceImpl extends BaseServiceImpl<BaseSysRoleMapper, B
|
||||
} else {
|
||||
baseSysPermsService.updatePerms(baseSysRoleEntity.getId(), requestParams.get("menuIdList", Long[].class),
|
||||
requestParams.get("departmentIdList", Long[].class));
|
||||
if (baseSysRoleEntity.getStatus() != null && baseSysRoleEntity.getStatus() == 0) {
|
||||
baseSysPermsService.refreshPermsByRoleId(baseSysRoleEntity.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user