Browse Source

采购限时任务更新为5小时

liangku_skuoptimazation
shanji 2 years ago
parent
commit
eb005347c2
  1. 50
      BBWYB.Server.Business/TimeLimitTask/TimeLimitRules.cs

50
BBWYB.Server.Business/TimeLimitTask/TimeLimitRules.cs

@ -14,7 +14,7 @@ namespace BBWYB.Server.Business
{ {
calculateExpirationTimeAlgorithmDictionary = new Dictionary<Enums.TimeLimitTaskType, Func<DateTime, DateTime>>() calculateExpirationTimeAlgorithmDictionary = new Dictionary<Enums.TimeLimitTaskType, Func<DateTime, DateTime>>()
{ {
{ Enums.TimeLimitTaskType., CalculateExpirationTimeFor8WorkHour }, { Enums.TimeLimitTaskType., CalculateExpirationTimeFor5WorkHour },
{ Enums.TimeLimitTaskType., CalculateExpirationTimeFor8WorkHour }, { Enums.TimeLimitTaskType., CalculateExpirationTimeFor8WorkHour },
{ Enums.TimeLimitTaskType., CalculateExpirationTimeFor8WorkHour }, { Enums.TimeLimitTaskType., CalculateExpirationTimeFor8WorkHour },
{ Enums.TimeLimitTaskType., CalculateExpirationTimeFor8WorkHour }, { Enums.TimeLimitTaskType., CalculateExpirationTimeFor8WorkHour },
@ -171,6 +171,54 @@ namespace BBWYB.Server.Business
return startTime.Date.AddDays(addDay).AddHours(addHour).AddSeconds(addSeconds); return startTime.Date.AddDays(addDay).AddHours(addHour).AddSeconds(addSeconds);
} }
private DateTime CalculateExpirationTimeFor5WorkHour(DateTime startTime)
{
int addDay = 0, addHour = 0, addSeconds = 0;
//先确定是否为周日
if (startTime.DayOfWeek == DayOfWeek.Sunday)
{
addDay = 1;
addHour = 14;
}
else
{
if (startTime.Hour < 9)
addHour = 14;
else if (startTime.Hour >= 9 && startTime.Hour < 12)
{
addHour = 13;
var to12senconds = Convert.ToInt32((startTime.Date.AddHours(12) - startTime).TotalSeconds);
addSeconds = 18000 - to12senconds;
}
else if (startTime.Hour >= 12 && startTime.Hour < 13)
{
addHour = 18;
}
else if (startTime.Hour >= 13 && startTime.Hour < 18)
{
if (startTime.Hour == 13 && startTime.Minute <= 5)
{
//从16点开始小于5分钟以内,以当天18点结束
addHour = 18;
}
else
{
addDay = CalculateAddDay(startTime.DayOfWeek);
addHour = 9;
var to18senconds = Convert.ToInt32((startTime.Date.AddHours(18) - startTime).TotalSeconds);
addSeconds = 18000 - to18senconds;
}
}
else if (startTime.Hour >= 18)
{
//下一个工作日的18点结束
addDay = CalculateAddDay(startTime.DayOfWeek);
addHour = 14;
}
}
return startTime.Date.AddDays(addDay).AddHours(addHour).AddSeconds(addSeconds);
}
/// <summary> /// <summary>
/// 计算剩余任务时间(秒) /// 计算剩余任务时间(秒)
/// </summary> /// </summary>

Loading…
Cancel
Save