'datetime', 'created_at' => 'datetime', 'updated_at' => 'datetime', ]; /** * 按用户ID查询作用域 * * @param \Illuminate\Database\Eloquent\Builder $query * @param int $userId 用户ID * @return \Illuminate\Database\Eloquent\Builder */ public function scopeByUser($query, int $userId) { return $query->where('user_id', $userId); } /** * 获取用户的最后清理时间 * * @param int $userId 用户ID * @return \Carbon\Carbon|null */ public static function getUserLastClearTime(int $userId): ?\Carbon\Carbon { $record = static::byUser($userId)->first(); return $record ? $record->cleared_at : null; } /** * 设置用户的清理时间 * * @param int $userId 用户ID * @param \Carbon\Carbon|null $clearTime 清理时间,默认为当前时间 * @return static */ public static function setUserClearTime(int $userId, ?\Carbon\Carbon $clearTime = null): static { $clearTime = $clearTime ?: now(); return static::updateOrCreate( ['user_id' => $userId], ['cleared_at' => $clearTime] ); } }