using JSMachine.WMS.App.Dto; using JSMachine.WMS.Application.Dto; using JSMachine.WMS.Domain.Entity; using JSMachine.WMS.Domain.Entity.Enums; using SqlSugar; using System.Linq.Expressions; namespace JSMachine.WMS.WebHost.Models { public class OperationLogQueryParam { public DateTime? StartTime { get; set; } public DateTime? EndTime { get; set; } public string UserId { get; set; } public OperationType OperationType { get; set; } public OperationSource OperationSource { get; set; } public int PageIndex { get; set; } public int PageSize { get; set; } public PageQueryCondition BuildConditional() { List conditionalModels = new(); if (StartTime != null) { conditionalModels.Add(new ConditionalModel() { FieldName = nameof(OperationLogDto.CreationTime), ConditionalType = ConditionalType.GreaterThanOrEqual, FieldValue = StartTime.Value.ToString() }); } if (EndTime != null) { conditionalModels.Add(new ConditionalModel() { FieldName = nameof(OperationLogDto.CreationTime), ConditionalType = ConditionalType.LessThanOrEqual, FieldValue = EndTime.Value.ToString() }); } if (!string.IsNullOrEmpty(UserId)) { conditionalModels.Add(new ConditionalModel() { FieldName = nameof(OperationLogDto.UserId), ConditionalType = ConditionalType.Equal, FieldValue = UserId }); } if (OperationType != OperationType.None) { conditionalModels.Add(new ConditionalModel() { FieldName = nameof(OperationLogDto.OperationType), ConditionalType = ConditionalType.Equal, FieldValue = ((int)OperationType).ToString() }); } if (OperationSource != OperationSource.None) { conditionalModels.Add(new ConditionalModel() { FieldName = nameof(OperationLogDto.OperationSource), ConditionalType = ConditionalType.Equal, FieldValue = ((int)OperationSource).ToString() }); } return new PageQueryCondition { CurrentPage = PageIndex, PageSize = PageSize, OrderByFiled = nameof(OperationLogDto.CreationTime), OrderByType = OrderByType.Desc, Filters = conditionalModels }; } } }