修改bug#40911
This commit is contained in:
+15
@@ -0,0 +1,15 @@
|
||||
package com.jero.common.service;
|
||||
|
||||
|
||||
public interface RolePermissionService {
|
||||
|
||||
/**
|
||||
* @Description 根据菜单权限code 判断当前用户是否有权限(true:全部数据,false:当前登录人数据)
|
||||
* @Author lqt
|
||||
* @Date 2021/10/24
|
||||
* @Param permission 菜单code
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
boolean getRolePermission(String permission);
|
||||
}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
package com.jero.common.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.common.RoleCommon;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.service.RolePermissionService;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.system.entity.SysPermission;
|
||||
import com.jero.modules.system.entity.SysRole;
|
||||
import com.jero.modules.system.entity.SysRolePermission;
|
||||
import com.jero.modules.system.service.ISysPermissionService;
|
||||
import com.jero.modules.system.service.ISysRolePermissionService;
|
||||
import com.jero.modules.system.service.ISysRoleService;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class RolePermissionServiceImpl implements RolePermissionService {
|
||||
|
||||
@Resource
|
||||
private ISysPermissionService sysPermissionService;
|
||||
@Resource
|
||||
private ISysRolePermissionService sysRolePermissionService;
|
||||
@Resource
|
||||
private ISysRoleService sysRoleService;
|
||||
|
||||
@Override
|
||||
public boolean getRolePermission(String permission) {
|
||||
if(StringUtils.isEmpty(permission)){
|
||||
throw new JeroBootException("菜单权限编码不能为空!");
|
||||
}
|
||||
LambdaQueryWrapper<SysPermission> querySysPermission = new LambdaQueryWrapper<>();
|
||||
querySysPermission.eq(SysPermission::getPerms,permission);
|
||||
List<SysPermission> listSysPermission = sysPermissionService.list(querySysPermission);
|
||||
if(CollectionUtils.isEmpty(listSysPermission)){
|
||||
throw new JeroBootException("菜单权限编码不存在!");
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<String> list = new ArrayList<>(Arrays.asList(sysUser.getRoleCode().split(",")));
|
||||
if(list.contains(RoleCommon.XMFZR)){
|
||||
list.remove(RoleCommon.XMFZR);
|
||||
}
|
||||
if(!CollectionUtils.isEmpty(list)){
|
||||
LambdaQueryWrapper<SysRole> querySysRole = new LambdaQueryWrapper<>();
|
||||
querySysRole.in(SysRole::getRoleCode,list);
|
||||
List<SysRole> listSysRole = sysRoleService.list(querySysRole);
|
||||
if(CollectionUtils.isEmpty(listSysRole)){
|
||||
return false;
|
||||
}
|
||||
|
||||
List<String> listRoleId = listSysRole.stream().map(SysRole::getId).collect(Collectors.toList());
|
||||
LambdaQueryWrapper<SysRolePermission> querySysRolePermission = new LambdaQueryWrapper<>();
|
||||
querySysRolePermission.in(SysRolePermission::getRoleId,listRoleId);
|
||||
querySysRolePermission.eq(SysRolePermission::getPermissionId,listSysPermission.get(0).getId());
|
||||
List<SysRolePermission> listSysRolePermission = sysRolePermissionService.list(querySysRolePermission);
|
||||
if(!CollectionUtils.isEmpty(listSysRolePermission)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user