You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.9 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.chenxuan.controller;
import com.chenxuan.base.entity.AjaxResult;
import com.chenxuan.constants.Constants;
import com.chenxuan.entity.model.SysMenu;
import com.chenxuan.entity.model.SysUser;
import com.chenxuan.security.LoginUser;
import com.chenxuan.security.service.CustomPermissionService;
import com.chenxuan.security.service.JwtTokenService;
import com.chenxuan.security.service.LoginService;
import com.chenxuan.service.SysMenuService;
import com.chenxuan.utils.ServletUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Set;
/**
* @ClassNameSysLoginController
* @Description 登录验证
* @Author Arno_Fu
* @CreatTime11/26/2019 - 1:47 PM
* @Version V1.0
*/
@RestController
public class SysLoginController {
@Autowired
private LoginService loginService;
@Autowired
private SysMenuService menuService;
@Autowired
private CustomPermissionService customPermissionService;
@Autowired
private JwtTokenService jwtTokenService;
/**
* @Description 登录方法
*
* @param username 用户名
* @param password 密码
* @param code 验证码
* @param uuid 唯一标识
* @return com.chenxuan.domain.AjaxResult
*/
@PostMapping("/login")
public AjaxResult login(String username, String password, String code, String uuid) throws Exception {
AjaxResult ajax = AjaxResult.success();
String token = loginService.login(username, password, code, uuid);
ajax.put(Constants.TOKEN, token);
return ajax;
}
/**
* @Description 获取用户信息
*
* @return com.chenxuan.base.entity.AjaxResult
*/
@GetMapping("getInfo")
public AjaxResult getInfo(){
SysUser user = getSysUser();
// 权限集合
Set<String> permissions = customPermissionService.getMenuPermission(user);
// 角色集合
Set<String> roles = customPermissionService.getRolePermission(user);
AjaxResult ajax = AjaxResult.success();
ajax.put("user", user);
ajax.put("roles", roles);
ajax.put("permissions", permissions);
return ajax;
}
/**
* @Description 获取路由信息
*
* @return com.chenxuan.base.entity.AjaxResult
*/
@GetMapping("getRouters")
public AjaxResult getRouters(){
SysUser user = getSysUser();
List<SysMenu> menus = menuService.getMenuTreeByUserId(user);
return AjaxResult.success(menuService.buildMenus(menus));
}
private SysUser getSysUser() {
LoginUser loginUser = jwtTokenService.getLoginUser( ServletUtils.getRequest());
return loginUser.getUser();
}
}