Files
谢宇宁andClaude Opus 5.5 0fbdba5ccf Initial commit
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 11:47:47 +07:00

59 lines
1.7 KiB
Go

package web
import (
"videoweb/app/service/playletser"
"github.com/gin-gonic/gin"
)
// Topic 专题剧单列表页:GET /api/app/playlet/topic/list。
// 文档:http://172.104.181.99:25319/swagger/index.html#/app短剧相关接口/get_api_app_playlet_topic_list
func Topic(c *gin.Context) {
q := playletser.ParseTopicListQuery(c)
raw := playletser.FetchTopicListOrEmpty(c, q)
home := playletser.FetchHomeOrEmpty(c)
homeConfigData := playletser.ActiveHomeConfigs(home.HomeConfigData)
list := []playletser.PlayletTopicPageItem(nil)
total := int64(0)
pageNum, pageSize := q.PageNum, q.PageSize
var seo playletser.SeoInfo
var seoSelections []playletser.SEOSelection
if q.SortType == 2 {
seoSelections = []playletser.SEOSelection{{Dimension: "排序", Value: "最热"}}
}
if raw != nil {
list = raw.List
total = raw.TotalCount
seo = raw.SeoInfo
if raw.PageNum > 0 {
pageNum = raw.PageNum
}
if raw.PageSize > 0 {
pageSize = raw.PageSize
}
}
// 首页“专题”区块的配置 TDK 优先;专题列表接口 SEO 仅补齐配置未填写的字段。
if configSEO, ok := playletser.FirstHomeConfigSEOByType(homeConfigData, 3); ok {
seo = playletser.MergeSeoInfo(configSEO, seo)
}
title := "专题剧单 - 黄果短剧"
if seo.Title != "" {
title = seo.Title
}
HTMLOK(c, "topic.html", gin.H{
"title": title,
"navActive": "topic",
"seoInfo": seo,
"routeConfigSEO": true,
"homeConfigData": homeConfigData,
"seoSelections": seoSelections,
"list": list,
"totalCount": total,
"pageNum": pageNum,
"pageSize": pageSize,
"sortType": q.SortType,
"pagination": playletser.BuildTopicListPagination(q, total),
"canonicalPath": q.URL(),
})
}