diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RolesController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RolesController.java index bc904b1..70bacea 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RolesController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RolesController.java @@ -464,6 +464,87 @@ public class RolesController extends BaseController { } + + /** + * 获取用户角色列表 + */ + @RequestMapping(value = "/currentUserRoles", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public FrontEndResult getCurrentUserRoleList(HttpServletResponse response, HttpServletRequest request, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "orgIds", required = false) String orgIds, + @RequestParam(value = "enable", required = false) Integer enable) { + + limit = 200; + page = page == null ? 1 : page; + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + RolesQuery rolesQuery = new RolesQuery(); + rolesQuery.setNeed("true"); + rolesQuery.setSort("modified desc"); + rolesQuery.setYn(YnEnums.YES.getId()); + rolesQuery.setType(1); + rolesQuery.setKeyword(keyword); + rolesQuery.setPage(page); + rolesQuery.setLimit(limit); + rolesQuery.setEnable(enable); + List list =new ArrayList(); + if(StringUtils.isNotEmpty(orgIds)){ + String[] as =orgIds.split(","); + for(String a :as){ + list.add(Integer.valueOf(a)); + } + } + rolesQuery.setOrgIds(list); + List roles = rolesService.queryRoles(rolesQuery); + List rolesList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(roles)) { + + Users users = usersService.getUsers(loginState.getId()); + if (users.getType() == 2) { + rolesList.addAll(roles); + } else { + UserRoleMapsQuery userRoleMapsQuery = new UserRoleMapsQuery(); + userRoleMapsQuery.setYn(YnEnums.YES.getId()); + userRoleMapsQuery.setUserId(users.getId()); + List userRoleMapsList = userRoleMapsService.queryUserRoleMaps(userRoleMapsQuery); + List onwerRoleIds = new ArrayList<>(); + for (UserRoleMaps maps:userRoleMapsList) { + onwerRoleIds.add(maps.getRoleId()); + } + for (Roles roles1 : roles) { + if (onwerRoleIds.contains(roles1.getId())) { + rolesList.add(roles1); + } + } + } + + List permissionses; + for (Roles roles1 : rolesList) { + permissionses = permissions2Service.queryPermissionByRoleIds1(roles1.getId()); + + roles1.setPermissions(permissionses); + String name = ""; + if (null != roles1.getOrgId()) { + Organization o = organizationService.getOrganization(roles1.getOrgId()); + if(null!=o){ + name = o.getName(); + } + } + roles1.setOrgName(name); + } + } + + + FrontEndResult frontEndResult = new FrontEndResult(); + frontEndResult.setPageInfo(rolesQuery.getPageInfo()); + frontEndResult.setData(rolesList); + frontEndResult.setErrorcode(ErrorCodeConstants.SUCCESS); + return frontEndResult; + } + /** * 获取管理员角色列表 */