zj
2024-06-03 a15e4f9fa2c34c4f4bd69f924c77e72a4c80e5ec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package com.crm.controller;
 
import com.crm.domain.SysMenu;
import com.crm.service.ISysMenuService;
import com.crm.service.impl.SysPermissionService;
import com.crm.service.impl.TokenService;
import com.crm.vo.AjaxResult;
import com.crm.vo.LoginInfo;
import com.nq.pojo.User;
import com.nq.utils.BeanUtils;
import com.nq.utils.ServletUtils;
import com.nq.utils.redis.RedisCache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import javax.annotation.Resource;
import java.util.List;
import java.util.Set;
 
@RestController
@RequestMapping({"/api/menu/"})
public class SysLoginController {
 
    @Resource
    private ISysMenuService menuService;
 
    @Autowired
    private RedisCache redisCache;
 
    @Autowired
    private SysPermissionService permissionService;
 
    @Autowired
    private TokenService tokenService;
 
 
    /**
     * 获取用户信息
     *
     * @return 用户信息
     */
    @GetMapping("getInfo.do")
    public AjaxResult getInfo()
    {
        String token = tokenService.getToken(ServletUtils.getRequest());
        LoginInfo loginInfo = new LoginInfo();
        loginInfo = redisCache.getCacheObject(token);
        User user = new User();
        BeanUtils.copyBeanProp(user,loginInfo);
        // 角色集合
        Set<String> roles = permissionService.getRolePermission(user);
        // 权限集合
        Set<String> permissions = permissionService.getMenuPermission(user);
        // 按钮权限集合
        Set<String> menuIds = permissionService.getMenuId(user);
 
        AjaxResult ajax = AjaxResult.success();
        ajax.put("user", user);
        ajax.put("roles", roles);
        ajax.put("permissions", permissions);
        ajax.put("menuIds",menuIds);
        return ajax;
    }
 
    /**
     * 获取路由信息
     *
     * @return 路由信息
     */
    @GetMapping("getRouters")
    public AjaxResult getRouters()
    {
        String token = tokenService.getToken(ServletUtils.getRequest());
        LoginInfo loginInfo = new LoginInfo();
        loginInfo = redisCache.getCacheObject(token);
        User user = new User();
        BeanUtils.copyBeanProp(user,loginInfo);
        List<SysMenu> menus = menuService.selectMenuTreeByUserId(user.getId().longValue());
        return AjaxResult.success(menuService.buildMenus(menus));
    }
 
}