|
|
using Admin.Core.Model;
|
|
|
using Admin.Core.Common.Resource;
|
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq.Expressions;
|
|
|
using System.Threading.Tasks;
|
|
|
using Admin.Core.Common;
|
|
|
using System.Linq;
|
|
|
using Admin.Core.IService.ISys;
|
|
|
using Admin.Core.Model.Sys;
|
|
|
|
|
|
namespace Admin.Core.Api
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// SysRoleController
|
|
|
/// </summary>
|
|
|
[Route("api/[controller]/[action]")]
|
|
|
[ApiController]
|
|
|
[Authorize(Permissions.Name)]
|
|
|
public class SysRoleController : BaseApiUserController
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
/// _sysRoleService
|
|
|
/// </summary>
|
|
|
private readonly ISysRoleService _sysRoleService;
|
|
|
private readonly ISysRoleMenuService _sysRoleMenuService;
|
|
|
private readonly ISysRoleDeptService _sysRoleDeptService;
|
|
|
/// <summary>
|
|
|
/// 构造方法
|
|
|
/// </summary>
|
|
|
/// <param name="SysRoleService"></param>
|
|
|
/// <param name="sysRoleMenuService"></param>
|
|
|
/// <param name="sysRoleDeptService"></param>
|
|
|
/// <param name="sysUserService"></param>
|
|
|
public SysRoleController(ISysRoleService SysRoleService, ISysRoleMenuService sysRoleMenuService, ISysRoleDeptService sysRoleDeptService,
|
|
|
ISysUserService sysUserService) : base(sysUserService)
|
|
|
{
|
|
|
_sysRoleService = SysRoleService;
|
|
|
_sysUserService = sysUserService;
|
|
|
_sysRoleMenuService = sysRoleMenuService;
|
|
|
_sysRoleDeptService = sysRoleDeptService;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 分页查询
|
|
|
/// </summary>
|
|
|
/// <param name="pageQuery"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
public async Task<MessageModel<PageModel<SysRole>>> GetByPage([FromBody] PageQuery<RoleQuery> pageQuery)
|
|
|
{
|
|
|
if (!pageQuery.Query.IsNotEmptyOrNull())
|
|
|
{
|
|
|
pageQuery.Query = new RoleQuery();
|
|
|
}
|
|
|
var userModel = await _sysRoleService.SelectRoleList(pageQuery);
|
|
|
return SuccessPage(userModel);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据ID查询
|
|
|
/// </summary>
|
|
|
/// <param name="id">主键</param>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet]
|
|
|
public async Task<MessageModel<RoleView>> GetByID(int id)
|
|
|
{
|
|
|
return Success(await _sysRoleService.GetInfo(id));
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据编号获取详细信息
|
|
|
/// </summary>
|
|
|
/// <param name="roleId"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet]
|
|
|
public async Task<MessageModel<RoleView>> GetInfo(int roleId)
|
|
|
{
|
|
|
return Success(await _sysRoleService.GetInfo(roleId));
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 新增一条数据
|
|
|
/// </summary>
|
|
|
/// <param name="request">RoleView</param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
public async Task<MessageModel<int>> Add([FromBody] RoleView request)
|
|
|
{
|
|
|
MessageModel<int> data = new MessageModel<int>();
|
|
|
|
|
|
var exist = await _sysRoleService.CheckRoleNameUnique(request.SysRole.RoleName);
|
|
|
if (exist)
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = "角色名称已存在!";
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
exist = await _sysRoleService.CheckRoleKeyUnique(request.SysRole.RoleKey);
|
|
|
if (exist)
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = "角色Key已存在!";
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
request.SysRole.CreateBy = CurrentUser.LoginName;
|
|
|
request.SysRole.UpdateBy = CurrentUser.LoginName;
|
|
|
|
|
|
data.data = await _sysRoleService.InsertRole(request);
|
|
|
if (data.data > 0)
|
|
|
{
|
|
|
data.success = true;
|
|
|
data.msg = Resource_SysBase.OprateSuccess;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = Resource_SysBase.OprateFail;
|
|
|
}
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 更新一条数据
|
|
|
/// </summary>
|
|
|
/// <param name="request">RoleView</param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
public async Task<MessageModel<bool>> Update([FromBody] RoleView request)
|
|
|
{
|
|
|
var data = new MessageModel<bool>();
|
|
|
|
|
|
if (RoleView.IsAdmin(request.SysRole.RoleID))
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = Resource_SysBase.OprateAdmin;
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
request.SysRole.UpdateBy = CurrentUser.LoginName;
|
|
|
data.data = await _sysRoleService.UpdateRole(request);
|
|
|
|
|
|
if (data.data)
|
|
|
{
|
|
|
data.success = true;
|
|
|
data.msg = Resource_SysBase.OprateSuccess;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = Resource_SysBase.OprateFail;
|
|
|
}
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 删除数据
|
|
|
/// </summary>
|
|
|
/// <param name="ids">主键</param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
public async Task<MessageModel<bool>> Del(List<int> ids)
|
|
|
{
|
|
|
var data = new MessageModel<bool>();
|
|
|
|
|
|
foreach (var item in ids)
|
|
|
{
|
|
|
if (RoleView.IsAdmin(item))
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = Resource_SysBase.OprateAdmin;
|
|
|
return data;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
data.data = await _sysRoleService.DeleteRoleByIds(ids.ToArray(), CurrentUser.LoginName);
|
|
|
|
|
|
if (data.data)
|
|
|
{
|
|
|
data.success = true;
|
|
|
data.msg = Resource_SysBase.OprateSuccess;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = Resource_SysBase.OprateFail;
|
|
|
}
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 修改保存数据权限
|
|
|
/// </summary>
|
|
|
/// <param name="role"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
public async Task<MessageModel<bool>> DataScope(RoleView role)
|
|
|
{
|
|
|
var data = new MessageModel<bool>();
|
|
|
if (RoleView.IsAdmin(role.SysRole.RoleID))
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = Resource_SysBase.OprateAdmin;
|
|
|
return data;
|
|
|
}
|
|
|
data.data = await _sysRoleService.AuthDataScope(role);
|
|
|
if (data.data)
|
|
|
{
|
|
|
data.success = true;
|
|
|
data.msg = Resource_SysBase.OprateSuccess;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = Resource_SysBase.OprateFail;
|
|
|
}
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 修改状态
|
|
|
/// </summary>
|
|
|
/// <param name="role"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
public async Task<MessageModel<bool>> ChangeStatus(SysRole role)
|
|
|
{
|
|
|
var data = new MessageModel<bool>();
|
|
|
if (RoleView.IsAdmin(role.RoleID))
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = Resource_SysBase.OprateAdmin;
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
var updateBy = CurrentUser.LoginName;
|
|
|
data.data = await _sysRoleService.UpdateRoleStatus(role, updateBy);
|
|
|
|
|
|
if (data.data)
|
|
|
{
|
|
|
data.success = true;
|
|
|
data.msg = Resource_SysBase.OprateSuccess;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = Resource_SysBase.OprateFail;
|
|
|
}
|
|
|
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 数据导出
|
|
|
/// </summary>
|
|
|
/// <param name="role"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
public async Task<MessageModel<string>> Export(SysRole role)
|
|
|
{
|
|
|
Expression<Func<SysRole, bool>> whereExpression = a => true;
|
|
|
var list = await _sysRoleService.QueryAsync(whereExpression);
|
|
|
return Success<string>(ExcelHelper.ExportToList(list, "角色数据"));
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取角色选择框列表
|
|
|
/// </summary>
|
|
|
[HttpGet]
|
|
|
public async Task<MessageModel<List<SysRole>>> Optionselect()
|
|
|
{
|
|
|
return Success(await _sysRoleService.QueryAsync());
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 取消授权用户
|
|
|
/// </summary>
|
|
|
/// <param name="userRole"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
public async Task<MessageModel<bool>> CancelAuthUser(SysUserRole userRole)
|
|
|
{
|
|
|
var data = new MessageModel<bool>();
|
|
|
|
|
|
data.data = await _sysRoleService.DeleteAuthUser(userRole);
|
|
|
|
|
|
if (data.data)
|
|
|
{
|
|
|
data.success = true;
|
|
|
data.msg = Resource_SysBase.OprateSuccess;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = Resource_SysBase.OprateFail;
|
|
|
}
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 批量取消授权用户
|
|
|
/// </summary>
|
|
|
/// <param name="userRoleView"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
public async Task<MessageModel<bool>> CancelAuthUserAll(UserRoleView userRoleView)
|
|
|
{
|
|
|
var data = new MessageModel<bool>();
|
|
|
|
|
|
data.data = await _sysRoleService.DeleteAuthUsers(userRoleView.RoleID, userRoleView.UserIds.ToArray());
|
|
|
|
|
|
if (data.data)
|
|
|
{
|
|
|
data.success = true;
|
|
|
data.msg = Resource_SysBase.OprateSuccess;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = Resource_SysBase.OprateFail;
|
|
|
}
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 批量选择用户授权
|
|
|
/// </summary>
|
|
|
/// <param name="userRoleView"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
public async Task<MessageModel<bool>> SelectAuthUserAll(UserRoleView userRoleView)
|
|
|
{
|
|
|
var data = new MessageModel<bool>();
|
|
|
|
|
|
data.data = await _sysRoleService.InsertAuthUsers(userRoleView.RoleID, userRoleView.UserIds.ToArray());
|
|
|
|
|
|
if (data.data)
|
|
|
{
|
|
|
data.success = true;
|
|
|
data.msg = Resource_SysBase.OprateSuccess;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
data.success = false;
|
|
|
data.msg = Resource_SysBase.OprateFail;
|
|
|
}
|
|
|
return data;
|
|
|
}
|
|
|
}
|
|
|
} |