using System; using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; using OpenAuth.App.Request; using OpenAuth.App.Response; using OpenAuth.WebApi.Model.CustomAttribute; namespace OpenAuth.WebApi.Controllers { /// /// 用户操作 /// [Route("api/[controller]/[action]")] [ApiController] //[ApiExplorerSettings(GroupName = "用户管理_Users")] public class UsersController : ControllerBase { private readonly UserManagerApp _app; public UsersController(UserManagerApp app) { _app = app; } #region 查询 #region 实体 /// /// 实体 /// /// /// [HttpGet] public Response Get(long id) { var result = new Response(); try { result.Result = _app.Get(id); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 用户列表 /// /// 用户列表 /// 根据选中部门及其下子部门过滤Account和Name包含key值的用户列表 /// orgId 为空,查全部 User /// [HttpGet] [AllData("Users", "LoadAll")] public async Task>>> Load([FromQuery] QueryUserListReq request) { return await _app.LoadUsers(request); } [HttpGet] [ApiExplorerSettings(IgnoreApi = true)] public async Task>>> LoadAll([FromQuery] QueryUserListReq request) { return await _app.LoadAll(request); } #endregion #region 加载指定角色的用户 /// /// 加载指定角色的用户 /// [HttpGet] public async Task>>> LoadByRole([FromQuery] QueryUserListByRoleReq request) { return await _app.LoadByRole(request); } #endregion #region 加载指定部门的用户 /// /// 加载指定部门的用户 /// 不包含下级部门的用户 /// [HttpGet] public async Task LoadByOrg([FromQuery] QueryUserListByOrgReq request) { return await _app.LoadByOrg(request); } #endregion #endregion #region 修改用户资料 /// /// 修改用户资料 /// /// /// [HttpPost] public Response ChangeProfile(ChangeProfileReq request) { var result = new Response(); try { _app.ChangeProfile(request); result.Message = "修改成功,重新登录生效"; } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 修改密码 /// /// 修改密码 /// /// /// [HttpPost] public Response ChangePassword(ChangePasswordReq request) { var result = new Response(); try { _app.ChangePassword(request); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 新增/修改 /// /// 新增/修改 /// /// /// [HttpPost] public Response AddOrUpdate(UpdateUserReq obj) { var result = new Response(); try { result = _app.AddOrUpdate(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 删除 /// /// 删除 /// /// /// [HttpPost] public Response Delete([FromBody] long[] ids) { var result = new Response(); try { result = _app.Delete(ids); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 为用户分配角色 /// /// 为用户分配角色 /// /// /// [HttpPost] public async Task> UserRoles(AssignUserRoles userRoles) { var result = new Response(); try { result = await _app.UserRoles(userRoles); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 为用户分配部门 /// /// 为用户分配部门 /// /// /// [HttpPost] public async Task> UserOrgs(AssignUserOrgs userOrgs) { var result = new Response(); try { result = await _app.UserOrgs(userOrgs); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 未启用/后台使用 /// /// 更新数据库实体类 /// [HttpPost] [AllowAnonymous] //[ApiExplorerSettings(IgnoreApi = true)] public Response AddEntity() { var result = new Response(); try { result.Message = _app.AddEntity(); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region user数据表导入 /// /// 上传用户信息 /// /// 文件 /// [HttpPost] public Response ImportUserInfo(IFormFileCollection formFiles) { Response response = new Response(); try { response = _app.ImportUserInfo(formFiles); } catch (Exception ex) { response.Code = 500; response.Message = ex.InnerException?.Message ?? ex.Message; } return response; } #endregion } }