Ejemplo n.º 1
0
        /// <summary>
        /// 获取所有用户信息
        /// </summary>
        /// <returns></returns>
        public virtual async Task <PagingResponseMessage <UsersResponse> > GettingUsers(OranizationUserRequest condition)
        {
            var users          = DataBaseUser.TokenModel;
            var pagingResponse = new PagingResponseMessage <UsersResponse>();

            ////判断该用户的权限,锁定该组织范围
            //1.1.找到该用户的所有权限
            var scopeList = await _RolesStore.BrowsingScope(users.Id, "User_Add_Edit");

            if (scopeList == null)
            {
                pagingResponse.Message = "暂无权限,请联系管理";
                pagingResponse.Code    = ResponseCodeDefines.NotAllow;
                return(pagingResponse);
            }

            //1.2.对应权限的所有的可以浏览的范围(默认包含可查看本组织的内容)
            scopeList.Add(users.OrganizationId);
            var query = _IUserStore.GetUserInformation().Where(p => scopeList.Contains(p.OrganizationId));

            if (condition.OranizationId != null)
            {
                query = _IUserStore.GetUserInformation().Where(u => u.OrganizationId == condition.OranizationId && !u.IsDeleted);
            }
            //员工管理筛选条件【角色】
            if (condition.RoleId != null)
            {
                query = from c in query
                        join b in _RolesStore.GetUserRoleAsync() on
                        c.Id equals b.UserId into c1
                        from c2 in c1.DefaultIfEmpty()
                        where c2.RoleId.Equals(condition.RoleId)
                        select c;
            }

            //员工管理筛选条件【姓名】
            if (condition.TrueName != null)
            {
                query = query.Where(p => p.TrueName.Contains(condition.TrueName));
            }

            //员工管理筛选条件【部门】
            if (condition.EpartmentId != null)
            {
                query = query.Where(p => p.OrganizationId.Equals(condition.EpartmentId));
            }

            //员工管理筛选条件【离职】
            if (condition.IsDelete != null)
            {
                query = query.Where(p => p.IsDeleted.Equals(condition.IsDelete));
            }

            pagingResponse.TotalCount = await query.CountAsync();

            var qlist = await query.Skip(condition.PageIndex *condition.PageSize).Take(condition.PageSize).ToListAsync();

            pagingResponse.PageIndex = condition.PageIndex;
            pagingResponse.PageSize  = condition.PageSize;
            pagingResponse.Extension = _Mapper.Map <List <UsersResponse> >(qlist);
            return(pagingResponse);
        }
Ejemplo n.º 2
0
        public async Task <PagingResponseMessage <UsersResponse> > GetUsersMessageAsync(OranizationUserRequest conditionSearch)
        {
            var users = DataBaseUser.TokenModel;

            _Logger.LogInformation($"\r\n 用户{users?.UserName ?? ""},其ID:({users?.Id ?? ""}) 获取所有用户信息:\r\n" + (conditionSearch != null ? JsonHelpers.ToJSON(conditionSearch) : ""));

            var response = new PagingResponseMessage <UsersResponse>();

            if (conditionSearch == null)
            {
                _Logger.LogInformation($"{users.UserName}获取所有用户信息,请求的参数为空。");
                response.Code    = ResponseCodeDefines.NotAllow;
                response.Message = "请求参数为空";
            }
            try
            {
                return(await _UserManager.GettingUsers(conditionSearch));
            }
            catch (Exception el)
            {
                _Logger.LogError($"用户{users?.UserName ?? ""}({users?.Id ?? ""})获取所有用户信息报错:\r\n{el.ToString()}");
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = $"获取所有用户信息报错:{ el.Message}";
            }
            return(response);
        }