using Easy.Admin.Application.Logging.Dtos; namespace Easy.Admin.Application.Logging; /// /// 登录日志 /// public class SysSigninLogService : IDynamicApiController { private readonly ISqlSugarRepository _repository; public SysSigninLogService(ISqlSugarRepository repository) { _repository = repository; } /// /// 登录日志分页查询 /// /// /// [DisplayName("登录日志列表")] [HttpGet] public async Task> List([FromQuery] LogPageQueryInput dto) { return await _repository.AsQueryable().InnerJoin((log, user) => log.UserId == user.Id) .WhereIF(!string.IsNullOrWhiteSpace(dto.Keyword), log => log.Message.Contains(dto.Keyword)) .WhereIF(!string.IsNullOrWhiteSpace(dto.Account), (log, user) => user.Account.Contains(dto.Account)) .OrderByDescending(log => log.Id) .Select((log, user) => new SigninLogPageOutput { Id = log.Id, Message = log.Message, RemoteIp = log.RemoteIp, Location = log.Location, OsDescription = log.OsDescription, UserAgent = log.UserAgent, CreatedTime = log.CreatedTime, Account = user.Account }).ToPagedListAsync(dto); } }