using System.Linq; using AdminService.System; using AdminService.System.Param; using AdminService.System.Response; using Common; using CommonInfrastructure ; using Domain.Admin.Admin; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 namespace AdminApi.System { [ApiController, Route("adminapi/[controller]")] [Authorize] public class SystemController : BaseController { private readonly ISystemService _systemService; public SystemController(ISystemService systemService) { _systemService = systemService; } /// /// 添加系统用户 /// [HttpPost("user/add")] public async Task> AddUser(AddUserParam param) { var result = await _systemService.AddUser(param); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 修改系统用户 /// [HttpPost("user/update")] public async Task> UpdateUser(UpdateUserParam param) { var result = await _systemService.UpdateUser(param); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 修改系统用户头像 /// [HttpGet("user/update/icon")] public async Task> UpdateUserIcon(string id, string icon) { var result = await _systemService.UpdateUserIcon(id,icon); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 修改系统用户状态 /// [HttpGet("user/update/state")] public async Task> UpdateUserState(string id, int state) { var result = await _systemService.UpdateUserState(id, state); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 删除用户 /// [HttpGet("user/delete")] public async Task> DeleteUser(string id) { var result = await _systemService.DeleteUser(id); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 用户登陆 /// [HttpGet("user/login")] [AllowAnonymous] public async Task> UserLogin(string userName, string password) { var result = await _systemService.UserLogin(userName, password); if (result.isok) return this.ToResult(result.model); else return this.ToFailResult(result.msg); } /// /// 获取系统用户列表 /// [HttpPost("user/list")] public async Task> GetUserList(GetUserListParam param) { var result = await _systemService.GetUserList(param); var dtos = result.list.Select(MapToSystemUserDto).ToList(); return this.ToPageResult(dtos, (int)result.count); } /// /// 获取当前登陆用户信息 /// [HttpGet("user/getuser")] public async Task> GetUser() { if (string.IsNullOrEmpty(loginUser.UserId)) return this.ToFailResult("用户未登录"); var result = await _systemService.GetUser(loginUser.UserId); if (result == null) return this.ToFailResult("用户不存在"); return this.ToResult(MapToSystemUserDto(result)); } private static SystemUserDto MapToSystemUserDto(SystemUser entity) { if (entity == null) return new SystemUserDto(); return new SystemUserDto { Id = entity.Id ?? "", UserName = entity.UserName ?? "", DisplayName = entity.DisplayName ?? "", Icon = entity.Icon ?? "", RegisterTime = entity.RegisterTime, State = entity.State, RoleId = entity.SystemRole?.Id ?? "", RoleName = entity.SystemRole?.Name ?? "" }; } /// /// 获取用户菜单 /// [HttpGet("user/nav")] public async Task> GetUserNav() { if (string.IsNullOrEmpty(loginUser.UserId)) return this.ToListFailResult("用户未登录"); var result = await _systemService.GetUserNav(this.loginUser); if (result == null) return this.ToListFailResult("获取菜单失败"); return this.ToListResult(result); } /// /// 添加系统角色 /// [HttpPost("role/add")] public async Task> AddRole(AddRoleParam param) { var result = await _systemService.AddRole(param); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 修改角色 /// [HttpPost("role/update")] public async Task> UpdateRole(UpdateRoleParam param) { var result = await _systemService.UpdateRole(param); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 修改角色菜单 /// [HttpPost("role/updatenav")] public async Task> UpdateRoleNav(UpdateRoleNavParam param) { var result = await _systemService.UpdateRoleNav(param); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 删除角色 /// [HttpGet("role/delete")] public async Task> DeleteRole(string id) { var result = await _systemService.DeleteRole(id); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 获取系统角色列表 /// [HttpGet("role/list")] public async Task> GetRoleList(int page, int limit) { var result = await _systemService.GetRoleList(); var dtos = result.Select(MapToSystemUserRoleDto).ToList(); return this.ToListResult(dtos); } private static SystemUserRoleDto MapToSystemUserRoleDto(SystemUserRole entity) { if (entity == null) return new SystemUserRoleDto(); return new SystemUserRoleDto { Id = entity.Id ?? "", RoleName = entity.RoleName ?? "", Description = entity.Description ?? "", NavIds = entity.NavIds ?? new List() }; } /// /// 获取角色 /// [HttpGet("role/get")] public async Task> GetUserRole(string id) { var result = await _systemService.GetUserRole(id); return this.ToResult(MapToSystemUserRoleDto(result)); } /// /// 添加系统菜单 /// [HttpPost("nav/add")] public async Task> AddNav(AddNavParam param) { var result = await _systemService.AddNav(param); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 修改菜单 /// [HttpPost("nav/update")] public async Task> UpdateNav(UpdateNavParam param) { var result = await _systemService.UpdateNav(param); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 删除菜单 /// [HttpGet("nav/delete")] public async Task> DeleteNav(string id) { var result = await _systemService.DeleteNav(id); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 获取菜单列表 /// [HttpGet("nav/list")] public async Task> GetNavList(string? id="") { var result = await _systemService.GetNavList(id); return this.ToListResult(result); } public class SystemUserDto { public string Id { get; set; } public string UserName { get; set; } public string DisplayName { get; set; } public string Icon { get; set; } public DateTime RegisterTime { get; set; } public int State { get; set; } public string RoleId { get; set; } public string RoleName { get; set; } } public class SystemUserRoleDto { public string Id { get; set; } public string RoleName { get; set; } public string Description { get; set; } public List NavIds { get; set; } = new List(); } /// /// 添加系统字典 /// [HttpPost("dic/add")] public async Task> AddDic(AddDicParam param) { var result = await _systemService.AddDic(param); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 修改字典 /// [HttpPost("dic/update")] public async Task> UpdateDic(UpdateDicParam param) { var result = await _systemService.UpdateDic(param); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 删除字典 /// [HttpGet("dic/delete")] public async Task> DeleteDic(string id) { var result = await _systemService.DeleteDic(id); if (result.isok) return this.ToResult(result.msg); else return this.ToFailResult(result.msg); } /// /// 获取字典列表 /// [HttpGet("dic/list")] public async Task> GetDicList(string id="") { var result = await _systemService.GetDicList(id); return this.ToListResult(result); } /// /// 获取字典列表 /// [HttpGet("dic/list/code")] public async Task> GetDicListByCode(string code) { var result = await _systemService.GetDicListByCode(code); return this.ToListResult(result); } /// /// 获取字典对象 /// [HttpGet("dic/get/code")] public async Task> GetDictByCode(string code) { var result = await _systemService.GetDictByCode(code); return this.ToResult(result); } } }