49 lines
1.4 KiB
C#
49 lines
1.4 KiB
C#
using AmtScanner.Api.Models;
|
||
using AmtScanner.Api.Services;
|
||
using Microsoft.AspNetCore.Authorization;
|
||
using Microsoft.AspNetCore.Mvc;
|
||
|
||
namespace AmtScanner.Api.Controllers;
|
||
|
||
/// <summary>
|
||
/// 菜单控制器
|
||
/// </summary>
|
||
[ApiController]
|
||
public class MenuController : ControllerBase
|
||
{
|
||
private readonly IMenuService _menuService;
|
||
|
||
public MenuController(IMenuService menuService)
|
||
{
|
||
_menuService = menuService;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取用户菜单(adminSystem 前端使用的路由)
|
||
/// </summary>
|
||
[Authorize]
|
||
[HttpGet("api/v3/system/menus/simple")]
|
||
public async Task<ActionResult<ApiResponse<List<MenuDto>>>> GetUserMenus()
|
||
{
|
||
var userIdClaim = User.FindFirst("userId")?.Value;
|
||
if (string.IsNullOrEmpty(userIdClaim) || !int.TryParse(userIdClaim, out var userId))
|
||
{
|
||
return Ok(ApiResponse<List<MenuDto>>.Fail(401, "无效的用户"));
|
||
}
|
||
|
||
var menus = await _menuService.GetUserMenusAsync(userId);
|
||
return Ok(ApiResponse<List<MenuDto>>.Success(menus));
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取所有菜单列表
|
||
/// </summary>
|
||
[Authorize]
|
||
[HttpGet("api/menu/list")]
|
||
public async Task<ActionResult<ApiResponse<List<MenuDto>>>> GetAllMenus()
|
||
{
|
||
var menus = await _menuService.GetAllMenusAsync();
|
||
return Ok(ApiResponse<List<MenuDto>>.Success(menus));
|
||
}
|
||
}
|