You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1007 B

2 weeks ago
<?php
namespace App\Support;
use Carbon\Carbon;
/**
* 课程/活动进度1 未开始 / 2 进行中 / 3 已结束
5 days ago
* 仅按开课/活动起止日期判定;报名窗口不影响进度(报名中由展示层单独处理)
2 weeks ago
*/
class ScheduleProgressStatus
{
public static function resolve(
?string $periodStart,
?string $periodEnd,
?string $signupStart = null,
?string $signupEnd = null,
): int {
$today = now()->startOfDay();
if ($periodEnd) {
$endDate = Carbon::parse($periodEnd)->startOfDay();
if ($today->gt($endDate)) {
return 3;
}
}
if ($periodStart) {
$startDate = Carbon::parse($periodStart)->startOfDay();
5 days ago
if ($today->lt($startDate)) {
return 1;
2 weeks ago
}
5 days ago
if (! $periodEnd || $today->lte(Carbon::parse($periodEnd)->startOfDay())) {
2 weeks ago
return 2;
}
}
5 days ago
return 1;
2 weeks ago
}
}