use of com.jun.plugin.system.entity.SysPermission in project jun_springboot_api_service by wujun728.
the class PermissionController method updatePermission.
@PutMapping("/permission")
@ApiOperation(value = "更新菜单权限接口")
@LogAnnotation(title = "菜单权限管理", action = "更新菜单权限")
@RequiresPermissions("sys:permission:update")
public DataResult updatePermission(@RequestBody @Valid SysPermission vo) {
if (StringUtils.isEmpty(vo.getId())) {
return DataResult.fail("id不能为空");
}
SysPermission sysPermission = permissionService.getById(vo.getId());
if (null == sysPermission) {
throw new BusinessException(BaseResponseCode.DATA_ERROR);
}
// 只有类型变更或者所属菜单变更
if (sysPermission.getType().equals(vo.getType()) || !sysPermission.getPid().equals(vo.getPid())) {
verifyFormPid(vo);
}
permissionService.updatePermission(vo);
return DataResult.success();
}
use of com.jun.plugin.system.entity.SysPermission in project jun_springboot_api_service by wujun728.
the class PermissionServiceImpl method selectAllMenuByTree.
/**
* 获取所有的目录菜单树排除按钮
* 因为不管是新增或者修改
* 选择所属菜单目录的时候
* 都不可能选择到按钮
* 而且编辑的时候 所属目录不能
* 选择自己和它的子类
*/
@Override
public List<PermissionRespNode> selectAllMenuByTree(String permissionId) {
List<SysPermission> list = selectAll();
if (!CollectionUtils.isEmpty(list) && !StringUtils.isEmpty(permissionId)) {
for (SysPermission sysPermission : list) {
if (sysPermission.getId().equals(permissionId)) {
list.remove(sysPermission);
break;
}
}
}
List<PermissionRespNode> result = new ArrayList<>();
// 新增顶级目录是为了方便添加一级目录
PermissionRespNode respNode = new PermissionRespNode();
respNode.setId("0");
respNode.setTitle("默认顶级菜单");
respNode.setSpread(true);
respNode.setChildren(getTree(list, true));
result.add(respNode);
return result;
}
use of com.jun.plugin.system.entity.SysPermission in project jun_springboot_api_service by wujun728.
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);
}
}
use of com.jun.plugin.system.entity.SysPermission in project jun_springboot_api_service by wujun728.
the class PermissionServiceImpl method getChildExcBtn.
/**
* 只递归获取目录和菜单
*/
private List<PermissionRespNode> getChildExcBtn(String id, List<SysPermission> all) {
List<PermissionRespNode> list = new ArrayList<>();
for (SysPermission sysPermission : all) {
if (sysPermission.getPid().equals(id) && sysPermission.getType() != 3) {
PermissionRespNode permissionRespNode = new PermissionRespNode();
BeanUtils.copyProperties(sysPermission, permissionRespNode);
permissionRespNode.setTitle(sysPermission.getName());
permissionRespNode.setChildren(getChildExcBtn(sysPermission.getId(), all));
list.add(permissionRespNode);
}
}
return list;
}
use of com.jun.plugin.system.entity.SysPermission in project jun_springboot_api_service by wujun728.
the class PermissionServiceImpl method getPermissionsByUserId.
/**
* 获取权限标识
*/
@Override
public Set<String> getPermissionsByUserId(String userId) {
List<SysPermission> list = getPermission(userId);
Set<String> permissions = new HashSet<>();
if (CollectionUtils.isEmpty(list)) {
return null;
}
for (SysPermission sysPermission : list) {
if (!StringUtils.isEmpty(sysPermission.getPerms())) {
permissions.add(sysPermission.getPerms());
}
}
return permissions;
}
Aggregations