perf: 时间范围任务

This commit is contained in:
kuaifan
2021-12-23 01:07:22 +08:00
parent 6c34f083e3
commit 663a8bb06d
3 changed files with 25 additions and 15 deletions

View File

@@ -54,6 +54,7 @@ use Request;
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProjectTaskUser[] $taskUser
* @property-read int|null $task_user_count
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask authData($userid = null, $owner = false)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask betweenTime($start, $end)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask newQuery()
* @method static \Illuminate\Database\Query\Builder|ProjectTask onlyTrashed()
@@ -283,6 +284,27 @@ class ProjectTask extends AbstractModel
return $query;
}
/**
* 指定范围内的任务
* @param $query
* @param $start
* @param $end
* @return mixed
*/
public function scopeBetweenTime($query, $start, $end)
{
$query->where(function ($q1) use ($start, $end) {
$q1->where(function ($q2) use ($start) {
$q2->where('start_at', '<=', $start)->where('end_at', '>=', $start);
})->orWhere(function ($q2) use ($end) {
$q2->where('start_at', '<=', $end)->where('end_at', '>=', $end);
})->orWhere(function ($q2) use ($start, $end) {
$q2->where('start_at', '>', $start)->where('end_at', '<', $end);
});
});
return $query;
}
/**
* 添加任务
* @param $data