Пример #1
0
        public async Task <IActionResult> GetUserListByRole(QueryBase queryBase)
        {
            if (queryBase.Value.Ext_IsEmpty())
            {
                return(Json(new { }));
            }
            var roleId = queryBase.Value.Ext_ToInt32();
            var users  = (await _userRoleService.GetListAsync(item => item.Id > 0 && item.RoleId == roleId))
                         .data.Select(item => item.UserId).ToList();
            Expression <Func <Sys_UserDto, bool> > queryExp = item => item.Id > 0 && users.Contains(item.Id);
            var dto = await _userService.GetPageDataAsync(queryBase, queryExp, queryBase.OrderBy, queryBase.OrderDir);

            var result = new DataTableModel
            {
                draw            = queryBase.Draw,
                recordsTotal    = dto.recordsTotal,
                recordsFiltered = dto.recordsTotal,
                data            = dto.data.Select(d => new
                {
                    rowNum     = ++queryBase.Start,
                    userName   = d.UserName,
                    realName   = d.RealName,
                    email      = d.Email,
                    statusName = d.StatusName,
                    id         = d.Id.ToString(),
                })
            };

            return(Json(result));
        }
Пример #2
0
        public async Task <Result <List <Sys_UserRoleDto> > > AddRoles(int userId, List <int> roleIds)
        {
            var           result     = new Result <List <Sys_UserRoleDto> >();
            List <string> roleNames  = new List <string>();
            var           userResult = await GetByIdAsync(userId);

            if (!userResult.flag)
            {
                result.msg = "用户不存在";
                return(result);
            }
            if (roleIds.Count <= 0)
            {
                result.msg = "请选择要添加的角色";
                return(result);
            }
            var userRoleResult = await _userRoleService.GetListAsync(item => item.UserId == userResult.data.Id);

            var userExistedRoleIds = userRoleResult.data.Select(item => item.RoleId).ToList();
            var userRoles          = new List <Sys_UserRoleDto>();

            foreach (var roleId in roleIds)
            {
                if (!userExistedRoleIds.Contains(roleId))
                {
                    userRoles.Add(new Sys_UserRoleDto
                    {
                        UserId = userResult.data.Id,
                        RoleId = roleId
                    });
                }
            }
            result = await _userRoleService.AddAsync(userRoles);

            return(result);
        }