111 lines
3.1 KiB
C#
111 lines
3.1 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Dlhis.Sys.Menu.Services;
|
|
using Dlhis.Sys.Menu.Response;
|
|
using Dlhis.Sys.Menu.Request;
|
|
using Dlhis.Entity.Sys.Enums;
|
|
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
|
|
|
|
namespace Dlhis.Sys.Menu.Controllers;
|
|
|
|
/// <summary>
|
|
/// 菜单
|
|
/// </summary>
|
|
[Authorize]
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class MenusController : ControllerBase
|
|
{
|
|
private readonly IMenuService _menuService;
|
|
|
|
public MenusController(IMenuService menuService)
|
|
{
|
|
_menuService = menuService;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 菜单列表
|
|
/// </summary>
|
|
/// <param name="platform">菜单平台类型 PlatformEnumType</param>
|
|
/// <returns></returns>
|
|
[HttpGet("list")]
|
|
public async Task<List<MenuResponse>> GetListAsync([EnumDataType(typeof(PlatformEnumType))] PlatformEnumType? platform = PlatformEnumType.PCAdmin)
|
|
{
|
|
return await _menuService.GetListAsync(platform.Value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存菜单
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[Authorize(Roles = "admin")]
|
|
[HttpPost]
|
|
[Transactional]
|
|
public async Task Save(SaveMenuRequest request)
|
|
{
|
|
await _menuService.SaveMenuAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分配权限
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[Authorize(Roles = "admin,tenant-admin")]
|
|
[HttpPost("assign")]
|
|
public async Task AssignmentAsync(MenuPermissionAssignmentRequest request)
|
|
{
|
|
await _menuService.AssignmentAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 当前类型的权限分配
|
|
/// </summary>
|
|
/// <param name="uniqueType">权限分配类型 AssignTypeEnumType</param>
|
|
/// <param name="uniqueValue">类型对应的唯一值</param>
|
|
/// <returns></returns>
|
|
[Authorize(Roles = "admin,tenant-admin")]
|
|
[HttpGet("assignments")]
|
|
public async Task<List<string>> GetAssignmentsAsync(
|
|
[EnumDataType(typeof(AssignTypeEnumType))] AssignTypeEnumType uniqueType,
|
|
[Required] string uniqueValue)
|
|
{
|
|
return await _menuService.GetAssignmentCodesAsync(uniqueType, uniqueValue);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取我的所有权限
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("assignments/all")]
|
|
public async Task<List<string>> GetAllAssignmentsAsync()
|
|
{
|
|
return await _menuService.GetAllAssignmentPermissionsAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取我的菜单
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("my")]
|
|
public async Task<List<MenuResponse>> GetCurrentMenusAsync()
|
|
{
|
|
return await _menuService.GetCurrentMenusAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 重置所有路由
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[Authorize(Roles = "admin")]
|
|
[HttpPost("reset")]
|
|
[Transactional]
|
|
public async Task ResetAsync(List<SaveMenuRequest> request)
|
|
{
|
|
await _menuService.ResetAsync(request);
|
|
}
|
|
}
|