namespace MiaoYu.Api.Admin.Controllers.Systems; /// /// 组织机构控制器 /// [ControllerDescriptor(MenuId = "21", DisplayName = "组织机构")] public class SysOrganizationController : AdminControllerBase { private readonly IRepository _sysOrganizationRepository; private readonly IRepository _sysUserRepository; private readonly IAccountService _accountService; public SysOrganizationController(SysOrganizationService defaultService, IRepository sysOrganizationRepository, IRepository sysUserRepository, IAccountService accountService) : base(defaultService) { _sysOrganizationRepository = sysOrganizationRepository; _sysUserRepository = sysUserRepository; _accountService = accountService; } /// /// 获取列表 /// /// /// [ActionDescriptor(DisplayName = "查看列表")] [HttpPost] public async Task> FindListAsync([FromBody] SysOrganization search) { return await _defaultService.FindListAsync(search); } /// /// 根据id数组删除 /// /// /// [ActionDescriptor(DisplayName = "删除数据")] [HttpPost] public async Task DeleteListAsync([FromBody] List ids) { await _defaultService.DeleteListAsync(ids); return true; } /// /// 查询表单数据 /// /// /// /// [ActionDescriptor(DisplayName = "查看表单")] [HttpGet("{id?}/{parentId?}")] public async Task> FindFormAsync([FromRoute] int id, int parentId) { return await _defaultService.FindFormAsync(id, parentId); } /// /// 添加 /// /// /// [RequestLimitFilter] [ActionDescriptor(PermissionFunctionConsts.Function_Insert, DisplayName = "创建表单")] [HttpPost] [ApiCheckModel] public Task CreateAsync([FromBody] SysOrganization form) { return _defaultService.SaveFormAsync(form); } /// /// 编辑 /// /// /// [RequestLimitFilter] [ActionDescriptor(PermissionFunctionConsts.Function_Update, DisplayName = "编辑表单")] [HttpPost] [ApiCheckModel] public Task UpdateAsync([FromBody] SysOrganization form) { return _defaultService.SaveFormAsync(form); } /// /// 获取组织架构树 /// /// [ActionDescriptor(DisplayName = "查看组织架构树")] [HttpPost] [Time("查看组织架构树")] public async Task GetSysOrganizationTreeAsync() { var expandedRowKeys = new List(); var accountInfo = _accountService.GetAccountContext(); var sysOrganizationAll = await _sysOrganizationRepository .DataPermission(_sysOrganizationRepository.SelectNoTracking, accountInfo, s => s.CreatorUserId!, s => s.Id) .OrderBy(w => w.OrderNumber) .ToListAsync(); return new { expandedRowKeys, allKeys = sysOrganizationAll.OrderBy(w => w.OrderNumber).Select(w => w.Id).ToList(), rows = sysOrganizationAll }; } }