namespace Yw.Application { /// /// RoleUserMapping /// [Route("Auth/Role/User/Mapping")] [ApiDescriptionSettings("Auth", Name = "角色与用户映射", Order = 5800)] public class RoleUser_Controller : IDynamicApiController { private readonly Service.UserRoleMapping _service = new(); /// /// 获取下发用户列表 /// [Route("GetAuthorizeUserList@V1.0")] [HttpGet] public List GetAuthorizeUserList([FromQuery][Required] RoleIDInput input) { var role = new Service.Role().GetByID(input.RoleID); if (role == null) { throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"RoleID:{input.RoleID} 数据不存在"); } var dict = _service.GetAuthorizeUserList(input.RoleID); if (dict.Count < 1) { return default; } var vmList = new List(); foreach (var item in dict) { var vm = new RoleUserHaveDto(item.Key, item.Value); vmList.Add(vm); } return vmList; } /// /// 设置 /// [Route("Set@V1.0")] [HttpPost] public bool Set([Required] SetRoleUserInput input) { var role = new Service.Role().GetByID(input.RoleID); if (role == null) { throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"RoleID:{input.RoleID} 数据不存在"); } if (input.UserIds != null && input.UserIds.Count > 0) { var userList = new Service.User().GetByIds(input.UserIds); if (userList == null || userList.Count < 1) { throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"用户id列表与数据库不匹配"); } var corpIds = userList.Select(x => x.CorpID).Distinct().ToList(); if (corpIds.Count != 1 || corpIds[0] != role.CorpID) { throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"用户id列表与数据库不匹配"); } } var bol = _service.SetByRole(input.RoleID, input.UserIds); return bol; } } }