fix 查询优化
This commit is contained in:
@@ -3,71 +3,80 @@ using Kurisu.Core.CustomClass;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Kurisu.Core.DataAccess.Dto;
|
||||
|
||||
namespace Dlhis.Canteen.Order.Request
|
||||
namespace Dlhis.Canteen.Order.Request;
|
||||
|
||||
public class BalanceRecordUserPageRequest : PageDto, IValidatableObject
|
||||
{
|
||||
public class BalanceRecordUserPageRequest : PageDto, IValidatableObject
|
||||
/// <summary>
|
||||
/// 查询日期范围类型 DateTimeSearchEnumType
|
||||
/// </summary>
|
||||
[EnumDataType(typeof(DateTimeSearchEnumType))]
|
||||
public DateTimeSearchEnumType? SearchDateTimeDimension { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 消费应用类型
|
||||
/// </summary>
|
||||
public CanteenApplicaitonTypeEnumType? ApplicationType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日期范围查询
|
||||
/// </summary>
|
||||
public DateTimePeriod SearchDateTimePeriod { get; set; }
|
||||
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
/// <summary>
|
||||
/// 查询日期范围类型 DateTimeSearchEnumType
|
||||
/// </summary>
|
||||
[EnumDataType(typeof(DateTimeSearchEnumType))]
|
||||
public DateTimeSearchEnumType? SearchDateTimeDimension { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 消费应用类型
|
||||
/// </summary>
|
||||
public CanteenApplicaitonTypeEnumType? ApplicationType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日期范围查询
|
||||
/// </summary>
|
||||
public DateTimePeriod SearchDateTimePeriod { get; set; }
|
||||
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
var now = DateTime.Now;
|
||||
if (SearchDateTimeDimension.HasValue)
|
||||
{
|
||||
var now = DateTime.Now;
|
||||
if (SearchDateTimeDimension.HasValue)
|
||||
//重新赋值
|
||||
SearchDateTimePeriod = new DateTimePeriod();
|
||||
|
||||
if (SearchDateTimeDimension == DateTimeSearchEnumType.Day)
|
||||
{
|
||||
//重新赋值
|
||||
SearchDateTimePeriod = new DateTimePeriod();
|
||||
|
||||
if (SearchDateTimeDimension == DateTimeSearchEnumType.Day)
|
||||
{
|
||||
SearchDateTimePeriod.Start = DateTime.Today;
|
||||
SearchDateTimePeriod.End = new DateTime(now.Year, now.Month, now.Day, 23, 59, 59);
|
||||
}
|
||||
else if (SearchDateTimeDimension == DateTimeSearchEnumType.Week)
|
||||
{
|
||||
SearchDateTimePeriod.Start = now.AddDays(1 - (int)now.DayOfWeek);
|
||||
SearchDateTimePeriod.End = SearchDateTimePeriod.Start.Value.AddDays(6);
|
||||
}
|
||||
else if (SearchDateTimeDimension == DateTimeSearchEnumType.Month)
|
||||
{
|
||||
SearchDateTimePeriod.Start = new DateTime(now.Year, now.Month, 1);
|
||||
SearchDateTimePeriod.End = SearchDateTimePeriod.Start.Value.AddMonths(1).AddDays(-1);
|
||||
}
|
||||
else if (SearchDateTimeDimension == DateTimeSearchEnumType.Season)
|
||||
{
|
||||
SearchDateTimePeriod.Start = now.AddMonths(0 - (now.Month - 1) % 3);
|
||||
SearchDateTimePeriod.End = now.AddMonths(3 - (now.Month - 1) % 3).AddMonths(1).AddDays(-1);
|
||||
}
|
||||
else if (SearchDateTimeDimension == DateTimeSearchEnumType.HalfOfYear)
|
||||
{
|
||||
SearchDateTimePeriod.Start = now.AddDays(-180);
|
||||
SearchDateTimePeriod.End = now;
|
||||
}
|
||||
else if (SearchDateTimeDimension == DateTimeSearchEnumType.Year)
|
||||
{
|
||||
SearchDateTimePeriod.Start = new DateTime(now.Year, 1, 1);
|
||||
SearchDateTimePeriod.End = SearchDateTimePeriod.Start.Value.AddYears(1).AddDays(-1);
|
||||
}
|
||||
|
||||
SearchDateTimePeriod.Start = SearchDateTimePeriod.Start.Value.Date;
|
||||
SearchDateTimePeriod.End = SearchDateTimePeriod.End.Value.Date;
|
||||
SearchDateTimePeriod.Start = DateTime.Today;
|
||||
SearchDateTimePeriod.End = new DateTime(now.Year, now.Month, now.Day, 23, 59, 59);
|
||||
}
|
||||
else if (SearchDateTimeDimension == DateTimeSearchEnumType.Week)
|
||||
{
|
||||
SearchDateTimePeriod.Start = now.AddDays(1 - (int)now.DayOfWeek);
|
||||
SearchDateTimePeriod.End = SearchDateTimePeriod.Start.Value.AddDays(6);
|
||||
}
|
||||
else if (SearchDateTimeDimension == DateTimeSearchEnumType.Month)
|
||||
{
|
||||
SearchDateTimePeriod.Start = new DateTime(now.Year, now.Month, 1);
|
||||
SearchDateTimePeriod.End = SearchDateTimePeriod.Start.Value.AddMonths(1).AddDays(-1);
|
||||
}
|
||||
else if (SearchDateTimeDimension == DateTimeSearchEnumType.Season)
|
||||
{
|
||||
SearchDateTimePeriod.Start = now.AddMonths(0 - (now.Month - 1) % 3);
|
||||
SearchDateTimePeriod.End = now.AddMonths(3 - (now.Month - 1) % 3).AddMonths(1).AddDays(-1);
|
||||
}
|
||||
else if (SearchDateTimeDimension == DateTimeSearchEnumType.HalfOfYear)
|
||||
{
|
||||
SearchDateTimePeriod.Start = now.AddDays(-180);
|
||||
SearchDateTimePeriod.End = now;
|
||||
}
|
||||
else if (SearchDateTimeDimension == DateTimeSearchEnumType.Year)
|
||||
{
|
||||
SearchDateTimePeriod.Start = new DateTime(now.Year, 1, 1);
|
||||
SearchDateTimePeriod.End = SearchDateTimePeriod.Start.Value.AddYears(1).AddDays(-1);
|
||||
}
|
||||
|
||||
yield break;
|
||||
SearchDateTimePeriod.Start = SearchDateTimePeriod.Start.Value.Date;
|
||||
SearchDateTimePeriod.End = SearchDateTimePeriod.End.Value.Date;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (SearchDateTimePeriod != null)
|
||||
{
|
||||
if (SearchDateTimePeriod.End != null)
|
||||
{
|
||||
SearchDateTimePeriod.End = SearchDateTimePeriod.End.Value.AddDays(1).AddSeconds(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user