From db8242513644b246a30222663ef20e21f1e7c7ce Mon Sep 17 00:00:00 2001 From: heheng <475597332@qq.com> Date: 星期二, 10 六月 2025 09:55:46 +0800 Subject: [PATCH] init --- exam-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysLoginController.java | 84 +++++++++++++++++++++++++++++++----------- 1 files changed, 62 insertions(+), 22 deletions(-) diff --git a/exam-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysLoginController.java b/exam-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysLoginController.java index 91ba831..6afd6dc 100644 --- a/exam-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysLoginController.java +++ b/exam-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysLoginController.java @@ -1,16 +1,26 @@ package com.gkhy.exam.admin.controller.system; +import cn.hutool.core.util.ObjectUtil; import com.gkhy.exam.common.api.CommonResult; +import com.gkhy.exam.common.domain.entity.SysMenu; +import com.gkhy.exam.common.domain.entity.SysUser; import com.gkhy.exam.common.domain.model.LoginBody; +import com.gkhy.exam.common.domain.model.LoginUserDetails; +import com.gkhy.exam.common.utils.SecurityUtils; import com.gkhy.exam.framework.web.service.SysLoginService; +import com.gkhy.exam.framework.web.service.SysPermissionService; +import com.gkhy.exam.framework.web.service.TokenService; +import com.gkhy.exam.system.service.ISysMenuService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; @Api(tags = "用户登录前端控制器") @@ -19,7 +29,15 @@ public class SysLoginController { @Autowired private SysLoginService sysLoginService; + @Autowired + private SysPermissionService permissionService; + @Autowired + private TokenService tokenService; + + + @Autowired + private ISysMenuService menuService; @ApiOperation(value = "用户登录") @PostMapping("/login") @@ -35,23 +53,45 @@ } -// @ApiOperation(value = "获取用户信息(角色和权限)") -// @GetMapping("getInfo") -// public CommonResult getInfo() -// { -// SysUser user = SecurityUtils.getLoginUser().getUser(); -// user.setPassword(null); -// Map<String,Object> map = new HashMap<>(); -// map.put("user", user); -// return CommonResult.success(map); -// } -// -// -// @ApiOperation(value = "获取前端路由(根据用户权限过滤)") -// @GetMapping("getRouters") -// public CommonResult getRouters() -// { -// return null; -// } + /** + * 获取用户信息 + * + * @return 用户信息 + */ + @GetMapping("getInfo") + @ApiOperation("获取用户信息") + public CommonResult getInfo() + { + LoginUserDetails loginUser = SecurityUtils.getLoginUser(); + + SysUser user = loginUser.getUser(); + // 角色集合 + Set<String> roles = permissionService.getRolePermission(user); + // 权限集合 + Set<String> permissions = permissionService.getMenuPermission(user); + if (ObjectUtil.isEmpty(loginUser.getPermissions()) || !loginUser.getPermissions().equals(permissions)) + { + loginUser.setPermissions(permissions); + tokenService.refreshToken(loginUser); + } + Map<String,Object> ajax = new HashMap<>(); + ajax.put("user", user); + ajax.put("roles", roles); + ajax.put("permissions", permissions); + return CommonResult.success(ajax); + } + /** + * 获取路由信息 + * + * @return 路由信息 + */ + @GetMapping("getRouters") + @ApiOperation("获取路由信息") + public CommonResult getRouters() + { + Long userId = SecurityUtils.getUserId(); + List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId); + return CommonResult.success(menuService.buildMenus(menus)); + } } -- Gitblit v1.9.2