diff --git a/src/main/java/com/xdap/self_development/controller/PermissionController.java b/src/main/java/com/xdap/self_development/controller/PermissionController.java index cf51e5d..146cb93 100644 --- a/src/main/java/com/xdap/self_development/controller/PermissionController.java +++ b/src/main/java/com/xdap/self_development/controller/PermissionController.java @@ -83,4 +83,13 @@ public class PermissionController { permissionService.deleteRole(roleId); return Response.ok().setMessage("删除角色成功"); } + + // 根据用户查询权限 + @GetMapping("/selectPermByUserId") + public Response selectPermByUserId( + @NotBlank String userId + ) { + List permissions = permissionService.selectPermissionByUser(userId); + return Response.ok().data(permissions); + } } diff --git a/src/main/java/com/xdap/self_development/service/PermissionService.java b/src/main/java/com/xdap/self_development/service/PermissionService.java index 99bcf28..a1841cf 100644 --- a/src/main/java/com/xdap/self_development/service/PermissionService.java +++ b/src/main/java/com/xdap/self_development/service/PermissionService.java @@ -21,4 +21,6 @@ public interface PermissionService { void updateRole(@Valid UpdateRoleForm form); void deleteRole(@NotBlank String roleId); + + List selectPermissionByUser(String userId); } diff --git a/src/main/java/com/xdap/self_development/service/impl/PermissionServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/PermissionServiceImpl.java index 2acb189..1b9dd2c 100644 --- a/src/main/java/com/xdap/self_development/service/impl/PermissionServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/PermissionServiceImpl.java @@ -12,11 +12,14 @@ import com.xdap.self_development.pojo.RoleAndPermissions; import com.xdap.self_development.pojo.UserAndRoles; import com.xdap.self_development.pojo.view.UserRoleAndPermissionView; import com.xdap.self_development.service.PermissionService; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -140,4 +143,31 @@ public class PermissionServiceImpl implements PermissionService { // 删除角色 bd.getBusinessDatabase().eq("id", roleId).doDelete(Role.class); } + + @Override + public List selectPermissionByUser(String userId) { + if (StringUtils.isEmpty(userId)) { + throw new RuntimeException("请传入用户"); + } + //查询用户所拥有的角色 + List userAndRoleIds = bd.getBusinessDatabase() + .eq("user_id", userId) + .doQuery(UserAndRoles.class); + if (ObjectUtils.isNotEmpty(userAndRoleIds)) { + List roleIds = userAndRoleIds.stream().map(x -> x.getRoleId()).collect(Collectors.toList()); + //查询角色权限 + List roleAndPermissions = bd.getBusinessDatabase() + .in("role_id", roleIds) + .doQuery(RoleAndPermissions.class); + if (ObjectUtils.isEmpty(roleAndPermissions)) { + throw new RuntimeException("该角色没有分配权限"); + } + List permissionIds = roleAndPermissions.stream().map(x -> x.getPermissionId()).collect(Collectors.toList()); + //组装返回 + return bd.getBusinessDatabase() + .in("id", permissionIds) + .doQuery(Permission.class); + } + return Collections.emptyList(); + } }