From 5d7b65670282a4fad015e37d567cfa171b162052 Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期二, 20 五月 2025 12:25:19 +0800 Subject: [PATCH] 基础代码 --- pt-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java | 125 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 125 insertions(+), 0 deletions(-) diff --git a/pt-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/pt-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java new file mode 100644 index 0000000..43148cb --- /dev/null +++ b/pt-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -0,0 +1,125 @@ +package com.ruoyi.web.controller.system; + +import java.util.List; +import java.util.Set; + +import com.ruoyi.system.object.dto.SetPasswordDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysMenu; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginBody; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.web.service.SysLoginService; +import com.ruoyi.framework.web.service.SysPermissionService; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.service.ISysMenuService; + +import javax.servlet.http.HttpServletRequest; + +/** + * 登录验证 + * + * @author ruoyi + */ +@Api(value = "登录控制器",tags = "登录控制器") +@RestController +public class SysLoginController { + + @Autowired + private SysLoginService loginService; + @Autowired + private ISysMenuService menuService; + @Autowired + private SysPermissionService permissionService; + @Autowired + private TokenService tokenService; + + /** + * 登录方法 + * + * @param loginBody 登录信息 + * @return 结果 + */ + @ApiOperation(value = "登录", notes = "登录") + @PostMapping("/login") + public AjaxResult login(@RequestBody LoginBody loginBody) { + AjaxResult ajax = AjaxResult.success(); + // 生成令牌 + String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), + loginBody.getUuid()); + ajax.put(Constants.TOKEN, token); + return ajax; + } + + @ApiOperation(value = "修改密码", notes = "修改密码") + @PostMapping("/setPassword") + public AjaxResult setPassword(@RequestBody SetPasswordDTO setPasswordDTO) { + //修改密码 + loginService.setPassword(setPasswordDTO); + return AjaxResult.success(); + } + + /** + * 获取用户信息 + * + * @return 用户信息 + */ + @ApiOperation(value = "获取用户信息", notes = "获取用户信息") + @GetMapping("/getInfo") + 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); + return ajax; + } + + /** + * 获取路由信息 + * + * @return 路由信息 + */ + @ApiOperation(value = "获取路由信息", notes = "获取路由信息") + @GetMapping("getRouters") + public AjaxResult getRouters() { + Long userId = SecurityUtils.getUserId(); + List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId); + return AjaxResult.success(menuService.buildMenus(menus)); + } + + /** + * 退出登录 + */ + @PostMapping("/logout") + @ApiOperation(value = "退出登录", notes = "用户退出系统") + public AjaxResult logout(HttpServletRequest request) { + // 获取当前登录用户 + LoginUser loginUser = tokenService.getLoginUser(request); + if (loginUser != null) { + // 删除用户缓存记录 + tokenService.delLoginUser(loginUser.getToken()); + } + + return AjaxResult.success("退出成功"); + } +} \ No newline at end of file -- Gitblit v1.7.1