From 942bdeee0b6fcc92b35e788c851d39c5182a8e40 Mon Sep 17 00:00:00 2001 From: heheng <475597332@qq.com> Date: 星期二, 10 六月 2025 13:01:20 +0800 Subject: [PATCH] add --- multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysLoginController.java | 97 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 97 insertions(+), 0 deletions(-) diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysLoginController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysLoginController.java new file mode 100644 index 0000000..6afd6dc --- /dev/null +++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysLoginController.java @@ -0,0 +1,97 @@ +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.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + + +@Api(tags = "用户登录前端控制器") +@RestController +@RequestMapping("/system/account") +public class SysLoginController { + @Autowired + private SysLoginService sysLoginService; + @Autowired + private SysPermissionService permissionService; + + @Autowired + private TokenService tokenService; + + + @Autowired + private ISysMenuService menuService; + + @ApiOperation(value = "用户登录") + @PostMapping("/login") + public CommonResult login(@RequestBody LoginBody loginBody){ + return CommonResult.success(sysLoginService.adminLogin(loginBody)); + } + + @ApiOperation(value = "用户退出") + @PostMapping("/logout") + public CommonResult logout(){ + sysLoginService.logout(); + return CommonResult.success(); + } + + + /** + * 获取用户信息 + * + * @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