示例#1
0
        public virtual async Task <PagingResponseMessage <UserLoginLog> > Search(UserLoginLogSearchCondition condition, CancellationToken cancellationToken)
        {
            PagingResponseMessage <UserLoginLog> pagingResponse = new PagingResponseMessage <UserLoginLog>();

            if (condition == null)
            {
                throw new ArgumentNullException(nameof(condition));
            }
            var query = Store.UserLoginLogs;

            if (condition?.OrganizationIds?.Count > 0)
            {
                query = query.Where(a => condition.OrganizationIds.Contains(a.OrganizationId));
            }
            if (!string.IsNullOrEmpty(condition.KeyWord))
            {
                query = query.Where(a => a.UserName.Contains(condition.KeyWord) || a.TrueName.Contains(condition.KeyWord));
            }
            if (condition?.UserIds?.Count > 0)
            {
                query = query.Where(a => condition.UserIds.Contains(a.UserId));
            }
            if (condition?.StartTime != null)
            {
                query = query.Where(a => a.LoginTime >= condition.StartTime.Value);
            }
            if (condition?.EndTime != null)
            {
                query = query.Where(a => a.LoginTime <= condition.EndTime.Value);
            }
            pagingResponse.TotalCount = await query.CountAsync();

            var resulte = await query.OrderByDescending(a => a.LoginTime).Skip(condition.PageIndex * condition.PageSize).Take(condition.PageSize).ToListAsync(cancellationToken);

            pagingResponse.PageIndex = condition.PageIndex;
            pagingResponse.PageSize  = condition.PageSize;
            pagingResponse.Extension = resulte;
            return(pagingResponse);
        }
        public async Task <PagingResponseMessage <UserLoginLog> > Search(string userId, [FromBody] UserLoginLogSearchCondition condition)
        {
            PagingResponseMessage <UserLoginLog> response = new PagingResponseMessage <UserLoginLog>();

            if (!ModelState.IsValid)
            {
                response.Code = ResponseCodeDefines.ModelStateInvalid;
                return(response);
            }
            var organizationIds = await _permissionExpansionManager.GetOrganizationOfPermission(userId, "UserLoginLogRetrieve");

            if (organizationIds?.Count == 0)
            {
                response.Code    = ResponseCodeDefines.NotAllow;
                response.Message = "没有权限";
                return(response);
            }
            try
            {
                if (condition.OrganizationIds == null)
                {
                    condition.OrganizationIds = new List <string>();
                }
                condition.OrganizationIds.AddRange(organizationIds);
                response = await _userLoginLogManager.Search(condition, HttpContext.RequestAborted);
            }
            catch (Exception e)
            {
                response.Code    = ResponseCodeDefines.ServiceError;
                response.Message = e.Message;
            }
            return(response);
        }