admin
2024-11-12 a6316ee0ab82a0f3fc2691f8b5ddbd79e1567086
提交 | 用户 | 时间
a6316e 1 package com.billion.web.controller.system;
A 2
3 import java.util.List;
4 import java.util.Set;
5 import org.springframework.beans.factory.annotation.Autowired;
6 import org.springframework.web.bind.annotation.GetMapping;
7 import org.springframework.web.bind.annotation.PostMapping;
8 import org.springframework.web.bind.annotation.RequestBody;
9 import org.springframework.web.bind.annotation.RestController;
10 import com.billion.common.constant.Constants;
11 import com.billion.common.core.domain.AjaxResult;
12 import com.billion.common.core.domain.entity.SysMenu;
13 import com.billion.common.core.domain.entity.SysUser;
14 import com.billion.common.core.domain.model.LoginBody;
15 import com.billion.common.core.domain.model.LoginUser;
16 import com.billion.common.utils.SecurityUtils;
17 import com.billion.framework.web.service.SysLoginService;
18 import com.billion.framework.web.service.SysPermissionService;
19 import com.billion.framework.web.service.TokenService;
20 import com.billion.system.service.ISysMenuService;
21
22 /**
23  * 登录验证
24  * 
25  * @author ruoyi
26  */
27 @RestController
28 public class SysLoginController
29 {
30     @Autowired
31     private SysLoginService loginService;
32
33     @Autowired
34     private ISysMenuService menuService;
35
36     @Autowired
37     private SysPermissionService permissionService;
38
39     @Autowired
40     private TokenService tokenService;
41
42     /**
43      * 登录方法
44      * 
45      * @param loginBody 登录信息
46      * @return 结果
47      */
48     @PostMapping("/login")
49     public AjaxResult login(@RequestBody LoginBody loginBody)
50     {
51         AjaxResult ajax = AjaxResult.success();
52         // 生成令牌
53         String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
54                 loginBody.getUuid());
55         ajax.put(Constants.TOKEN, token);
56         return ajax;
57     }
58
59     /**
60      * 获取用户信息
61      * 
62      * @return 用户信息
63      */
64     @GetMapping("getInfo")
65     public AjaxResult getInfo()
66     {
67         LoginUser loginUser = SecurityUtils.getLoginUser();
68         SysUser user = loginUser.getUser();
69         // 角色集合
70         Set<String> roles = permissionService.getRolePermission(user);
71         // 权限集合
72         Set<String> permissions = permissionService.getMenuPermission(user);
73         if (!loginUser.getPermissions().equals(permissions))
74         {
75             loginUser.setPermissions(permissions);
76             tokenService.refreshToken(loginUser);
77         }
78         AjaxResult ajax = AjaxResult.success();
79         ajax.put("user", user);
80         ajax.put("roles", roles);
81         ajax.put("permissions", permissions);
82         return ajax;
83     }
84
85     /**
86      * 获取路由信息
87      * 
88      * @return 路由信息
89      */
90     @GetMapping("getRouters")
91     public AjaxResult getRouters()
92     {
93         Long userId = SecurityUtils.getUserId();
94         List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
95         return AjaxResult.success(menuService.buildMenus(menus));
96     }
97 }