优化页面、修复BUG

This commit is contained in:
李琦
2026-07-06 08:19:47 +08:00
parent e1f852c295
commit 9c99f96e94
10 changed files with 445 additions and 87 deletions

View File

@@ -30,7 +30,7 @@ func GetVideoAlbums(c *gin.Context) {
utils.ServerError(c, err)
return
}
utils.Success(c, repositories.BuildVideoAlbumsResponse(list))
utils.Success(c, repositories.BuildVideoAlbumsResponse(list, true))
}
// GetVideoAlbumByID 获取专辑详情
@@ -49,7 +49,7 @@ func GetVideoAlbumByID(c *gin.Context) {
utils.Error(c, 404, "Album not found")
return
}
utils.Success(c, repositories.BuildVideoAlbumResponse(album))
utils.Success(c, repositories.BuildVideoAlbumResponse(album, true))
}
// GetAlbumVideos 获取专辑内视频
@@ -90,7 +90,7 @@ func GetVideoByID(c *gin.Context) {
utils.Error(c, 404, "Video not found")
return
}
utils.Success(c, repositories.BuildVideoResponse(video))
utils.Success(c, repositories.BuildVideoDetailResponse(video))
}
// ========== 管理 API — 分类 ==========
@@ -158,7 +158,7 @@ func AdminGetVideoAlbums(c *gin.Context) {
utils.ServerError(c, err)
return
}
utils.Success(c, repositories.BuildVideoAlbumsResponse(list))
utils.Success(c, repositories.BuildVideoAlbumsResponse(list, false))
}
func AdminCreateVideoAlbum(c *gin.Context) {
@@ -171,7 +171,7 @@ func AdminCreateVideoAlbum(c *gin.Context) {
utils.ServerError(c, err)
return
}
utils.Success(c, repositories.BuildVideoAlbumResponse(&item))
utils.Success(c, repositories.BuildVideoAlbumResponse(&item, false))
}
func AdminUpdateVideoAlbum(c *gin.Context) {
@@ -199,7 +199,7 @@ func AdminUpdateVideoAlbum(c *gin.Context) {
return
}
}
utils.Success(c, repositories.BuildVideoAlbumResponse(&req.VideoAlbum))
utils.Success(c, repositories.BuildVideoAlbumResponse(&req.VideoAlbum, false))
}
func AdminDeleteVideoAlbum(c *gin.Context) {
@@ -277,38 +277,61 @@ func AdminGetVideos(c *gin.Context) {
utils.ServerError(c, err)
return
}
utils.Success(c, repositories.BuildVideosResponse(list))
utils.Success(c, repositories.BuildAdminVideosResponse(list))
}
func AdminCreateVideo(c *gin.Context) {
var item models.Video
if err := c.ShouldBindJSON(&item); err != nil {
var req struct {
models.Video
AlbumIDs []uint `json:"albumIds"`
}
if err := c.ShouldBindJSON(&req); err != nil {
utils.Error(c, 400, err.Error())
return
}
if item.ID == "" {
item.ID = "video_" + strconv.FormatInt(time.Now().UnixNano(), 10)
if req.Video.ID == "" {
req.Video.ID = "video_" + strconv.FormatInt(time.Now().UnixNano(), 10)
}
if err := repositories.CreateVideo(&item); err != nil {
if err := repositories.CreateVideo(&req.Video); err != nil {
utils.ServerError(c, err)
return
}
utils.Success(c, repositories.BuildVideoResponse(&item))
if req.AlbumIDs != nil {
if err := repositories.SyncVideoAlbums(req.Video.ID, req.AlbumIDs); err != nil {
utils.ServerError(c, err)
return
}
}
utils.Success(c, repositories.BuildAdminVideoResponse(&req.Video))
}
func AdminUpdateVideo(c *gin.Context) {
id := c.Param("id")
var item models.Video
if err := c.ShouldBindJSON(&item); err != nil {
var req struct {
models.Video
AlbumIDs []uint `json:"albumIds"`
}
if err := c.ShouldBindJSON(&req); err != nil {
utils.Error(c, 400, err.Error())
return
}
item.ID = id
if err := repositories.UpdateVideo(&item); err != nil {
req.Video.ID = id
if err := repositories.UpdateVideo(&req.Video); err != nil {
utils.ServerError(c, err)
return
}
utils.Success(c, repositories.BuildVideoResponse(&item))
if req.AlbumIDs != nil {
if err := repositories.SyncVideoAlbums(id, req.AlbumIDs); err != nil {
utils.ServerError(c, err)
return
}
}
video, _ := repositories.GetVideoByID(id)
if video == nil {
utils.Error(c, 404, "Video not found")
return
}
utils.Success(c, repositories.BuildAdminVideoResponse(video))
}
func AdminDeleteVideo(c *gin.Context) {
@@ -331,5 +354,5 @@ func AdminGetVideoByID(c *gin.Context) {
utils.Error(c, 404, "Video not found")
return
}
utils.Success(c, repositories.BuildVideoResponse(video))
utils.Success(c, repositories.BuildAdminVideoResponse(video))
}