From db8242513644b246a30222663ef20e21f1e7c7ce Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: Tue, 10 Jun 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