using Microsoft.AspNetCore.Mvc; using Sanhe.Abp.Identity.Dto; using System; using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.Application.Dtos; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.Identity; namespace Sanhe.Abp.Identity { [RemoteService(Name = IdentityRemoteServiceConsts.RemoteServiceName)] [Area("identity")] [ControllerName("organization-units")] [Route("api/identity/organization-units")] public class OrganizationUnitController : AbpController, IOrganizationUnitAppService { protected IOrganizationUnitAppService OrganizationUnitAppService { get; } public OrganizationUnitController(IOrganizationUnitAppService organizationUnitAppService) { OrganizationUnitAppService = organizationUnitAppService; } /// /// 创建组织单位 /// /// /// [HttpPost] public async virtual Task CreateAsync(OrganizationUnitCreateDto input) { return await OrganizationUnitAppService.CreateAsync(input); } /// /// 删除组织单位 /// /// Id /// [HttpDelete] [Route("{id}")] public async virtual Task DeleteAsync(Guid id) { await OrganizationUnitAppService.DeleteAsync(id); } /// /// 查找子单位 /// /// /// [HttpGet] [Route("find-children")] public async virtual Task> FindChildrenAsync(OrganizationUnitGetChildrenDto input) { return await OrganizationUnitAppService.FindChildrenAsync(input); } /// /// 获取组织单位信息 /// /// Id /// [HttpGet] [Route("{id}")] public async virtual Task GetAsync(Guid id) { return await OrganizationUnitAppService.GetAsync(id); } /// /// 获取根组织单位 /// /// [HttpGet] [Route("root-node")] public async virtual Task> GetRootAsync() { return await OrganizationUnitAppService.GetRootAsync(); } /// /// 最后一个组织节点 /// /// 父Id /// [HttpGet] [Route("last-children")] public async virtual Task GetLastChildOrNullAsync(Guid? parentId) { return await OrganizationUnitAppService.GetLastChildOrNullAsync(parentId); } /// /// 获取所有组织单位 /// /// [HttpGet] [Route("all")] public async virtual Task> GetAllListAsync() { return await OrganizationUnitAppService.GetAllListAsync(); } /// /// 分页获取 /// /// /// [HttpGet] public async virtual Task> GetListAsync(OrganizationUnitGetByPagedDto input) { return await OrganizationUnitAppService.GetListAsync(input); } /// /// 获取该组织单位所有角色名称 /// /// Id /// [HttpGet] [Route("{id}/role-names")] public async virtual Task> GetRoleNamesAsync(Guid id) { return await OrganizationUnitAppService.GetRoleNamesAsync(id); } /// /// 分页获取未添加的角色 /// /// /// /// [HttpGet] [Route("{id}/unadded-roles")] public async virtual Task> GetUnaddedRolesAsync(Guid id, OrganizationUnitGetUnaddedRoleByPagedDto input) { return await OrganizationUnitAppService.GetUnaddedRolesAsync(id, input); } /// /// 分页获取组织单位角色 /// /// /// /// [HttpGet] [Route("{id}/roles")] public async virtual Task> GetRolesAsync(Guid id, PagedAndSortedResultRequestDto input) { return await OrganizationUnitAppService.GetRolesAsync(id, input); } /// /// 分页获取未添加的用户 /// /// /// /// [HttpGet] [Route("{id}/unadded-users")] public async virtual Task> GetUnaddedUsersAsync(Guid id, OrganizationUnitGetUnaddedUserByPagedDto input) { return await OrganizationUnitAppService.GetUnaddedUsersAsync(id, input); } /// /// 分页获取组织单位下用户 /// /// Id /// 分页参数 /// [HttpGet] [Route("{id}/users")] public async virtual Task> GetUsersAsync(Guid id, GetIdentityUsersInput input) { return await OrganizationUnitAppService.GetUsersAsync(id, input); } /// /// 指定组织单位下添加用户 /// /// /// /// [HttpPost] [Route("{id}/users")] public async virtual Task AddUsersAsync(Guid id, OrganizationUnitAddUserDto input) { await OrganizationUnitAppService.AddUsersAsync(id, input); } /// /// 指定组织单位下添加角色 /// /// /// /// [HttpPost] [Route("{id}/roles")] public async virtual Task AddRolesAsync(Guid id, OrganizationUnitAddRoleDto input) { await OrganizationUnitAppService.AddRolesAsync(id, input); } /// /// 移动 /// /// /// /// [HttpPut] [Route("{id}/move")] public async virtual Task MoveAsync(Guid id, OrganizationUnitMoveDto input) { await OrganizationUnitAppService.MoveAsync(id, input); } /// /// 修改组织单位信息 /// /// Id /// /// [HttpPut] [Route("{id}")] public async virtual Task UpdateAsync(Guid id, OrganizationUnitUpdateDto input) { return await OrganizationUnitAppService.UpdateAsync(id, input); } } }