|
@@ -0,0 +1,90 @@
|
|
|
+using AutoMapper;
|
|
|
+using Hotline.Permissions;
|
|
|
+using Hotline.Settings;
|
|
|
+using Hotline.Share.Dtos.Org;
|
|
|
+using Microsoft.AspNetCore.Mvc;
|
|
|
+using XF.Domain.Exceptions;
|
|
|
+
|
|
|
+namespace Hotline.Api.Controllers
|
|
|
+{
|
|
|
+ /// <summary>
|
|
|
+ /// 组织架构相关接口
|
|
|
+ /// </summary>
|
|
|
+ public class OrgController: BaseController
|
|
|
+ {
|
|
|
+ private readonly ISystemOrganizeRepository _systemOrganizeRepository;
|
|
|
+ private readonly IMapper _mapper;
|
|
|
+
|
|
|
+ public OrgController(ISystemOrganizeRepository systemOrganizeRepository,IMapper mapper)
|
|
|
+ {
|
|
|
+ _systemOrganizeRepository = systemOrganizeRepository;
|
|
|
+ _mapper = mapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 组织机构获取树形列表
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.GetOrgJson)]
|
|
|
+ [HttpGet("getorgjson")]
|
|
|
+ public async Task<IReadOnlyList<SystemOrganize>> GetOrgJson()
|
|
|
+ {
|
|
|
+ return await _systemOrganizeRepository.GetOrgJson();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 新增组织架构
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.AddOrg)]
|
|
|
+ [HttpPost("add-org")]
|
|
|
+ public async Task AddOrg([FromBody] AddOrgDto dto)
|
|
|
+ {
|
|
|
+ var org = _mapper.Map<SystemOrganize>(dto);
|
|
|
+ await _systemOrganizeRepository.AddAsync(org, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 修改组织架构
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.UpdateOrg)]
|
|
|
+ [HttpPost("update-org")]
|
|
|
+ public async Task UpdateOrg([FromBody]UpdateOrgDto dto)
|
|
|
+ {
|
|
|
+ var org = await _systemOrganizeRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
|
|
|
+ if (org is null)
|
|
|
+ throw UserFriendlyException.SameMessage("无效组织架构");
|
|
|
+ _mapper.Map(dto, org);
|
|
|
+ await _systemOrganizeRepository.UpdateAsync(org, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取组织
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.GetOrg)]
|
|
|
+ [HttpGet("getorg/{id}")]
|
|
|
+ public async Task<SystemOrganize> GetOrg(string id)
|
|
|
+ {
|
|
|
+ var org = await _systemOrganizeRepository.GetAsync(id, HttpContext.RequestAborted);
|
|
|
+ if (org is null)
|
|
|
+ throw UserFriendlyException.SameMessage("无效组织架构");
|
|
|
+ return org;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取可用组织架构树形
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.GetCanUseOrg)]
|
|
|
+ [HttpGet("getcanuseorg")]
|
|
|
+ public async Task<IReadOnlyList<SystemOrganize>> GetCanUseOrg()
|
|
|
+ {
|
|
|
+ return await _systemOrganizeRepository.GetCanUseOrg();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|