diff --git a/Src/Dlhis.Common/ApiLog/Request/ApiLogRequest.cs b/Src/Dlhis.Common/ApiLog/Request/ApiLogRequest.cs index c08de14e..e6cac2f1 100644 --- a/Src/Dlhis.Common/ApiLog/Request/ApiLogRequest.cs +++ b/Src/Dlhis.Common/ApiLog/Request/ApiLogRequest.cs @@ -1,14 +1,27 @@ -using Kurisu.Core.DataAccess.Dto; +using Kurisu.Core.CustomClass; +using Kurisu.Core.DataAccess.Dto; using System.ComponentModel.DataAnnotations; -namespace Dlhis.Common.ApiLog.Request +namespace Dlhis.Common.ApiLog.Request; + +public class ApiLogRequest : PageDto, IValidatableObject { - public class ApiLogRequest : PageDto + /// + /// 日志级别 LogLevel + /// + [EnumDataType(typeof(LogLevel))] + public LogLevel? Level { get; set; } + + + public DateTimePeriod SearchDateTimePeriod { get; set; } + + public IEnumerable Validate(ValidationContext validationContext) { - /// - /// 日志级别 LogLevel - /// - [EnumDataType(typeof(LogLevel))] - public LogLevel? Level { get; set; } + if (SearchDateTimePeriod != null && SearchDateTimePeriod.End.HasValue) + { + SearchDateTimePeriod.End = SearchDateTimePeriod.End.Value.AddDays(1).AddSeconds(-1); + } + + yield break; } } diff --git a/Src/Dlhis.Common/ApiLog/Services/ApiLogService.cs b/Src/Dlhis.Common/ApiLog/Services/ApiLogService.cs index e9d9cc66..54bdd9de 100644 --- a/Src/Dlhis.Common/ApiLog/Services/ApiLogService.cs +++ b/Src/Dlhis.Common/ApiLog/Services/ApiLogService.cs @@ -22,6 +22,8 @@ namespace Dlhis.Common.ApiLog.Services public async Task> GetLogsAsync(ApiLogRequest request) { var logs = await _dbContext.ChangeDb("log").Queryable() + .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true && request.SearchDateTimePeriod?.End.HasValue == true, + x => x._ts >= request.SearchDateTimePeriod.Start && x._ts <= request.SearchDateTimePeriod.End) .WhereIF(request.Search.IsPresent(), x => x.Message.Contains(request.Search)) .WhereIF(request.Level.HasValue, x => x.Level == request.Level) .OrderBy(x => x.Timestamp, OrderByType.Desc)