using Infrastructure; using Infrastructure.Attribute; using Microsoft.AspNetCore.Mvc; using System; using System.Linq; using ZR.Admin.WebApi.Filters; using ZR.Model; using ZR.Model.Dto.System; using ZR.Model.System; using ZR.Service.IService; namespace ZR.Admin.WebApi.Controllers.System { [Verify] [Route("system/userRole")] public class SysUserRoleController : BaseController { private readonly ISysUserRoleService SysUserRoleService; private readonly ISysUserService UserService; public SysUserRoleController( ISysUserRoleService sysUserRoleService, ISysUserService userService) { SysUserRoleService = sysUserRoleService; UserService = userService; } /// /// 根据角色编号获取已分配的用户 /// /// /// [HttpGet("get/{roleId}")] [ActionPermissionFilter(Permission = "system:roleusers:query")] public IActionResult GetList(long roleId = 0) { var list = SysUserRoleService.GetSysUsersByRoleId(roleId); return SUCCESS(list, TIME_FORMAT_FULL); } /// /// 添加角色用户 /// /// [HttpPost("create")] [ActionPermissionFilter(Permission = "system:roleusers:add")] [Log(Title = "添加角色用户", BusinessType = Infrastructure.Enums.BusinessType.INSERT)] public IActionResult Create([FromBody] RoleUsersCreateDto roleUsersCreateDto) { var response = SysUserRoleService.InsertRoleUser(roleUsersCreateDto); return SUCCESS(response); } /// /// 删除角色用户 /// /// /// [HttpPost("delete")] [ActionPermissionFilter(Permission = "system:roleusers:del")] [Log(Title = "删除角色用户", BusinessType = Infrastructure.Enums.BusinessType.DELETE)] public IActionResult Delete([FromBody] RoleUsersCreateDto roleUsersCreateDto) { return SUCCESS(SysUserRoleService.DeleteRoleUserByUserIds(roleUsersCreateDto.RoleId, roleUsersCreateDto.UserIds)); } /// /// 获取未分配用户角色 /// /// /// [HttpGet("GetExcludeUsers")] public IActionResult GetExcludeUsers(long roleId = 0) { if (roleId <= 0) { throw new CustomException(ResultCode.PARAM_ERROR, "roleId不能为空"); } // 取得该角色所有添加的用户 var userIds = SysUserRoleService.GetSysUsersByRoleId(roleId).Select(f => f.UserId); SysUser userQuery = new(); userQuery.Status = "0"; PagerInfo pager = new(1, 50); // 获取未添加用户 var list = UserService.SelectUserList(userQuery, pager).Where(m => !userIds.Contains(m.UserId)); return SUCCESS(list, TIME_FORMAT_FULL); } } }