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); }