Files
ww-jst/wmsjst/JSMachine.WMS.WebHost/Models/OperationLogQueryParam.cs
T

90 lines
2.8 KiB
C#
Raw Normal View History

2026-09-02 16:31:50 +08:00
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<IConditionalModel> 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
};
}
}
}