time
This commit is contained in:
parent
4627cf9bb5
commit
c65fd9d3c2
@ -1118,6 +1118,20 @@ namespace YD_YiLu.Api.Services.Impl
|
||||
|
||||
if (!trains.Any())
|
||||
{
|
||||
if (IsYtpSummaryDateType(dto.DateType))
|
||||
{
|
||||
result.GradeList = new List<YtpGradeListItem>
|
||||
{
|
||||
new YtpGradeListItem
|
||||
{
|
||||
Time = GetYtpSummaryTime(dto.DateType),
|
||||
Duration = "0",
|
||||
Count = "0"
|
||||
}
|
||||
};
|
||||
return result;
|
||||
}
|
||||
|
||||
var today = DateTime.Now.Date;
|
||||
result.GradeList = Enumerable.Range(0, 7)
|
||||
.Select(i => today.AddDays(i - 6))
|
||||
@ -1137,22 +1151,37 @@ namespace YD_YiLu.Api.Services.Impl
|
||||
result.TrainHours = (totalSeconds / 3600.0).ToString("0.00");
|
||||
result.TrainCounts = trains.Count;
|
||||
|
||||
var graphEnd = end?.Date ?? DateTime.Now.Date;
|
||||
var graphStart = graphEnd.AddDays(-6);
|
||||
result.GradeList = Enumerable.Range(0, 7)
|
||||
.Select(i => graphStart.AddDays(i))
|
||||
.Select(day =>
|
||||
if (IsYtpSummaryDateType(dto.DateType))
|
||||
{
|
||||
result.GradeList = new List<YtpGradeListItem>
|
||||
{
|
||||
var dayTrains = trains.Where(x => x.StartTime.Date == day).ToList();
|
||||
var daySeconds = dayTrains.Sum(x => x.Duration);
|
||||
return new YtpGradeListItem
|
||||
new YtpGradeListItem
|
||||
{
|
||||
Time = day.ToString("MM-dd"),
|
||||
Duration = SecondsToHours(daySeconds),
|
||||
Count = dayTrains.Count.ToString()
|
||||
};
|
||||
})
|
||||
.ToList();
|
||||
Time = GetYtpSummaryTime(dto.DateType),
|
||||
Duration = SecondsToHours(totalSeconds),
|
||||
Count = trains.Count.ToString()
|
||||
}
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
var graphEnd = end?.Date ?? DateTime.Now.Date;
|
||||
var graphStart = graphEnd.AddDays(-6);
|
||||
result.GradeList = Enumerable.Range(0, 7)
|
||||
.Select(i => graphStart.AddDays(i))
|
||||
.Select(day =>
|
||||
{
|
||||
var dayTrains = trains.Where(x => x.StartTime.Date == day).ToList();
|
||||
var daySeconds = dayTrains.Sum(x => x.Duration);
|
||||
return new YtpGradeListItem
|
||||
{
|
||||
Time = day.ToString("MM-dd"),
|
||||
Duration = SecondsToHours(daySeconds),
|
||||
Count = dayTrains.Count.ToString()
|
||||
};
|
||||
})
|
||||
.ToList();
|
||||
}
|
||||
|
||||
result.GraphTrainList = trains
|
||||
.GroupBy(x => x.CourseId)
|
||||
@ -1412,6 +1441,31 @@ namespace YD_YiLu.Api.Services.Impl
|
||||
return (seconds / 3600.0).ToString("0.####");
|
||||
}
|
||||
|
||||
private static bool IsYtpSummaryDateType(int dateType)
|
||||
{
|
||||
return dateType == 4 || dateType == 9;
|
||||
}
|
||||
|
||||
private static string GetYtpSummaryTime(int dateType)
|
||||
{
|
||||
if (dateType == 9)
|
||||
return DateTime.Now.Year.ToString();
|
||||
|
||||
var (start, end) = GetCurrentSemesterRange(DateTime.Now.Date);
|
||||
return $"{start:MM-dd}~{end:MM-dd}";
|
||||
}
|
||||
|
||||
private static (DateTime start, DateTime end) GetCurrentSemesterRange(DateTime today)
|
||||
{
|
||||
if (today.Month >= 2 && today.Month <= 8)
|
||||
return (new DateTime(today.Year, 2, 1), new DateTime(today.Year, 8, 31));
|
||||
|
||||
if (today.Month >= 9)
|
||||
return (new DateTime(today.Year, 9, 1), new DateTime(today.Year + 1, 1, 31));
|
||||
|
||||
return (new DateTime(today.Year - 1, 9, 1), new DateTime(today.Year, 1, 31));
|
||||
}
|
||||
|
||||
private static (DateTime? start, DateTime? end) GetDateRange(int dateType, string queryStart, string queryEnd)
|
||||
{
|
||||
var today = DateTime.Now.Date;
|
||||
@ -1423,7 +1477,7 @@ namespace YD_YiLu.Api.Services.Impl
|
||||
1 => (today, today),
|
||||
2 => (weekStart, today),
|
||||
3 => (monthStart, today),
|
||||
4 => (today.Month >= 9 ? new DateTime(today.Year, 9, 1) : new DateTime(today.Year - 1, 9, 1), today),
|
||||
4 => GetCurrentSemesterRange(today),
|
||||
5 => (DateTime.TryParse(queryStart, out var s) ? s : (DateTime?)null, DateTime.TryParse(queryEnd, out var e) ? e : (DateTime?)null),
|
||||
6 => (weekStart.AddDays(-7), weekStart.AddDays(-1)),
|
||||
7 => (monthStart.AddMonths(-1), monthStart.AddDays(-1)),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user