Search in sources :

Example 1 with SysRolePermission

use of com.company.project.entity.SysRolePermission in project springboot-manager by aitangbao.

the class PermissionServiceImpl method deleted.

/**
 * 删除菜单权限
 * 判断是否 有角色关联
 * 判断是否有子集
 */
@Transactional(rollbackFor = Exception.class)
@Override
public void deleted(String permissionId) {
    // 获取关联userId
    List<String> userIds = getUserIdsById(permissionId);
    SysPermission sysPermission = sysPermissionMapper.selectById(permissionId);
    if (null == sysPermission) {
        log.error("传入 的 id:{}不合法", permissionId);
        throw new BusinessException(BaseResponseCode.DATA_ERROR);
    }
    // 获取下一级
    List<SysPermission> childs = sysPermissionMapper.selectList(Wrappers.<SysPermission>lambdaQuery().eq(SysPermission::getPid, permissionId));
    if (!CollectionUtils.isEmpty(childs)) {
        throw new BusinessException(BaseResponseCode.ROLE_PERMISSION_RELATION);
    }
    sysPermissionMapper.deleteById(permissionId);
    // 删除和角色关联
    rolePermissionService.remove(Wrappers.<SysRolePermission>lambdaQuery().eq(SysRolePermission::getPermissionId, permissionId));
    if (!CollectionUtils.isEmpty(userIds)) {
        // 刷新权限
        userIds.parallelStream().forEach(httpSessionService::refreshUerId);
    }
}
Also used : SysRolePermission(com.company.project.entity.SysRolePermission) BusinessException(com.company.project.common.exception.BusinessException) SysPermission(com.company.project.entity.SysPermission) Transactional(org.springframework.transaction.annotation.Transactional)

Example 2 with SysRolePermission

use of com.company.project.entity.SysRolePermission in project springboot-manager by aitangbao.

the class RolePermissionServiceImpl method addRolePermission.

@Override
public void addRolePermission(RolePermissionOperationReqVO vo) {
    List<SysRolePermission> list = new ArrayList<>();
    for (String permissionId : vo.getPermissionIds()) {
        SysRolePermission sysRolePermission = new SysRolePermission();
        sysRolePermission.setPermissionId(permissionId);
        sysRolePermission.setRoleId(vo.getRoleId());
        list.add(sysRolePermission);
    }
    this.remove(Wrappers.<SysRolePermission>lambdaQuery().eq(SysRolePermission::getRoleId, vo.getRoleId()));
    this.saveBatch(list);
}
Also used : SysRolePermission(com.company.project.entity.SysRolePermission) ArrayList(java.util.ArrayList)

Example 3 with SysRolePermission

use of com.company.project.entity.SysRolePermission in project springboot-manager by aitangbao.

the class RoleServiceImpl method detailInfo.

@Override
public SysRole detailInfo(String id) {
    SysRole sysRole = sysRoleMapper.selectById(id);
    if (sysRole == null) {
        log.error("传入 的 id:{}不合法", id);
        throw new BusinessException(BaseResponseCode.DATA_ERROR);
    }
    List<PermissionRespNode> permissionRespNodes = permissionService.selectAllByTree();
    LambdaQueryWrapper<SysRolePermission> queryWrapper = Wrappers.<SysRolePermission>lambdaQuery().select(SysRolePermission::getPermissionId).eq(SysRolePermission::getRoleId, sysRole.getId());
    Set<Object> checkList = new HashSet<>(rolePermissionService.listObjs(queryWrapper));
    setChecked(permissionRespNodes, checkList);
    sysRole.setPermissionRespNodes(permissionRespNodes);
    LambdaQueryWrapper<SysRoleDeptEntity> queryWrapperDept = Wrappers.<SysRoleDeptEntity>lambdaQuery().select(SysRoleDeptEntity::getDeptId).eq(SysRoleDeptEntity::getRoleId, sysRole.getId());
    List<DeptRespNodeVO> deptRespNodes = deptService.deptTreeList(null, true);
    Set<Object> checkDeptList = new HashSet<>(sysRoleDeptService.listObjs(queryWrapperDept));
    setCheckedDept(deptRespNodes, checkDeptList);
    sysRole.setDeptRespNodes(deptRespNodes);
    return sysRole;
}
Also used : SysRolePermission(com.company.project.entity.SysRolePermission) PermissionRespNode(com.company.project.vo.resp.PermissionRespNode) DeptRespNodeVO(com.company.project.vo.resp.DeptRespNodeVO) BusinessException(com.company.project.common.exception.BusinessException) SysRole(com.company.project.entity.SysRole) SysRoleDeptEntity(com.company.project.entity.SysRoleDeptEntity) HashSet(java.util.HashSet)

Example 4 with SysRolePermission

use of com.company.project.entity.SysRolePermission in project springboot-manager by aitangbao.

the class RoleServiceImpl method updateRole.

@Transactional(rollbackFor = Exception.class)
@Override
public void updateRole(SysRole vo) {
    SysRole sysRole = sysRoleMapper.selectById(vo.getId());
    if (null == sysRole) {
        log.error("传入 的 id:{}不合法", vo.getId());
        throw new BusinessException(BaseResponseCode.DATA_ERROR);
    }
    sysRoleMapper.updateById(vo);
    // 删除角色权限关联
    rolePermissionService.remove(Wrappers.<SysRolePermission>lambdaQuery().eq(SysRolePermission::getRoleId, sysRole.getId()));
    if (!CollectionUtils.isEmpty(vo.getPermissions())) {
        RolePermissionOperationReqVO reqVO = new RolePermissionOperationReqVO();
        reqVO.setRoleId(sysRole.getId());
        reqVO.setPermissionIds(vo.getPermissions());
        rolePermissionService.addRolePermission(reqVO);
        // 刷新权限
        httpSessionService.refreshRolePermission(sysRole.getId());
    }
}
Also used : SysRolePermission(com.company.project.entity.SysRolePermission) BusinessException(com.company.project.common.exception.BusinessException) SysRole(com.company.project.entity.SysRole) RolePermissionOperationReqVO(com.company.project.vo.req.RolePermissionOperationReqVO) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

SysRolePermission (com.company.project.entity.SysRolePermission)4 BusinessException (com.company.project.common.exception.BusinessException)3 SysRole (com.company.project.entity.SysRole)2 Transactional (org.springframework.transaction.annotation.Transactional)2 SysPermission (com.company.project.entity.SysPermission)1 SysRoleDeptEntity (com.company.project.entity.SysRoleDeptEntity)1 RolePermissionOperationReqVO (com.company.project.vo.req.RolePermissionOperationReqVO)1 DeptRespNodeVO (com.company.project.vo.resp.DeptRespNodeVO)1 PermissionRespNode (com.company.project.vo.resp.PermissionRespNode)1 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1