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 virtual Task CreateAsync(OrganizationUnitCreateDto input)
{
return OrganizationUnitAppService.CreateAsync(input);
}
///
/// 删除组织单位
///
/// Id
///
[HttpDelete]
[Route("{id}")]
public virtual Task DeleteAsync(Guid id)
{
return OrganizationUnitAppService.DeleteAsync(id);
}
///
/// 查找子单位
///
///
///
[HttpGet]
[Route("find-children")]
public virtual Task> FindChildrenAsync(OrganizationUnitGetChildrenDto input)
{
return OrganizationUnitAppService.FindChildrenAsync(input);
}
///
/// 获取组织单位信息
///
/// Id
///
[HttpGet]
[Route("{id}")]
public virtual Task GetAsync(Guid id)
{
return OrganizationUnitAppService.GetAsync(id);
}
///
/// 获取根组织单位
///
///
[HttpGet]
[Route("root-node")]
public virtual Task> GetRootAsync()
{
return OrganizationUnitAppService.GetRootAsync();
}
///
/// 最后一个组织节点
///
/// 父Id
///
[HttpGet]
[Route("last-children")]
public virtual Task GetLastChildOrNullAsync(Guid? parentId)
{
return OrganizationUnitAppService.GetLastChildOrNullAsync(parentId);
}
///
/// 获取所有组织单位
///
///
[HttpGet]
[Route("all")]
public virtual Task> GetAllListAsync()
{
return OrganizationUnitAppService.GetAllListAsync();
}
///
/// 分页获取
///
///
///
[HttpGet]
public virtual Task> GetListAsync(OrganizationUnitGetByPagedDto input)
{
return OrganizationUnitAppService.GetListAsync(input);
}
///
/// 获取该组织单位所有角色名称
///
/// Id
///
[HttpGet]
[Route("{id}/role-names")]
public virtual Task> GetRoleNamesAsync(Guid id)
{
return OrganizationUnitAppService.GetRoleNamesAsync(id);
}
///
/// 分页获取未添加的角色
///
///
///
///
[HttpGet]
[Route("{id}/unadded-roles")]
public virtual Task> GetUnaddedRolesAsync(Guid id, OrganizationUnitGetUnaddedRoleByPagedDto input)
{
return OrganizationUnitAppService.GetUnaddedRolesAsync(id, input);
}
///
/// 分页获取组织单位角色
///
///
///
///
[HttpGet]
[Route("{id}/roles")]
public virtual Task> GetRolesAsync(Guid id, PagedAndSortedResultRequestDto input)
{
return OrganizationUnitAppService.GetRolesAsync(id, input);
}
///
/// 分页获取未添加的用户
///
///
///
///
[HttpGet]
[Route("{id}/unadded-users")]
public virtual Task> GetUnaddedUsersAsync(Guid id, OrganizationUnitGetUnaddedUserByPagedDto input)
{
return OrganizationUnitAppService.GetUnaddedUsersAsync(id, input);
}
///
/// 分页获取组织单位下用户
///
/// Id
/// 分页参数
///
[HttpGet]
[Route("{id}/users")]
public virtual Task> GetUsersAsync(Guid id, GetIdentityUsersInput input)
{
return OrganizationUnitAppService.GetUsersAsync(id, input);
}
///
/// 指定组织单位下添加用户
///
///
///
///
[HttpPost]
[Route("{id}/users")]
public virtual Task AddUsersAsync(Guid id, OrganizationUnitAddUserDto input)
{
return OrganizationUnitAppService.AddUsersAsync(id, input);
}
///
/// 指定组织单位下添加角色
///
///
///
///
[HttpPost]
[Route("{id}/roles")]
public virtual Task AddRolesAsync(Guid id, OrganizationUnitAddRoleDto input)
{
return OrganizationUnitAppService.AddRolesAsync(id, input);
}
///
/// 移动
///
///
///
///
[HttpPut]
[Route("{id}/move")]
public virtual Task MoveAsync(Guid id, OrganizationUnitMoveDto input)
{
return OrganizationUnitAppService.MoveAsync(id, input);
}
///
/// 修改组织单位信息
///
/// Id
///
///
[HttpPut]
[Route("{id}")]
public virtual Task UpdateAsync(Guid id, OrganizationUnitUpdateDto input)
{
return OrganizationUnitAppService.UpdateAsync(id, input);
}
}
}