using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; using OpenAuth.App.Interface; using OpenAuth.App.ModuleManager; using OpenAuth.App.ModuleManager.Response; using OpenAuth.Repository.Core; using OpenAuth.Repository.Domain; namespace OpenAuth.WebApi.Controllers { /// /// 模块及菜单管理 /// [Route("api/[controller]/[action]")] [ApiController] //[ApiExplorerSettings(GroupName = "模块菜单_Modules")] public class ModulesController : ControllerBase { private ModuleManagerApp _app; private IAuth _authUtil; public ModulesController(IAuth authUtil, ModuleManagerApp app) { _app = app; _authUtil = authUtil; } #region 查询 #region 根据角色 Id 查询相关的菜单及按钮 Id 集合 /// /// 根据角色 Id 查询相关的菜单及按钮 Id 集合 /// /// 角色 Id /// 菜单Id集合、按钮Id集合 [HttpGet] public async Task> LoadForRole(long roleId) { var result = new Response(); try { result = await _app.LoadForRole(roleId); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 菜单树【全部数据】 /// /// 菜单树【全部数据】 /// /// /// [HttpGet] public Response> ModulesTree(string name) { return _app.ModulesTree(name); } #endregion #region 根据 ModuleId 获取 Elements /// /// 根据 ModuleId 获取 Elements /// /// /// [HttpGet] public async Task>>> ElementsByModule([FromQuery] QueryElementListReq req) { return await _app.ElementsByModule(req); } #endregion #region 根据 Id 获取 Module /// /// 根据 Id 获取 Module /// /// /// [HttpGet] public async Task> ModuleById(string id) { var result = new Response(); try { result = await _app.ModuleById(id); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } [HttpGet] public async Task>> AllModule() { var result = new Response>(); try { result = await _app.AllModule(); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #endregion #region 增删改 #region 新增菜单 /// /// 新增菜单 /// /// /// [HttpPost] public Response Add(SysModule obj) { var result = new Response(); try { result = _app.Add(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 修改菜单 /// /// 修改菜单 /// /// /// [HttpPost] public Response Update(SysModule obj) { var result = new Response(); try { result = _app.Update(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 删除菜单 /// /// 删除菜单 /// /// /// [HttpPost] public async Task> Delete([FromBody] string[] ids) { var result = new Response(); try { result = await _app.Delete(ids); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 新增按钮 /// /// 新增按钮 /// [HttpPost] public Response AddMenu(SysModuleElement obj) { var result = new Response(); try { result = _app.AddMenu(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 修改按钮 /// /// 修改按钮 /// [HttpPost] public Response UpdateMenu(SysModuleElement obj) { var result = new Response(); try { result = _app.UpdateMenu(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 删除按钮 /// /// 删除按钮 /// [HttpPost] public async Task> DeleteMenu([FromBody] string[] ids) { var result = new Response(); try { result = await _app.DelMenu(ids); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #endregion } }