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);
}
}
}