Files
jinko.yikatong/Src/Dlhis.Permission/Menu/Controllers/MenusController.cs

104 lines
2.8 KiB
C#

using Dlhis.Entity.Permission.Enums;
using Kurisu.SqlSugar.Attributes;
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;
namespace Dlhis.Sys.Menu.Controllers;
[Authorize]
[Route("api/[controller]")]
[ApiController]
public class MenusController : ControllerBase
{
private readonly IMenuService _menuService;
public MenusController(IMenuService menuService)
{
_menuService = menuService;
}
/// <summary>
/// 菜单列表
/// </summary>
/// <returns></returns>
[HttpGet("list")]
public async Task<List<MenuResponse>> GetListAsync([EnumDataType(typeof(PlatformEnumType))] PlatformEnumType? platform)
{
if (!platform.HasValue)
{
platform = PlatformEnumType.UserMobile;
}
return await _menuService.GetListAsync(platform.Value);
}
/// <summary>
/// 保存菜单
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Transactional]
[HttpPost]
public async Task Save(SaveMenuRequest request)
{
await _menuService.SaveMenuAsync(request);
}
/// <summary>
/// 分配权限
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("assign")]
public async Task AssignmentAsync(MenuPermissionAssignmentRequest request)
{
await _menuService.AssignmentAsync(request);
}
/// <summary>
/// 当前类型的权限分配
/// </summary>
/// <param name="permissionType">权限类型</param>
/// <param name="uniqueValue">类型对应的唯一值</param>
/// <returns></returns>
[HttpGet("assignments")]
public async Task<List<string>> GetAssignmentsAsync([EnumDataType(typeof(MenuPermissionTypeEnumType))] MenuPermissionTypeEnumType permissionType, [Required] string uniqueValue)
{
return await _menuService.GetAssignmentCodesAsync(permissionType, 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>
[HttpPost("reset")]
public async Task ResetAsync(List<SaveMenuRequest> request)
{
await _menuService.ResetAsync(request);
}
}