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 roles = permissionService.getRolePermission(user); // 权限集合 Set permissions = permissionService.getMenuPermission(user); // 按钮权限集合 Set 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 menus = menuService.selectMenuTreeByUserId(user.getId().longValue()); return AjaxResult.success(menuService.buildMenus(menus)); } }