chore: 初始化仓库基线(AGENTS.md、git 规范、敏感文件排除)

This commit is contained in:
weijuesen
2026-08-10 22:30:53 +08:00
commit 84abf4454c
358 changed files with 75993 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
package handler
import (
"fmt"
"net/http"
"silk-server-go/internal/middleware"
"silk-server-go/internal/model"
"github.com/gin-gonic/gin"
"gorm.io/gorm"
)
// RegisterAlarmClipRoutes 注册告警视频片段路由
func RegisterAlarmClipRoutes(rg *gin.RouterGroup, db *gorm.DB) {
rg.GET("/alarms/:id/clip", middleware.RequirePermission(db, "alarm:read"), getAlarmClip(db))
}
// getAlarmClip 获取告警关联视频片段(查 video_clips 表 where alarm_id=:id,按 start_at DESC
func getAlarmClip(db *gorm.DB) gin.HandlerFunc {
return func(c *gin.Context) {
id := c.Param("id")
// 先检查告警是否存在
var alarm model.Alarm
if db.Where("id = ?", id).First(&alarm).Error != nil {
c.JSON(http.StatusNotFound, gin.H{"error": "alarm not found"})
return
}
var clips []model.VideoClip
db.Where("alarm_id = ?", id).Order("start_at DESC").Find(&clips)
// 为每个片段设置 playbackUrl
for i := range clips {
url := fmt.Sprintf("/api/v1/video/clips/%d/stream", clips[i].ID)
clips[i].PlaybackURL = &url
}
c.JSON(http.StatusOK, clips)
}
}