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; } /// /// 菜单列表 /// /// [HttpGet("list")] public async Task> GetListAsync([EnumDataType(typeof(PlatformEnumType))] PlatformEnumType? platform) { if (!platform.HasValue) { platform = PlatformEnumType.UserMobile; } return await _menuService.GetListAsync(platform.Value); } /// /// 保存菜单 /// /// /// [Transactional] [HttpPost] public async Task Save(SaveMenuRequest request) { await _menuService.SaveMenuAsync(request); } /// /// 分配权限 /// /// /// [HttpPost("assign")] public async Task AssignmentAsync(MenuPermissionAssignmentRequest request) { await _menuService.AssignmentAsync(request); } /// /// 当前类型的权限分配 /// /// 权限类型 /// 类型对应的唯一值 /// [HttpGet("assignments")] public async Task> GetAssignmentsAsync([EnumDataType(typeof(MenuPermissionTypeEnumType))] MenuPermissionTypeEnumType permissionType, [Required] string uniqueValue) { return await _menuService.GetAssignmentCodesAsync(permissionType, uniqueValue); } /// /// 获取所有权限分配 /// /// [HttpGet("assignments/all")] public async Task> GetAllAssignmentsAsync() { return await _menuService.GetAllAssignmentPermissionsAsync(); } /// /// 我的菜单 /// /// [HttpGet("my")] public async Task> GetCurrentMenusAsync() { return await _menuService.GetCurrentMenusAsync(); } /// /// 重置 /// /// /// [HttpPost("reset")] public async Task ResetAsync(List request) { await _menuService.ResetAsync(request); } }