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