#feature: some update

This commit is contained in:
2026-08-12 18:00:09 +08:00
parent ba916f5ce1
commit 103340536b
39 changed files with 2916 additions and 227 deletions
+6 -1
View File
@@ -2,6 +2,7 @@
use App\Http\Controllers\Admin\AdminMetaController;
use App\Http\Controllers\Admin\ConfigController;
use App\Http\Controllers\Admin\ErpRequestReportConfigController;
use App\Http\Controllers\Admin\IpUserMappingController;
use App\Http\Controllers\Admin\JenkinsBuildController;
use App\Http\Controllers\Admin\JenkinsDeploymentController;
@@ -40,7 +41,7 @@ Route::prefix('sql-generator')->group(function () {
});
// 进产诊断 API 路由
Route::prefix('production-diagnosis')->group(function () {
Route::prefix('production-diagnosis')->middleware('throttle:30,1')->group(function () {
Route::post('/diagnose', [ProductionDiagnosisController::class, 'diagnose']);
});
@@ -90,6 +91,8 @@ Route::get('/admin/meta', [AdminMetaController::class, 'show']);
// 管理员IP白名单限定的后台接口
Route::prefix('admin')->middleware('admin.ip')->group(function () {
Route::get('/erp-request-report/config', [ErpRequestReportConfigController::class, 'show']);
Route::put('/erp-request-report/config', [ErpRequestReportConfigController::class, 'update']);
Route::get('/configs', [ConfigController::class, 'index']);
Route::post('/configs', [ConfigController::class, 'store']);
Route::put('/configs/{config}', [ConfigController::class, 'update']);
@@ -118,6 +121,8 @@ Route::prefix('admin')->middleware('admin.ip')->group(function () {
// Jenkins 发布历史
Route::get('/jenkins/build-projects', [JenkinsBuildController::class, 'projects']);
Route::post('/jenkins/trigger-builds', [JenkinsBuildController::class, 'trigger']);
Route::post('/jenkins/build-statuses', [JenkinsBuildController::class, 'statuses']);
Route::post('/jenkins/cancel-build', [JenkinsBuildController::class, 'cancel']);
Route::get('/jenkins/deployments', [JenkinsDeploymentController::class, 'index']);
Route::get('/jenkins/deployments/{id}', [JenkinsDeploymentController::class, 'show']);
});
+17 -8
View File
@@ -26,14 +26,14 @@ Schedule::command('git-monitor:check')
->withoutOverlapping(10)
->runInBackground()
->description('git-monitor-check')
->when(fn() => \App\Services\ScheduledTaskService::isEnabled('git-monitor-check'));
->when(fn () => \App\Services\ScheduledTaskService::isEnabled('git-monitor-check'));
// Git Monitor - 每天凌晨 2 点刷新 release 缓存
Schedule::command('git-monitor:cache')
->dailyAt('02:00')
->withoutOverlapping()
->description('git-monitor-cache')
->when(fn() => \App\Services\ScheduledTaskService::isEnabled('git-monitor-cache'));
->when(fn () => \App\Services\ScheduledTaskService::isEnabled('git-monitor-cache'));
// SLS 日志分析 - 每天凌晨 2 点执行(日志分析 + 代码分析)
Schedule::command('log-analysis:run --from="-24h" --to="now" --query="content.level: ERROR" --mode=logs+code --push')
@@ -41,8 +41,8 @@ Schedule::command('log-analysis:run --from="-24h" --to="now" --query="content.le
->withoutOverlapping()
->runInBackground()
->description('daily-log-analysis')
->when(fn() => \App\Services\ScheduledTaskService::isEnabled('daily-log-analysis'))
->onFailure(fn() => Log::error('每日日志分析定时任务执行失败'));
->when(fn () => \App\Services\ScheduledTaskService::isEnabled('daily-log-analysis'))
->onFailure(fn () => Log::error('每日日志分析定时任务执行失败'));
// SLS 日志分析 - 每 4 小时执行一次
Schedule::command('log-analysis:run --from="-6h" --to="now" --query="content.level: ERROR" --push')
@@ -50,8 +50,8 @@ Schedule::command('log-analysis:run --from="-6h" --to="now" --query="content.lev
->withoutOverlapping(60)
->runInBackground()
->description('frequent-log-analysis')
->when(fn() => \App\Services\ScheduledTaskService::isEnabled('frequent-log-analysis'))
->onFailure(fn() => Log::error('SLS 日志分析定时任务执行失败'));
->when(fn () => \App\Services\ScheduledTaskService::isEnabled('frequent-log-analysis'))
->onFailure(fn () => Log::error('SLS 日志分析定时任务执行失败'));
// Jenkins Monitor - 每分钟检查新构建
Schedule::command('jenkins:monitor')
@@ -59,11 +59,20 @@ Schedule::command('jenkins:monitor')
->withoutOverlapping(10)
->runInBackground()
->description('jenkins-monitor')
->when(fn() => \App\Services\ScheduledTaskService::isEnabled('jenkins-monitor'));
->when(fn () => \App\Services\ScheduledTaskService::isEnabled('jenkins-monitor'));
// ERP OpenAPI 请求日报 - 每天早上 8 点统计前一天请求并发送钉钉
Schedule::command('erp-request-report:send')
->dailyAt('08:00')
->timezone('Asia/Shanghai')
->withoutOverlapping()
->runInBackground()
->description('erp-request-report')
->when(fn () => \App\Services\ScheduledTaskService::isEnabled('erp-request-report'));
// 定时任务刷新 - 每天凌晨 3 点刷新定时任务列表
Schedule::command('scheduled-task:refresh')
->dailyAt('03:00')
->withoutOverlapping()
->description('scheduled-task-refresh')
->when(fn() => \App\Services\ScheduledTaskService::isEnabled('scheduled-task-refresh'));
->when(fn () => \App\Services\ScheduledTaskService::isEnabled('scheduled-task-refresh'));
+2 -1
View File
@@ -1,6 +1,7 @@
<?php
use App\Http\Controllers\AdminController;
use App\Http\Controllers\ProductionDiagnosisPageController;
use Illuminate\Support\Facades\Route;
// 首页 - 显示admin框架
@@ -9,7 +10,7 @@ Route::get('/', [AdminController::class, 'index'])->name('home');
// 前端路由 - 所有页面都通过admin框架显示
Route::get('/env', [AdminController::class, 'index'])->name('admin.env');
Route::get('/sql-generator', [AdminController::class, 'index'])->name('admin.sql-generator');
Route::get('/production-diagnosis', [AdminController::class, 'index'])->name('admin.production-diagnosis');
Route::get('/production-diagnosis', ProductionDiagnosisPageController::class)->name('admin.production-diagnosis');
Route::get('/weekly-report', [AdminController::class, 'index'])->name('admin.weekly-report');
Route::get('/worklog', [AdminController::class, 'index'])->name('admin.worklog');
Route::get('/test-mail', [AdminController::class, 'index'])->name('admin.test-mail');