90 lines
2.8 KiB
C#
90 lines
2.8 KiB
C#
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
|
|
};
|
|
}
|
|
}
|
|
}
|