refactor: backend alert.go split (586→133+274+206 lines, alerts/rules/channels)

This commit is contained in:
attacker committed 2026-06-15 14:05:28 +08:00
1 parent 46c50a13f4
commit 487d542c8c
4 files changed
+505 -456

No files matched your search

+22
View File
@@ -954,3 +954,25 @@ cd ~/devops/aiops
- sidebar.tsx(689行) 略低于700但属于shadcn基础组件,可考虑提取 context/variants
- 后端 alert.go(586行) 超400行限制,可考虑按 alerts/rules/channels 拆分
- 后端 pipeline.go(541行)、billing.go(476行)、server.go(446行) 均略超400行限制
## 2026-06-15 自动推进
- **任务**: 后端 alert.go 拆分(586行超400限制 → 3文件,按 alerts/rules/channels 分域)
- **修改**:
- `backend/internal/api/handlers/alert.go` — 586→133行:仅保留 AlertHandler struct + NewAlertHandler + 告警事件处理(ListAlerts/AcknowledgeAlert)+ 包级 toJSON 辅助函数(供同包 rules 文件复用)
- `backend/internal/api/handlers/alert_rules.go` — **新建**(274行):告警规则 CRUD(ListRules/CreateRule/UpdateRule/DeleteRule/BatchDeleteRules/ToggleRule),使用 alert.go 的 toJSON 序列化 NotifyChannels
- `backend/internal/api/handlers/alert_channels.go` — **新建**(206行):通知渠道 CRUD(ListNotifyChannels/CreateNotifyChannel/UpdateNotifyChannel/DeleteNotifyChannel/TestNotifyChannel)
- **结果**:
- `go build -o aiops-server ./cmd/` 编译通过 ✅
- `go vet ./...` 零错误 ✅
- `./run.sh restart` 后健康检查 /health 正常 ✅
- curl 端到端验证(admin token):
- GET /alerts/rules → code 200, total 6 ✅
- GET /alerts/notify-channels → code 200, total 3 ✅
- GET /alerts(事件)→ code 200, total 20 ✅
- POST /alerts/rules/1/toggle → code 200 "操作成功"(toggle 后再 toggle 回来)✅
- 纯后端文件重组,无业务逻辑变更,前端零改动
- 净行数:586 → 133+274+206 = 613(含 swagger 注释 + Logan.Li 署名注释)
- **下一步建议**:
- 后端 pipeline.go(541行)、billing.go(476行)、server.go(446行)、sql_audit.go(435行)、approval.go(435行) 仍超400行限制,可按同模式拆分
- sidebar.tsx(689行) 可考虑提取 context/variants