using System; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; using OpenAuth.App.Response; using OpenAuth.Repository.Domain; using System.Collections.Generic; namespace OpenAuth.WebApi.Controllers { /// /// 机构操作 /// [Route("api/[controller]/[action]")] [ApiController] [ApiExplorerSettings(GroupName = "组织机构_Orgs")] public class OrgsController : ControllerBase { private readonly OrgManagerApp _app; /// /// 获取机构详情 /// [HttpGet] public Response Get(string id) { var result = new Response(); try { result.Data = _app.Get(id); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 新增机构 /// 如果ID为空,会自动创建ID;会自动为当前登录用户分配添加的机构 /// /// /// [HttpPost] public Response Add([FromBody] SysOrg obj) { var result = new Response(); try { _app.Add(obj); result.Data = obj; } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } //添加或修改 [HttpPost] public Response Update([FromBody] SysOrg obj) { var result = new Response(); try { _app.Update(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 获取所有机构 /// [HttpGet] public Response> LoadAll() { var result = new Response>(); try { result.Data = _app.LoadAll(); } catch (CommonException ex) { if (ex.Code == Define.INVALID_TOKEN) { result.Code = ex.Code; result.Message = ex.Message; } else { result.Code = 500; result.Message = ex.InnerException != null ? "OpenAuth.WebAPI数据库访问失败:" + ex.InnerException.Message : "OpenAuth.WebAPI数据库访问失败:" + ex.Message; } } return result; } /// /// 删除选中的部门及所有的子部门 /// /// /// [HttpPost] public Response Delete([FromBody]string[] ids) { var result = new Response(); try { _app.DelOrgCascade(ids); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } public OrgsController(OrgManagerApp app) { _app = app; } } }