#feature: add project&cronjob management

This commit is contained in:
2026-01-16 12:14:43 +08:00
parent bbe68839e3
commit 381d5e6e49
19 changed files with 2157 additions and 84 deletions

View File

@@ -0,0 +1,55 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Services\ScheduledTaskService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class ScheduledTaskController extends Controller
{
public function __construct(
private ScheduledTaskService $taskService
) {}
/**
* 获取所有定时任务列表
*/
public function index(): JsonResponse
{
return response()->json([
'success' => true,
'data' => [
'tasks' => $this->taskService->getAllTasks(),
],
]);
}
/**
* 切换定时任务启用状态
*/
public function toggle(Request $request, string $name): JsonResponse
{
$validated = $request->validate([
'enabled' => 'required|boolean',
]);
try {
$this->taskService->setTaskEnabled($name, $validated['enabled']);
return response()->json([
'success' => true,
'data' => [
'enabled' => $validated['enabled'],
],
'message' => $validated['enabled'] ? '任务已启用' : '任务已禁用',
]);
} catch (\InvalidArgumentException $e) {
return response()->json([
'success' => false,
'message' => $e->getMessage(),
], 400);
}
}
}