| | |
| | | package com.ruoyi.web.controller.system; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | |
| | | import com.ruoyi.system.mapper.SysMenuMapper; |
| | | import com.ruoyi.system.object.dto.SetPasswordDTO; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | |
| | | private SysPermissionService permissionService; |
| | | @Autowired |
| | | private TokenService tokenService; |
| | | @Autowired |
| | | private SysMenuMapper sysMenuMapper; |
| | | |
| | | /** |
| | | * 登录方法 |
| | |
| | | * @param loginBody 登录信息 |
| | | * @return 结果 |
| | | */ |
| | | @ApiOperation(value = "登录", notes = "登录") |
| | | @ApiOperation(value = "登录", notes = "username:hlg password:e10adc3949ba59abbe56e057f20f883e(123456) 密码前端需MD5加密传输") |
| | | @PostMapping("/login") |
| | | public AjaxResult login(@RequestBody LoginBody loginBody) { |
| | | AjaxResult ajax = AjaxResult.success(); |
| | |
| | | public AjaxResult getInfo() { |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | SysUser user = loginUser.getUser(); |
| | | // 角色集合 |
| | | Set<String> roles = permissionService.getRolePermission(user); |
| | | // 权限集合 |
| | | Set<String> permissions = permissionService.getMenuPermission(user); |
| | | if (!loginUser.getPermissions().equals(permissions)) { |
| | | loginUser.setPermissions(permissions); |
| | | tokenService.refreshToken(loginUser); |
| | | } |
| | | AjaxResult ajax = AjaxResult.success(); |
| | | ajax.put("user", user); |
| | | ajax.put("roles", roles); |
| | | ajax.put("permissions", permissions); |
| | | ajax.put("permissions" ,getUserPaths(user.getUserId())); |
| | | return ajax; |
| | | } |
| | | /** |
| | | * 获取用户拥有的所有path |
| | | * @param userId 用户ID |
| | | * @return 用户拥有的所有path列表 |
| | | */ |
| | | public List<String> getUserPaths(Long userId) { |
| | | List<Long> ids = new ArrayList<>(); |
| | | // 根据用户id查询出menus |
| | | List<SysMenu> menus = sysMenuMapper.selectMenusByUserId(userId); |
| | | //将id和父类id取出 |
| | | menus.forEach(menu -> { |
| | | ids.add(menu.getMenuId()); |
| | | if (null!= menu.getParentId() && menu.getParentId() != 0) { |
| | | ids.add(menu.getParentId()); |
| | | } |
| | | }); |
| | | |
| | | if (menus.isEmpty()) { |
| | | return Collections.emptyList(); |
| | | } |
| | | |
| | | |
| | | return sysMenuMapper.getPathsByMenuIds(ids); |
| | | } |
| | | |
| | | /** |
| | |
| | | * |
| | | * @return 路由信息 |
| | | */ |
| | | @ApiOperation(value = "获取路由信息", notes = "获取路由信息") |
| | | /* @ApiOperation(value = "获取路由信息", notes = "获取路由信息") |
| | | @GetMapping("getRouters") |
| | | public AjaxResult getRouters() { |
| | | Long userId = SecurityUtils.getUserId(); |
| | | List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId); |
| | | return AjaxResult.success(menuService.buildMenus(menus)); |
| | | } |
| | | }*/ |
| | | |
| | | /** |
| | | * 退出登录 |