From 9a2d92d4b78a387282d64a87954b9520bfc5d387 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 23 Sep 2026 16:32:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=BF=E5=91=8A=E6=94=B9=E4=B8=BA=E5=8F=82?= =?UTF-8?q?=E8=80=83=E6=A8=A1=E6=9D=BF=E4=BB=8E=E5=AA=92=E8=B5=84=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E6=8C=89=20AppId=20=E6=8B=89=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 proxy.QueryAdvitise / storage.QueryAdvitiseList,调用 /media/web/app/advitise - proxy.AdvitiseInfo 兼容 id 为数字或字符串 - configser 改用 UpdateAdvitiseData,定时拉取并拼接 CDN,移除广告中心(Jt)拉取 - proto.AdvitiseData 改为 proxy.AdvitiseData 别名,应用列表 A/B 广告位改用 appInfoAList/appInfoBList - 同步 swagger 文档 Co-Authored-By: Claude Opus 5.5 (1M context) --- app/api/proto/ads.go | 21 +- app/docs/docs.go | 3114 ++++--------------------- app/docs/swagger.json | 3114 ++++--------------------- app/docs/swagger.yaml | 2121 +++-------------- app/service/appser/cache.go | 4 +- app/service/configser/announcement.go | 120 +- app/service/configser/catch.go | 6 +- pub/storage/proxy/object.go | 24 + pub/storage/proxy/types.go | 28 + pub/storage/upload.go | 4 + 10 files changed, 1233 insertions(+), 7323 deletions(-) diff --git a/app/api/proto/ads.go b/app/api/proto/ads.go index ce87080..d4900db 100644 --- a/app/api/proto/ads.go +++ b/app/api/proto/ads.go @@ -13,22 +13,5 @@ type AdsClickInfo struct { Location int64 `json:"location,omitempty" binding:"required"` // 位置ID } -type AdvitiseData struct { - HomeList []proxy.AdvitiseInfo `json:"homeList" bson:"homeList"` // 首页列表 - DetailTopList []proxy.AdvitiseInfo `json:"detailTopList" bson:"detailTopList"` // 详情页顶部广告 - NineGridList []proxy.AdvitiseInfo `json:"nineGridList" bson:"nineGridList"` // 9宫格 - DetailbannerList []proxy.AdvitiseInfo `json:"detailbannerList" bson:"detailbannerList"` // 详情banner - LaunchScreenList []proxy.AdvitiseInfo `json:"launchScreenList"` // 启动页广告 - FloatingList []proxy.AdvitiseInfo `json:"floatingList" bson:"floatingList"` // 悬浮小方块 - AList []proxy.AdvitiseInfo `json:"AList"` // 固定12广告位 - BList []proxy.AdvitiseInfo `json:"BList"` // 固定13广告位 - DialogList []proxy.AdvitiseInfo `json:"dialogList" bson:"dialogList"` // 弹窗广告 - BottomBanner []proxy.AdvitiseInfo `json:"bottomBanner" bson:"bottomBanner"` // 底部banner - - VideoInfoList []proxy.AdvitiseInfo `json:"videoInfoList" bson:"videoInfoList"` // 视频详情 - DownList []proxy.AdvitiseInfo `json:"downList" bson:"downList"` // 底部广告 - FriendList []proxy.AdvitiseInfo `json:"friendList" bson:"friendList"` // 友链 - TitleList []proxy.AdvitiseInfo `json:"titleList" bson:"titleList"` // 标题广告 - PlayList []proxy.AdvitiseInfo `json:"playList" bson:"playList"` // 播放强制跳转 - PauseyList []proxy.AdvitiseInfo `json:"pauseyList" bson:"pauseyList"` // 暂停广告 -} +// AdvitiseData 广告数据,直接使用媒资中心返回的结构 +type AdvitiseData = proxy.AdvitiseData diff --git a/app/docs/docs.go b/app/docs/docs.go index 82e429f..da7f183 100644 --- a/app/docs/docs.go +++ b/app/docs/docs.go @@ -58,7 +58,7 @@ const docTemplate = `{ }, "/api/app/auth/getInfo": { "get": { - "description": "通过 token 获取最新用户信息,包含金币余额、VIP状态等", + "description": "按请求头 X-User-Agent 中的 devID 识别用户,返回最新用户信息,包含金币余额、VIP状态等", "produces": [ "application/json" ], @@ -82,89 +82,9 @@ const docTemplate = `{ } } }, - "/api/app/auth/guest": { - "post": { - "description": "按设备ID创建或找回游客账号;请求头可带 Authorization 复用已有游客会话。需传 X-User-Agent", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "用户认证" - ], - "summary": "游客登录", - "parameters": [ - { - "description": "游客登录参数", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/authser.GuestLoginReq" - } - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/authser.LoginResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/auth/login": { - "post": { - "description": "账号或邮箱均可作为登录凭证", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "用户认证" - ], - "summary": "登录", - "parameters": [ - { - "description": "登录参数", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/authapi.loginReq" - } - } - ], - "responses": { - "200": { - "description": "登录成功,返回 token 及用户基本信息", - "schema": { - "$ref": "#/definitions/authser.LoginResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/auth/profile": { "post": { - "description": "用户信息通过 token 获取,无需传账号;nickName、avatar、introduction、oldPassword+newPassword 均为可选,至少提供一项。未设置密码时传 newPassword 可设置密码,已设置密码时修改需传 oldPassword+newPassword", + "description": "按请求头 X-User-Agent 中的 devID 识别用户;nickName、avatar、introduction、privacyMode 均为可选,至少提供一项。", "consumes": [ "application/json" ], @@ -174,7 +94,7 @@ const docTemplate = `{ "tags": [ "用户认证" ], - "summary": "修改用户资料(头像 / 简介 / 密码,可任意组合)", + "summary": "修改用户资料(昵称 / 头像 / 简介 / 隐私模式,可任意组合)", "parameters": [ { "description": "修改资料参数", @@ -202,86 +122,6 @@ const docTemplate = `{ } } }, - "/api/app/auth/register": { - "post": { - "description": "传入账号、邮箱、明文密码。请求头带游客 Authorization 时升级该游客为普通用户,否则新建用户", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "用户认证" - ], - "summary": "注册", - "parameters": [ - { - "description": "注册参数", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/authapi.registerReq" - } - } - ], - "responses": { - "200": { - "description": "注册成功,返回 token 及用户基本信息", - "schema": { - "$ref": "#/definitions/authser.LoginResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/auth/resetPassword": { - "post": { - "description": "通过账号和邮箱双重校验后重置密码,两者必须同时匹配同一用户", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "用户认证" - ], - "summary": "找回密码", - "parameters": [ - { - "description": "找回密码参数", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/authapi.resetPasswordReq" - } - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "type": "string" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/coin/buy": { "post": { "security": [ @@ -359,39 +199,6 @@ const docTemplate = `{ } } }, - "/api/app/coin/trans/export": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "description": "导出当前登录用户的金币收入、支出流水CSV;type=0全部 1充值 2消费 3奖励", - "produces": [ - "text/csv" - ], - "tags": [ - "金币" - ], - "summary": "导出金币余额明细 -- by 王鸣", - "parameters": [ - { - "type": "integer", - "description": "类型:0全部 1充值 2消费 3奖励", - "name": "type", - "in": "query" - } - ], - "responses": { - "200": { - "description": "CSV文件", - "schema": { - "type": "file" - } - } - } - } - }, "/api/app/coin/trans/list": { "get": { "security": [ @@ -399,7 +206,7 @@ const docTemplate = `{ "ApiKeyAuth": [] } ], - "description": "返回当前登录用户的金币收入、支出流水,按交易时间倒序;type=0全部 1充值 2消费 3奖励", + "description": "返回当前登录用户的金币收入、支出流水,按交易时间倒序", "produces": [ "application/json" ], @@ -419,12 +226,6 @@ const docTemplate = `{ "description": "每页数量(默认10,最大100)", "name": "pageSize", "in": "query" - }, - { - "type": "integer", - "description": "类型:0全部 1充值 2消费 3奖励", - "name": "type", - "in": "query" } ], "responses": { @@ -459,7 +260,7 @@ const docTemplate = `{ "ApiKeyAuth": [] } ], - "description": "设置当前用户对短剧、短剧剧集或视频评论的点赞状态", + "description": "设置当前用户对短剧评论或短剧剧集评论的点赞状态", "consumes": [ "application/json" ], @@ -499,7 +300,7 @@ const docTemplate = `{ }, "/api/app/comment/list": { "get": { - "description": "分页查询短剧、短剧剧集或视频评论树,一级评论分页返回,二级评论挂在children中,objectType 10-短剧 11-短剧剧集 20-视频", + "description": "分页查询短剧或短剧剧集评论树,一级评论分页返回,二级评论挂在children中,objectType 10-短剧 11-短剧剧集", "consumes": [ "application/json" ], @@ -513,14 +314,14 @@ const docTemplate = `{ "parameters": [ { "type": "integer", - "description": "对象ID(短剧id 短剧剧集id 视频id)", + "description": "对象ID(短剧id 短剧剧集id)", "name": "objectId", "in": "query", "required": true }, { "type": "integer", - "description": "对象类型 10-短剧 11-短剧剧集 20-视频", + "description": "对象类型 10-短剧 11-短剧剧集", "name": "objectType", "in": "query", "required": true @@ -580,7 +381,7 @@ const docTemplate = `{ "ApiKeyAuth": [] } ], - "description": "发布短剧、短剧剧集或视频评论,parentsId为0发布一级评论,大于0发布二级评论,replyCommentId表示实际回复的评论,objectType 10-短剧 11-短剧剧集 20-视频", + "description": "发布短剧或短剧剧集评论,parentsId为0发布一级评论,大于0发布二级评论,replyCommentId表示实际回复的评论,objectType 10-短剧 11-短剧剧集", "consumes": [ "application/json" ], @@ -809,161 +610,6 @@ const docTemplate = `{ } } }, - "/api/app/navigation/header": { - "get": { - "description": "查询导航类型为URL模式和二级导航的头部导航配置", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app导航相关接口" - ], - "summary": "查询头部导航配置 -- by 王鸣", - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.AppTranslationInfo" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/playlet/all/list": { - "get": { - "description": "分页查询已上架短剧,支持题材、更新状态和排序筛选", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端分页查询全部短剧 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "排序 1-最新 2-最热 3-收藏最多", - "name": "sortType", - "in": "query" - }, - { - "type": "integer", - "description": "题材ID", - "name": "themeId", - "in": "query" - }, - { - "type": "string", - "description": "题材slug,非空时优先按slug解析题材ID", - "name": "themeSlug", - "in": "query" - }, - { - "type": "integer", - "description": "更新状态 0-全部 1-连载中 2-已完结", - "name": "updateStatus", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/proto.PlayletAllListResp" - }, - { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - } - } - } - ] - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/playlet/bought/list": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "description": "按当前用户最近购买时间倒序分页返回已购短剧列表,并返回已购集数、消耗金币和最近观看位置", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端我的已购短剧列表 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.PlayletBoughtListResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/playlet/chapter/collect/list": { "get": { "security": [ @@ -1284,7 +930,7 @@ const docTemplate = `{ "ApiKeyAuth": [] } ], - "description": "按当前用户收藏时间倒序分页返回短剧收藏列表,并返回已看/未看集数和最近观看位置;watchStatus=0全部 1追剧中 2已看完", + "description": "按当前用户收藏时间倒序分页返回短剧收藏列表,并返回已看/未看集数和最近观看位置", "consumes": [ "application/json" ], @@ -1305,12 +951,6 @@ const docTemplate = `{ "type": "integer", "name": "pageSize", "in": "query" - }, - { - "type": "integer", - "description": "观看状态 0-全部 1-追剧中 2-已看完", - "name": "watchStatus", - "in": "query" } ], "responses": { @@ -1454,69 +1094,6 @@ const docTemplate = `{ } } }, - "/api/app/playlet/guess-like/list": { - "get": { - "description": "根据当前短剧同题材查询猜你喜欢,排除当前短剧", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端分页查询猜你喜欢短剧 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "当前短剧ID", - "name": "playletId", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/proto.PlayletGuessLikeListResp" - }, - { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - } - } - } - ] - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/playlet/history/clear": { "post": { "security": [ @@ -1551,51 +1128,6 @@ const docTemplate = `{ } } }, - "/api/app/playlet/history/delete": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "description": "删除当前用户指定短剧的观看历史,不影响观看进度、收藏和已购记录", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端删除单条短剧观看历史 --by 王鸣", - "parameters": [ - { - "description": "删除单条观看历史请求", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/proto.PlayletHistoryDeleteReq" - } - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.PlayletHistoryDeleteResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/playlet/history/list": { "get": { "security": [ @@ -1644,7 +1176,7 @@ const docTemplate = `{ }, "/api/app/playlet/home": { "get": { - "description": "无请求参数,返回首页banner短剧、公告和SEO信息", + "description": "无请求参数,返回首页banner、最近更新和启用短剧分类数据;homeCategoryData按分类rank倒序返回全部启用分类,每个分类最多16条短剧", "consumes": [ "application/json" ], @@ -1671,90 +1203,6 @@ const docTemplate = `{ } } }, - "/api/app/playlet/home/config/detail/list": { - "get": { - "description": "根据首页配置ID分页查询短剧、视频或题材", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端分页查询首页配置详情列表--by 王鸣", - "parameters": [ - { - "type": "integer", - "description": "首页配置ID", - "name": "homeConfigId", - "in": "query", - "required": true - }, - { - "type": "integer", - "description": "type=2时生效,视频类型 0-全部 1-影集 2-动画", - "name": "mediaType", - "in": "query" - }, - { - "type": "integer", - "description": "type=1时生效,运营类型 0-全部 1-短剧 2-漫剧", - "name": "operateType", - "in": "query" - }, - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "type=1时生效,题材ID", - "name": "themeId", - "in": "query" - }, - { - "type": "string", - "description": "type=1时生效,题材slug,非空时优先按slug解析题材ID", - "name": "themeSlug", - "in": "query" - }, - { - "type": "integer", - "description": "type=1/type=2时生效,时间范围 0-综合 1-本周 2-本月", - "name": "timeRange", - "in": "query" - }, - { - "type": "integer", - "description": "type=2时生效,视频题材ID,对应video_topic", - "name": "topicId", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.HomeConfigDetailListResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/playlet/hot-like": { "get": { "description": "返回缓存的前10个热搜词,以及按收藏量最多的15部猜你喜欢短剧", @@ -1784,68 +1232,6 @@ const docTemplate = `{ } } }, - "/api/app/playlet/hot/rank/list": { - "get": { - "description": "分页查询已上架短剧热榜;rankType=1热播榜 2新剧榜 3追剧榜", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端分页查询热榜 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "榜单类型 1-热播榜 2-新剧榜 3-追剧榜", - "name": "rankType", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/proto.PlayletHotRankListResp" - }, - { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - } - } - } - ] - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/playlet/like/set": { "post": { "security": [ @@ -1891,6 +1277,80 @@ const docTemplate = `{ } } }, + "/api/app/playlet/list": { + "get": { + "description": "分页查询已上架短剧;可按题材ID或题材slug筛选,slug非空时优先按slug解析题材ID", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "app短剧相关接口" + ], + "summary": "短剧 --by 王鸣", + "parameters": [ + { + "type": "integer", + "name": "pageNum", + "in": "query" + }, + { + "type": "integer", + "name": "pageSize", + "in": "query" + }, + { + "type": "integer", + "description": "排序 1-热度优先,按收藏量倒序 2-今日更新,按上架时间倒序", + "name": "sortOrder", + "in": "query" + }, + { + "type": "integer", + "description": "题材ID", + "name": "themeId", + "in": "query" + }, + { + "type": "string", + "description": "题材slug,非空时优先按slug解析题材ID", + "name": "themeSlug", + "in": "query" + } + ], + "responses": { + "200": { + "description": "成功", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/proto.PlayletVideoResp" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/proto.CommonData" + } + } + } + } + ] + } + }, + "400": { + "description": "失败", + "schema": { + "type": "string" + } + } + } + } + }, "/api/app/playlet/operate/list": { "get": { "description": "按运营类型查询已上架短剧;operateType=1短剧 2漫剧;filterType=1最近更新(按上架时间) 2当前热播(按收藏数) 3独家原创(原创且按推荐排序)", @@ -2021,6 +1481,74 @@ const docTemplate = `{ } } }, + "/api/app/playlet/recommend/list": { + "get": { + "description": "根据短剧分类ID或分类slug分页查询已上架短剧;slug非空时优先按slug解析分类ID;pageSize默认10、最大100", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "app短剧相关接口" + ], + "summary": "app端分页查询分类短剧(更多) --by 王鸣", + "parameters": [ + { + "type": "integer", + "description": "分类ID", + "name": "categoryId", + "in": "query" + }, + { + "type": "string", + "description": "分类slug,非空时优先按slug解析分类ID", + "name": "categorySlug", + "in": "query" + }, + { + "type": "integer", + "name": "pageNum", + "in": "query" + }, + { + "type": "integer", + "name": "pageSize", + "in": "query" + } + ], + "responses": { + "200": { + "description": "成功", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/proto.PlayletRecommendListResp" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/proto.CommonData" + } + } + } + } + ] + } + }, + "400": { + "description": "失败", + "schema": { + "type": "string" + } + } + } + } + }, "/api/app/playlet/search": { "get": { "description": "使用ES分页搜索已上架短剧,支持剧名、题材名、简介和标签名检索", @@ -2085,7 +1613,7 @@ const docTemplate = `{ }, "/api/app/playlet/tag/list": { "get": { - "description": "根据标签ID或标签slug分页查询已上架短剧;slug非空时优先按slug解析标签ID;sortType=1最新 2最热 3收藏最多", + "description": "根据标签ID或标签slug分页查询已上架短剧;slug非空时优先按slug解析标签ID", "consumes": [ "application/json" ], @@ -2109,13 +1637,7 @@ const docTemplate = `{ }, { "type": "integer", - "description": "排序 1-最新 2-最热 3-收藏最多", - "name": "sortType", - "in": "query" - }, - { - "type": "integer", - "description": "标签ID,tagSlug为空时必传", + "description": "标签ID", "name": "tagId", "in": "query" }, @@ -2157,35 +1679,6 @@ const docTemplate = `{ } } }, - "/api/app/playlet/tag/options": { - "get": { - "description": "无请求参数,不分页,返回已上架短剧标签列表", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧标签相关接口" - ], - "summary": "app端短剧标签列表 --by 王鸣", - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.PlayletTagListResponse" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/playlet/today-update": { "get": { "description": "分页查询已上架短剧", @@ -2242,143 +1735,6 @@ const docTemplate = `{ } } }, - "/api/app/playlet/topic/detail": { - "get": { - "description": "按专题ID查询专题信息和专题短剧列表", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端查询专题详情 --by 王鸣", - "parameters": [ - { - "type": "integer", - "description": "专题ID", - "name": "id", - "in": "query", - "required": true - }, - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "排序 1-编辑排序 2-最新 3-最热", - "name": "sortType", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/proto.PlayletTopicDetailResp" - }, - { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - }, - "moreTopics": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.PlayletTopicPageItem" - } - } - } - } - ] - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/playlet/topic/list": { - "get": { - "description": "分页查询已上架且有短剧数据的专题剧单", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端分页查询专题剧单 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "排序 1-最新 2-最热", - "name": "sortType", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/proto.PlayletTopicPageListResp" - }, - { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.PlayletTopicPageItem" - } - } - } - } - ] - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/recharge/package/list": { "get": { "description": "返回会员畅享和金币充值两个列表,并附带各套餐可用支付方式", @@ -2541,204 +1897,9 @@ const docTemplate = `{ } } }, - "/api/app/user/center/data": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "description": "返回当前用户观看、收藏、追剧中、已购剧集统计", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app个人中心相关接口" - ], - "summary": "app个人中心数据 --by 王鸣", - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.UserCenterDataResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/all/list": { - "get": { - "description": "分页查询已上架视频,支持类型、题材和排序筛选", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端分页查询视频列表 --by 王鸣", - "parameters": [ - { - "type": "integer", - "description": "类型 0-全部 1-影集 2-动画", - "name": "mediaType", - "in": "query" - }, - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "排序 1-最新 2-最热 3-收藏最多", - "name": "sortType", - "in": "query" - }, - { - "type": "integer", - "description": "题材ID,对应video_topic", - "name": "topicId", - "in": "query" - }, - { - "type": "string", - "description": "题材slug,非空时优先按slug解析题材ID", - "name": "topicSlug", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/proto.VideoAllListResp" - }, - { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoAllListItemResp" - } - } - } - } - ] - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/collect/list": { - "get": { - "description": "按当前用户收藏时间倒序分页返回视频收藏列表", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端我的视频收藏列表 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoCollectListResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/collect/set": { - "post": { - "description": "设置当前用户视频收藏状态,收藏数只在状态真实变化时增减", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端视频收藏/取消收藏 --by 王鸣", - "parameters": [ - { - "description": "视频收藏设置请求", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/proto.VideoCollectSetReq" - } - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoCollectSetResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/video/detail": { "get": { - "description": "查询已上架视频详情", + "description": "查询已上架视频详情和该视频相关推荐列表", "consumes": [ "application/json" ], @@ -2752,172 +1913,32 @@ const docTemplate = `{ "parameters": [ { "type": "integer", - "description": "视频id", + "description": "视频的id必填", "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "视频slug,非空时优先按slug解析视频ID", - "name": "slug", - "in": "query" + "in": "query", + "required": true } ], "responses": { "200": { "description": "成功", "schema": { - "$ref": "#/definitions/proto.VideoInfoResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/history/clear": { - "post": { - "description": "清空当前用户全部视频观看历史,不影响收藏和点赞", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端清空我的视频观看历史 --by 王鸣", - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoHistoryClearResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/history/delete": { - "post": { - "description": "删除当前用户指定视频观看历史,不影响收藏和点赞", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端删除单条视频观看历史 --by 王鸣", - "parameters": [ - { - "description": "删除单条视频观看历史请求", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/proto.VideoHistoryDeleteReq" - } - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoHistoryDeleteResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/history/list": { - "get": { - "description": "按当前用户最近观看时间倒序分页返回视频观看历史", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端我的视频观看历史列表 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoHistoryListResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/like/set": { - "post": { - "description": "设置当前用户视频点赞状态,点赞数只在状态真实变化时增减", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端视频点赞/取消点赞 --by 王鸣", - "parameters": [ - { - "description": "视频点赞设置请求", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/proto.VideoLikeSetReq" - } - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoLikeSetResp" + "allOf": [ + { + "$ref": "#/definitions/proto.VideoInfoResp" + }, + { + "type": "object", + "properties": { + "recommendVideos": { + "type": "array", + "items": { + "$ref": "#/definitions/proto.VideoItemResp" + } + } + } + } + ] } }, "400": { @@ -2985,43 +2006,6 @@ const docTemplate = `{ } } }, - "/api/app/video/topic/list": { - "get": { - "description": "查询已上架视频题材列表,mediaType=0全部 1影集 2动画", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端查询视频题材列表 --by 王鸣", - "parameters": [ - { - "type": "integer", - "description": "类型 0-全部 1-影集 2-动画", - "name": "mediaType", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoTopicListResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/vip/orders": { "get": { "security": [ @@ -3151,87 +2135,6 @@ const docTemplate = `{ } }, "definitions": { - "authapi.loginReq": { - "type": "object", - "required": [ - "account", - "password" - ], - "properties": { - "account": { - "description": "账号或邮箱", - "type": "string" - }, - "channel": { - "description": "渠道码(可选,用户无商区码时写入)", - "type": "string" - }, - "devID": { - "description": "设备唯一标示(可选)", - "type": "string" - }, - "password": { - "description": "明文密码", - "type": "string" - } - } - }, - "authapi.registerReq": { - "type": "object", - "required": [ - "accountNo", - "email", - "password" - ], - "properties": { - "accountNo": { - "description": "账号", - "type": "string" - }, - "agentInviteCode": { - "description": "邀请人的邀请码(可选)", - "type": "string" - }, - "channel": { - "description": "渠道码(可选,用户无商区码时写入)", - "type": "string" - }, - "devID": { - "description": "设备唯一标示(可选)", - "type": "string" - }, - "email": { - "description": "邮箱", - "type": "string" - }, - "password": { - "description": "明文密码", - "type": "string" - } - } - }, - "authapi.resetPasswordReq": { - "type": "object", - "required": [ - "accountNo", - "email", - "newPassword" - ], - "properties": { - "accountNo": { - "description": "账号", - "type": "string" - }, - "email": { - "description": "邮箱", - "type": "string" - }, - "newPassword": { - "description": "新密码", - "type": "string" - } - } - }, "authapi.updateProfileReq": { "type": "object", "properties": { @@ -3243,45 +2146,16 @@ const docTemplate = `{ "description": "简介(可选)", "type": "string" }, - "newPassword": { - "description": "新密码明文(设置或修改密码时必填)", - "type": "string" - }, "nickName": { "description": "新昵称(可选)", "type": "string" }, - "oldPassword": { - "description": "旧密码明文(已设置密码时修改必填)", - "type": "string" - }, "privacyMode": { "description": "隐私模式:true-开启,false-关闭(可选)", "type": "boolean" } } }, - "authser.GuestLoginReq": { - "type": "object", - "properties": { - "channel": { - "description": "渠道码(可选,用户无商区码时写入 DistrictCode)", - "type": "string" - }, - "devID": { - "description": "设备唯一标示(必填)", - "type": "string" - }, - "deviceId": { - "description": "备用设备ID(可选,写入 DevV2)", - "type": "string" - }, - "mac": { - "description": "设备 Mac(可选)", - "type": "string" - } - } - }, "authser.LoginResp": { "type": "object", "properties": { @@ -3299,10 +2173,6 @@ const docTemplate = `{ "email": { "type": "string" }, - "hasPassword": { - "description": "是否已设置密码", - "type": "boolean" - }, "introduction": { "description": "简介", "type": "string" @@ -3311,10 +2181,6 @@ const docTemplate = `{ "description": "邀请码", "type": "string" }, - "isNewUser": { - "description": "本次是否新建游客", - "type": "boolean" - }, "isRegister": { "description": "是否已注册", "type": "boolean" @@ -3353,9 +2219,6 @@ const docTemplate = `{ "status": { "$ref": "#/definitions/pubdef.UserStatus" }, - "token": { - "type": "string" - }, "type": { "description": "身份类型:0游客 1普通用户", "allOf": [ @@ -3428,12 +2291,10 @@ const docTemplate = `{ 2, 3, 4, - 5, - 6 + 5 ], "x-enum-comments": { "TranTypeAdminAdjust": "管理员手动调整", - "TranTypeCoinGift": "金币充值赠送", "TranTypeCoinRecharge": "金币充值(购买金币)", "TranTypeDarkAlley": "历史遗留交易类型(已下线)", "TranTypeVideoUnlock": "视频解锁", @@ -3444,127 +2305,9 @@ const docTemplate = `{ "TranTypeVipGiftCoin", "TranTypeDarkAlley", "TranTypeVideoUnlock", - "TranTypeAdminAdjust", - "TranTypeCoinGift" + "TranTypeAdminAdjust" ] }, - "proto.AdvitiseData": { - "type": "object", - "properties": { - "AList": { - "description": "固定12广告位", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "BList": { - "description": "固定13广告位", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "bottomBanner": { - "description": "底部banner", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "detailTopList": { - "description": "详情页顶部广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "detailbannerList": { - "description": "详情banner", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "dialogList": { - "description": "弹窗广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "downList": { - "description": "底部广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "floatingList": { - "description": "悬浮小方块", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "friendList": { - "description": "友链", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "homeList": { - "description": "首页列表", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "launchScreenList": { - "description": "启动页广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "nineGridList": { - "description": "9宫格", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "pauseyList": { - "description": "暂停广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "playList": { - "description": "播放强制跳转", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "titleList": { - "description": "标题广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "videoInfoList": { - "description": "视频详情", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - } - } - }, "proto.AnnouncementItem": { "type": "object", "properties": { @@ -3666,7 +2409,7 @@ const docTemplate = `{ "description": "广告", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -3851,7 +2594,7 @@ const docTemplate = `{ "type": "integer" }, "objectType": { - "description": "对象类型 10-短剧 11-短剧剧集 20-视频", + "description": "对象类型 10-短剧 11-短剧剧集", "type": "integer" }, "parentsId": { @@ -3922,11 +2665,11 @@ const docTemplate = `{ "type": "object", "properties": { "objectId": { - "description": "对象ID,短剧评论传短剧ID,剧集评论传剧集ID,视频评论传视频ID", + "description": "对象ID,短剧评论传短剧ID,剧集评论传剧集ID", "type": "integer" }, "objectType": { - "description": "对象类型 10-短剧 11-短剧剧集 20-视频", + "description": "对象类型 10-短剧 11-短剧剧集", "type": "integer" }, "parentsId": { @@ -3954,13 +2697,6 @@ const docTemplate = `{ "description": "banner图,已拼接图片域名", "type": "string" }, - "categoryIds": { - "description": "分类ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, "countBrowse": { "description": "观看量", "type": "integer" @@ -3974,7 +2710,7 @@ const docTemplate = `{ "type": "integer" }, "cover": { - "description": "竖版封面,已拼接图片域名", + "description": "封面,已拼接图片域名", "type": "string" }, "createdAt": { @@ -3993,10 +2729,6 @@ const docTemplate = `{ "description": "热度值", "type": "integer" }, - "horizontalCover": { - "description": "横版封面,已拼接图片域名", - "type": "string" - }, "id": { "description": "短剧id", "type": "integer" @@ -4033,10 +2765,6 @@ const docTemplate = `{ "description": "剧名", "type": "string" }, - "preview": { - "description": "预告地址", - "type": "string" - }, "seoInfo": { "description": "Seo相关信息", "allOf": [ @@ -4231,10 +2959,6 @@ const docTemplate = `{ "description": "qq群", "type": "string" }, - "reportSdkConfig": { - "description": "数据上报SDK域名配置", - "type": "string" - }, "telegram": { "description": "商务tg", "type": "string" @@ -4306,7 +3030,7 @@ const docTemplate = `{ "description": "广告配置", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -4333,10 +3057,6 @@ const docTemplate = `{ } ] }, - "reportSdkConfig": { - "description": "数据上报SDK域名配置", - "type": "string" - }, "seoInfo": { "description": "全站SEO信息", "allOf": [ @@ -4529,174 +3249,71 @@ const docTemplate = `{ } } }, - "proto.HomeConfigData": { + "proto.HomeBannerData": { "type": "object", "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "desc": { - "description": "描述", - "type": "string" - }, "id": { "description": "ID", "type": "integer" }, - "list": { - "description": "配置对应短剧集合,type=1时返回", - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } + "image": { + "description": "图片,已拼接图片域名", + "type": "string" }, "name": { "description": "名称", "type": "string" }, "rank": { - "description": "排序,越大越靠前", - "type": "integer" - }, - "sortType": { - "description": "排序字段 1-推荐 2-热播 3-最近更新 4-新片预告 5-分类", + "description": "排序", "type": "integer" }, "status": { - "description": "上下架状态 true-上架 false-下架", + "description": "状态 true-启用 false-停用", "type": "boolean" }, - "themeList": { - "description": "题材集合,type=3时返回", - "type": "array", - "items": { - "$ref": "#/definitions/proto.HomeConfigThemeData" - } - }, - "type": { - "description": "类型 1-短剧 2-视频 3-题材", - "type": "integer" - }, - "updatedAt": { - "description": "修改时间", + "url": { + "description": "URL", "type": "string" }, - "videoList": { - "description": "视频集合,type=2时返回", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoItemResp" - } + "verticalImage": { + "description": "竖版图片,已拼接图片域名", + "type": "string" } } }, - "proto.HomeConfigDetailListResp": { + "proto.HomeCategoryData": { "type": "object", "properties": { - "advitise": { - "description": "广告", - "allOf": [ - { - "$ref": "#/definitions/proto.AdvitiseData" - } - ] - }, "desc": { "description": "描述", "type": "string" }, - "homeConfigId": { - "description": "首页配置ID", - "type": "integer" - }, - "list": { - "description": "短剧集合,type=1时返回", - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - }, - "name": { - "description": "名称", - "type": "string" - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "sortType": { - "description": "排序字段 1-推荐 2-热播 3-最近更新 4-新片预告 5-分类", - "type": "integer" - }, - "themeList": { - "description": "题材集合,type=3时返回", - "type": "array", - "items": { - "$ref": "#/definitions/proto.HomeConfigThemeData" - } - }, - "totalCount": { - "description": "总共数量", - "type": "integer" - }, - "type": { - "description": "类型 1-短剧 2-视频 3-题材", - "type": "integer" - }, - "videoList": { - "description": "视频集合,type=2时返回", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoItemResp" - } - } - } - }, - "proto.HomeConfigThemeData": { - "type": "object", - "properties": { "icon": { - "description": "题材图标,已拼接图片域名", + "description": "分类图标", "type": "string" }, "id": { - "description": "题材ID", + "description": "分类ID", "type": "integer" }, "list": { - "description": "题材下短剧集合", + "description": "分类下短剧集合,最多16条", "type": "array", "items": { "$ref": "#/definitions/proto.CommonData" } }, "name": { - "description": "题材名称", + "description": "分类名称", "type": "string" }, - "playletCount": { - "description": "绑定短剧数量", - "type": "integer" - }, "rank": { - "description": "排序,越大越靠前", + "description": "分类排序,越大越靠前", "type": "integer" }, - "seoInfo": { - "description": "题材对应页面SEO信息", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, "slug": { - "description": "题材slug", + "description": "slug", "type": "string" } } @@ -4708,7 +3325,7 @@ const docTemplate = `{ "description": "广告", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -4755,14 +3372,6 @@ const docTemplate = `{ "proto.HomePlayletResponse": { "type": "object", "properties": { - "advitise": { - "description": "广告", - "allOf": [ - { - "$ref": "#/definitions/proto.AdvitiseData" - } - ] - }, "announcements": { "description": "启用中的公告,来自独立缓存", "type": "array", @@ -4771,19 +3380,33 @@ const docTemplate = `{ } }, "homeBannerData": { - "description": "首页banner短剧信息列表", + "description": "首页banner信息列表", + "type": "array", + "items": { + "$ref": "#/definitions/proto.HomeBannerData" + } + }, + "homeCategoryData": { + "description": "启用分类短剧集合,按分类排序,每个分类最多16条", + "type": "array", + "items": { + "$ref": "#/definitions/proto.HomeCategoryData" + } + }, + "homeRecommendThemes": { + "description": "推荐主题,最多4条", + "type": "array", + "items": { + "$ref": "#/definitions/proto.HomeRecommendTheme" + } + }, + "homeTodayUpdateData": { + "description": "最近更新集合,最多16条", "type": "array", "items": { "$ref": "#/definitions/proto.CommonData" } }, - "homeConfigData": { - "description": "首页配置集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.HomeConfigData" - } - }, "seoInfo": { "description": "页面SEO信息(短剧列表页SEO)", "allOf": [ @@ -4794,6 +3417,35 @@ const docTemplate = `{ } } }, + "proto.HomeRecommendTheme": { + "type": "object", + "properties": { + "icon": { + "description": "题材图标,已拼接图片域名", + "type": "string" + }, + "id": { + "description": "题材ID", + "type": "integer" + }, + "name": { + "description": "题材名称", + "type": "string" + }, + "playletCount": { + "description": "该题材绑定的上架短剧数量", + "type": "integer" + }, + "rank": { + "description": "排序,越大越靠前", + "type": "integer" + }, + "slug": { + "description": "slug", + "type": "string" + } + } + }, "proto.HotSearchItem": { "type": "object", "properties": { @@ -4906,276 +3558,6 @@ const docTemplate = `{ } } }, - "proto.PlayletAllListResp": { - "type": "object", - "properties": { - "advitise": { - "description": "广告", - "allOf": [ - { - "$ref": "#/definitions/proto.AdvitiseData" - } - ] - }, - "list": { - "description": "短剧集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "seoInfo": { - "description": "页面SEO信息", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, - "totalCount": { - "description": "总共数量", - "type": "integer" - } - } - }, - "proto.PlayletBoughtData": { - "type": "object", - "properties": { - "anchor": { - "description": "作者/演员", - "type": "string" - }, - "banner": { - "description": "banner图,已拼接图片域名", - "type": "string" - }, - "boughtAt": { - "description": "最近购买时间", - "type": "string" - }, - "boughtChapterCount": { - "description": "已购剧集数量", - "type": "integer" - }, - "categoryIds": { - "description": "分类ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, - "costCoins": { - "description": "已消耗金币", - "type": "integer" - }, - "countBrowse": { - "description": "观看量", - "type": "integer" - }, - "countCollect": { - "description": "收藏数", - "type": "integer" - }, - "countLike": { - "description": "点赞数,包含真实点赞数和后台虚拟点赞数", - "type": "integer" - }, - "cover": { - "description": "竖版封面,已拼接图片域名", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "desc": { - "description": "简介", - "type": "string" - }, - "description": { - "description": "SEO Description", - "type": "string" - }, - "heatValue": { - "description": "热度值", - "type": "integer" - }, - "horizontalCover": { - "description": "横版封面,已拼接图片域名", - "type": "string" - }, - "id": { - "description": "短剧id", - "type": "integer" - }, - "isFeatured": { - "description": "是否爆剧(true-是,false-否)", - "type": "boolean" - }, - "isFinished": { - "description": "当前用户是否已看完", - "type": "boolean" - }, - "isNew": { - "description": "是否上新,本周内上架为true", - "type": "boolean" - }, - "isRecommend": { - "description": "是否推荐 true-推荐,false-不推荐", - "type": "boolean" - }, - "lastChapterId": { - "description": "最近观看剧集ID,无观看进度时为0", - "type": "integer" - }, - "lastEpisode": { - "description": "最近观看集数,无观看进度时为0", - "type": "integer" - }, - "mediaCreatedAt": { - "description": "媒资中心创建时间", - "type": "string" - }, - "mediaUpdatedAt": { - "description": "媒资中心更新时间", - "type": "string" - }, - "onlineAt": { - "description": "上架时间", - "type": "string" - }, - "operateType": { - "description": "运营类型 1-短剧 2-漫剧", - "type": "integer" - }, - "playName": { - "description": "剧名", - "type": "string" - }, - "preview": { - "description": "预告地址", - "type": "string" - }, - "seoInfo": { - "description": "Seo相关信息", - "allOf": [ - { - "$ref": "#/definitions/pubdef.SeoValue" - } - ] - }, - "showOnBanner": { - "description": "是否显示在首页banner", - "type": "boolean" - }, - "slug": { - "description": "slug", - "type": "string" - }, - "status": { - "description": "状态: 0下架 1上架", - "type": "integer" - }, - "tagIds": { - "description": "标签ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, - "tagNames": { - "description": "标签名称集合", - "type": "array", - "items": { - "type": "string" - } - }, - "tagSlugs": { - "description": "标签slug集合", - "type": "array", - "items": { - "type": "string" - } - }, - "themeIds": { - "description": "题材ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, - "themeNames": { - "description": "题材名称集合", - "type": "array", - "items": { - "type": "string" - } - }, - "themeSlugs": { - "description": "题材slug集合", - "type": "array", - "items": { - "type": "string" - } - }, - "title": { - "description": "标题", - "type": "string" - }, - "totalEpisode": { - "description": "总集数", - "type": "integer" - }, - "unwatchedCount": { - "description": "当前用户未看集数,按totalEpisode-watchedCount计算", - "type": "integer" - }, - "updateStatus": { - "description": "更新状态 1-连载中 2-已完结", - "type": "integer" - }, - "updatedAt": { - "description": "修改时间", - "type": "string" - }, - "watchedCount": { - "description": "当前用户已看集数", - "type": "integer" - } - } - }, - "proto.PlayletBoughtListResp": { - "type": "object", - "properties": { - "list": { - "description": "已购短剧集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.PlayletBoughtData" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "totalCount": { - "description": "总已购短剧数量", - "type": "integer" - } - } - }, "proto.PlayletChapterCollectData": { "type": "object", "properties": { @@ -5864,30 +4246,6 @@ const docTemplate = `{ } } }, - "proto.PlayletGuessLikeListResp": { - "type": "object", - "properties": { - "list": { - "description": "猜你喜欢短剧集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "totalCount": { - "description": "总共数量", - "type": "integer" - } - } - }, "proto.PlayletHistoryClearResp": { "type": "object", "properties": { @@ -5908,13 +4266,6 @@ const docTemplate = `{ "description": "banner图,已拼接图片域名", "type": "string" }, - "categoryIds": { - "description": "分类ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, "countBrowse": { "description": "观看量", "type": "integer" @@ -5928,7 +4279,7 @@ const docTemplate = `{ "type": "integer" }, "cover": { - "description": "竖版封面,已拼接图片域名", + "description": "封面,已拼接图片域名", "type": "string" }, "createdAt": { @@ -5951,10 +4302,6 @@ const docTemplate = `{ "description": "最近观看时间", "type": "string" }, - "horizontalCover": { - "description": "横版封面,已拼接图片域名", - "type": "string" - }, "id": { "description": "短剧id", "type": "integer" @@ -6003,10 +4350,6 @@ const docTemplate = `{ "description": "剧名", "type": "string" }, - "preview": { - "description": "预告地址", - "type": "string" - }, "seoInfo": { "description": "Seo相关信息", "allOf": [ @@ -6095,27 +4438,6 @@ const docTemplate = `{ } } }, - "proto.PlayletHistoryDeleteReq": { - "type": "object", - "required": [ - "playletId" - ], - "properties": { - "playletId": { - "description": "短剧ID", - "type": "integer" - } - } - }, - "proto.PlayletHistoryDeleteResp": { - "type": "object", - "properties": { - "deletedCount": { - "description": "删除记录数量", - "type": "integer" - } - } - }, "proto.PlayletHistoryListResp": { "type": "object", "properties": { @@ -6159,42 +4481,6 @@ const docTemplate = `{ } } }, - "proto.PlayletHotRankListResp": { - "type": "object", - "properties": { - "list": { - "description": "短剧集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "rankType": { - "description": "榜单类型 1-热播榜 2-新剧榜 3-追剧榜", - "type": "integer" - }, - "seoInfo": { - "description": "页面SEO信息", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, - "totalCount": { - "description": "总共数量", - "type": "integer" - } - } - }, "proto.PlayletHotSearchItem": { "type": "object", "properties": { @@ -6211,14 +4497,6 @@ const docTemplate = `{ "proto.PlayletInfoResp": { "type": "object", "properties": { - "advitise": { - "description": "广告", - "allOf": [ - { - "$ref": "#/definitions/proto.AdvitiseData" - } - ] - }, "anchor": { "description": "作者/演员", "type": "string" @@ -6227,13 +4505,6 @@ const docTemplate = `{ "description": "banner图,已拼接图片域名", "type": "string" }, - "categoryIds": { - "description": "分类ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, "countBrowse": { "description": "观看量", "type": "integer" @@ -6247,7 +4518,7 @@ const docTemplate = `{ "type": "integer" }, "cover": { - "description": "竖版封面,已拼接图片域名", + "description": "封面,已拼接图片域名", "type": "string" }, "createdAt": { @@ -6266,10 +4537,6 @@ const docTemplate = `{ "description": "热度值", "type": "integer" }, - "horizontalCover": { - "description": "横版封面,已拼接图片域名", - "type": "string" - }, "id": { "description": "短剧id", "type": "integer" @@ -6321,9 +4588,12 @@ const docTemplate = `{ "$ref": "#/definitions/proto.PlayletChapterData" } }, - "preview": { - "description": "预告地址", - "type": "string" + "relatedRecommendData": { + "description": "相关推荐集合", + "type": "array", + "items": { + "$ref": "#/definitions/proto.CommonData" + } }, "seoInfo": { "description": "页面SEO信息", @@ -6503,22 +4773,59 @@ const docTemplate = `{ } } }, - "proto.PlayletSearchResp": { + "proto.PlayletRecommendListResp": { "type": "object", "properties": { - "everyoneWatching": { - "description": "大家都在看,搜索无结果时返回", + "categoryDesc": { + "description": "分类描述", + "type": "string" + }, + "categoryId": { + "description": "分类ID", + "type": "integer" + }, + "categoryName": { + "description": "分类名称", + "type": "string" + }, + "categorySlug": { + "description": "分类slug", + "type": "string" + }, + "list": { + "description": "短剧集合", "type": "array", "items": { "$ref": "#/definitions/proto.CommonData" } }, - "keyword": { - "description": "搜索词", - "type": "string" + "pageNum": { + "description": "页数", + "type": "integer" }, + "pageSize": { + "description": "每页数", + "type": "integer" + }, + "seoInfo": { + "description": "页面SEO信息(分类SEO)", + "allOf": [ + { + "$ref": "#/definitions/proto.SeoInfo" + } + ] + }, + "totalCount": { + "description": "总共数量", + "type": "integer" + } + } + }, + "proto.PlayletSearchResp": { + "type": "object", + "properties": { "list": { - "description": "搜索结果", + "description": "短剧集合", "type": "array", "items": { "$ref": "#/definitions/proto.CommonData" @@ -6538,51 +4845,6 @@ const docTemplate = `{ } } }, - "proto.PlayletTagItem": { - "type": "object", - "properties": { - "id": { - "description": "标签ID", - "type": "integer" - }, - "name": { - "description": "标签名称", - "type": "string" - }, - "rank": { - "description": "排序,越大越靠前", - "type": "integer" - }, - "seoInfo": { - "description": "标签对应页面 SEO 信息", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, - "slug": { - "description": "slug", - "type": "string" - }, - "status": { - "description": "上架状态", - "type": "boolean" - } - } - }, - "proto.PlayletTagListResponse": { - "type": "object", - "properties": { - "list": { - "description": "标签列表", - "type": "array", - "items": { - "$ref": "#/definitions/proto.PlayletTagItem" - } - } - } - }, "proto.PlayletTagVideoResp": { "type": "object", "properties": { @@ -6704,145 +4966,16 @@ const docTemplate = `{ } } }, - "proto.PlayletTopicDetailResp": { + "proto.PlayletVideoResp": { "type": "object", "properties": { - "covers": { - "description": "顶部封面集合", - "type": "array", - "items": { - "type": "string" - } - }, - "desc": { - "description": "描述", - "type": "string" - }, - "icon": { - "description": "图标", - "type": "string" - }, - "id": { - "description": "专题ID", - "type": "integer" - }, "list": { - "description": "专题短剧列表", + "description": "短剧集合", "type": "array", "items": { "$ref": "#/definitions/proto.CommonData" } }, - "moreTopics": { - "description": "更多专题", - "type": "array", - "items": { - "$ref": "#/definitions/proto.PlayletTopicPageItem" - } - }, - "name": { - "description": "专题名称", - "type": "string" - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "playletCount": { - "description": "上架短剧数量", - "type": "integer" - }, - "rank": { - "description": "排序,越大越靠前", - "type": "integer" - }, - "seoInfo": { - "description": "专题SEO", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, - "slug": { - "description": "slug", - "type": "string" - }, - "totalCount": { - "description": "短剧总数", - "type": "integer" - } - } - }, - "proto.PlayletTopicPageItem": { - "type": "object", - "properties": { - "covers": { - "description": "展示封面集合", - "type": "array", - "items": { - "type": "string" - } - }, - "desc": { - "description": "描述", - "type": "string" - }, - "icon": { - "description": "图标", - "type": "string" - }, - "id": { - "description": "专题ID", - "type": "integer" - }, - "list": { - "description": "专题下短剧集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - }, - "name": { - "description": "专题名称", - "type": "string" - }, - "playletCount": { - "description": "上架短剧数量", - "type": "integer" - }, - "rank": { - "description": "排序,越大越靠前", - "type": "integer" - }, - "seoInfo": { - "description": "专题SEO", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, - "slug": { - "description": "slug", - "type": "string" - } - } - }, - "proto.PlayletTopicPageListResp": { - "type": "object", - "properties": { - "list": { - "description": "专题集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.PlayletTopicPageItem" - } - }, "pageNum": { "description": "页数", "type": "integer" @@ -6852,7 +4985,7 @@ const docTemplate = `{ "type": "integer" }, "seoInfo": { - "description": "页面SEO信息", + "description": "页面SEO信息:有 themeId 时返回题材 SEO,否则返回短剧列表页 SEO", "allOf": [ { "$ref": "#/definitions/proto.SeoInfo" @@ -7045,10 +5178,6 @@ const docTemplate = `{ "proto.TranslationInfo": { "type": "object", "properties": { - "id": { - "description": "ID", - "type": "integer" - }, "isFriendAds": { "description": "是否是友链广告位", "type": "boolean" @@ -7063,272 +5192,6 @@ const docTemplate = `{ } } }, - "proto.UserCenterDataResp": { - "type": "object", - "properties": { - "boughtChapterCount": { - "description": "已购剧集数量", - "type": "integer" - }, - "chasingCount": { - "description": "追剧中数量", - "type": "integer" - }, - "collectCount": { - "description": "收藏数量", - "type": "integer" - }, - "watchCount": { - "description": "观看数量", - "type": "integer" - } - } - }, - "proto.VideoAllListItemResp": { - "type": "object", - "properties": { - "addedTime": { - "description": "上架时间", - "type": "string" - }, - "coverImg": { - "description": "封面", - "type": "string" - }, - "creatorId": { - "description": "作者Id", - "type": "integer" - }, - "creatorName": { - "description": "作者名称", - "type": "string" - }, - "id": { - "description": "id", - "type": "integer" - }, - "keyworld": { - "description": "关键字", - "type": "array", - "items": { - "type": "string" - } - }, - "mediaType": { - "description": "类型 1-影集 2-动画", - "type": "integer" - }, - "slug": { - "description": "slug", - "type": "string" - }, - "tags": { - "description": "标签", - "type": "array", - "items": { - "type": "integer" - } - }, - "title": { - "description": "标题", - "type": "string" - }, - "topicIds": { - "description": "题材ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, - "topicNames": { - "description": "题材名称集合", - "type": "array", - "items": { - "type": "string" - } - }, - "topics": { - "description": "题材集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoTopicInfo" - } - }, - "videoCount": { - "description": "视频数量", - "type": "integer" - }, - "videoTime": { - "description": "影片长度", - "type": "integer" - }, - "watchTimes": { - "description": "观看数", - "type": "integer" - } - } - }, - "proto.VideoAllListResp": { - "type": "object", - "properties": { - "advitise": { - "description": "广告", - "allOf": [ - { - "$ref": "#/definitions/proto.AdvitiseData" - } - ] - }, - "list": { - "description": "视频集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoAllListItemResp" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "seoInfo": { - "description": "页面SEO信息", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, - "totalCount": { - "description": "总共数量", - "type": "integer" - } - } - }, - "proto.VideoCollectData": { - "type": "object", - "properties": { - "collectedAt": { - "description": "收藏时间", - "type": "string" - }, - "countCollect": { - "description": "收藏数", - "type": "integer" - }, - "countComment": { - "description": "评论数", - "type": "integer" - }, - "countLike": { - "description": "点赞数", - "type": "integer" - }, - "coverImg": { - "description": "封面", - "type": "string" - }, - "id": { - "description": "视频ID", - "type": "integer" - }, - "isCollect": { - "description": "收藏状态,收藏列表固定返回1-已收藏", - "type": "integer" - }, - "keyworld": { - "description": "关键字", - "type": "array", - "items": { - "type": "string" - } - }, - "slug": { - "description": "slug", - "type": "string" - }, - "tags": { - "description": "标签", - "type": "array", - "items": { - "type": "integer" - } - }, - "title": { - "description": "标题", - "type": "string" - }, - "videoTime": { - "description": "影片长度", - "type": "integer" - }, - "watchTimes": { - "description": "观看数", - "type": "integer" - } - } - }, - "proto.VideoCollectListResp": { - "type": "object", - "properties": { - "list": { - "description": "收藏视频集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoCollectData" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "totalCount": { - "description": "总收藏数量", - "type": "integer" - } - } - }, - "proto.VideoCollectSetReq": { - "type": "object", - "required": [ - "id", - "isCollect" - ], - "properties": { - "id": { - "description": "视频ID", - "type": "integer" - }, - "isCollect": { - "description": "是否收藏,true-收藏,false-取消收藏", - "type": "boolean" - } - } - }, - "proto.VideoCollectSetResp": { - "type": "object", - "properties": { - "countCollect": { - "description": "视频收藏数", - "type": "integer" - }, - "id": { - "description": "视频ID", - "type": "integer" - }, - "isCollect": { - "description": "收藏状态 1-已收藏 2-未收藏", - "type": "integer" - } - } - }, "proto.VideoData": { "type": "object", "properties": { @@ -7370,123 +5233,6 @@ const docTemplate = `{ } } }, - "proto.VideoHistoryClearResp": { - "type": "object", - "properties": { - "deletedCount": { - "description": "删除记录数量", - "type": "integer" - } - } - }, - "proto.VideoHistoryData": { - "type": "object", - "properties": { - "countCollect": { - "description": "收藏数", - "type": "integer" - }, - "countComment": { - "description": "评论数", - "type": "integer" - }, - "countLike": { - "description": "点赞数", - "type": "integer" - }, - "coverImg": { - "description": "封面", - "type": "string" - }, - "historyAt": { - "description": "最近观看时间", - "type": "string" - }, - "id": { - "description": "视频ID", - "type": "integer" - }, - "isCollect": { - "description": "收藏状态 1-已收藏 2-未收藏", - "type": "integer" - }, - "keyworld": { - "description": "关键字", - "type": "array", - "items": { - "type": "string" - } - }, - "slug": { - "description": "slug", - "type": "string" - }, - "tags": { - "description": "标签", - "type": "array", - "items": { - "type": "integer" - } - }, - "title": { - "description": "标题", - "type": "string" - }, - "videoTime": { - "description": "影片长度", - "type": "integer" - }, - "watchTimes": { - "description": "观看数", - "type": "integer" - } - } - }, - "proto.VideoHistoryDeleteReq": { - "type": "object", - "required": [ - "videoId" - ], - "properties": { - "videoId": { - "description": "视频ID", - "type": "integer" - } - } - }, - "proto.VideoHistoryDeleteResp": { - "type": "object", - "properties": { - "deletedCount": { - "description": "删除记录数量", - "type": "integer" - } - } - }, - "proto.VideoHistoryListResp": { - "type": "object", - "properties": { - "list": { - "description": "观看历史集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoHistoryData" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "totalCount": { - "description": "总历史数量", - "type": "integer" - } - } - }, "proto.VideoInfoResp": { "type": "object", "properties": { @@ -7494,22 +5240,10 @@ const docTemplate = `{ "description": "广告", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, - "countCollect": { - "description": "收藏数", - "type": "integer" - }, - "countComment": { - "description": "评论数", - "type": "integer" - }, - "countLike": { - "description": "点赞数", - "type": "integer" - }, "coverImg": { "description": "封面", "type": "string" @@ -7518,14 +5252,6 @@ const docTemplate = `{ "description": "id", "type": "integer" }, - "isCollect": { - "description": "当前用户收藏状态 1-已收藏 2-未收藏", - "type": "integer" - }, - "isLike": { - "description": "当前用户点赞状态 1-已点赞 2-未点赞", - "type": "integer" - }, "keyworld": { "description": "关键字", "type": "array", @@ -7533,6 +5259,13 @@ const docTemplate = `{ "type": "string" } }, + "recommendVideos": { + "description": "相关推荐,按当前视频标签匹配并按上架时间倒序返回最多20条", + "type": "array", + "items": { + "$ref": "#/definitions/proto.VideoItemResp" + } + }, "seoInfo": { "description": "页面SEO信息", "allOf": [ @@ -7541,10 +5274,6 @@ const docTemplate = `{ } ] }, - "slug": { - "description": "slug", - "type": "string" - }, "tags": { "description": "标签", "type": "array", @@ -7563,20 +5292,6 @@ const docTemplate = `{ "description": "标题", "type": "string" }, - "topicIds": { - "description": "题材ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, - "topics": { - "description": "题材集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoTopicInfo" - } - }, "video": { "description": "视频", "allOf": [ @@ -7621,10 +5336,6 @@ const docTemplate = `{ "type": "string" } }, - "slug": { - "description": "slug", - "type": "string" - }, "tags": { "description": "标签", "type": "array", @@ -7646,40 +5357,6 @@ const docTemplate = `{ } } }, - "proto.VideoLikeSetReq": { - "type": "object", - "required": [ - "id", - "isLike" - ], - "properties": { - "id": { - "description": "视频ID", - "type": "integer" - }, - "isLike": { - "description": "是否点赞,true-点赞,false-取消点赞", - "type": "boolean" - } - } - }, - "proto.VideoLikeSetResp": { - "type": "object", - "properties": { - "countLike": { - "description": "视频点赞数", - "type": "integer" - }, - "id": { - "description": "视频ID", - "type": "integer" - }, - "isLike": { - "description": "点赞状态 1-已点赞 2-未点赞", - "type": "integer" - } - } - }, "proto.VideoResp": { "type": "object", "properties": { @@ -7704,59 +5381,112 @@ const docTemplate = `{ } } }, - "proto.VideoTopicInfo": { + "proxy.AdvitiseData": { "type": "object", "properties": { - "desc": { - "description": "描述", - "type": "string" - }, - "id": { - "description": "Id", - "type": "integer" - }, - "image": { - "description": "背景", - "type": "string" - }, - "name": { - "description": "专题名称", - "type": "string" - }, - "seoInfo": { - "description": "Seo相关信息", - "allOf": [ - { - "$ref": "#/definitions/pubdef.SeoValue" - } - ] - }, - "slug": { - "description": "slug", - "type": "string" - }, - "title": { - "description": "APP显示", - "type": "string" - }, - "videoCategoryId": { - "description": "视频分类id", - "type": "integer" - }, - "works": { - "description": "作品数", - "type": "integer" - } - } - }, - "proto.VideoTopicListResp": { - "type": "object", - "properties": { - "list": { - "description": "题材集合", + "appInfoAList": { + "description": "应用管理广告A", "type": "array", "items": { - "$ref": "#/definitions/proto.VideoTopicInfo" + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "appInfoBList": { + "description": "应用管理广告B", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "dialogList": { + "description": "弹窗广告", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "forcedJumpList": { + "description": "强制跳转广告", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "friendList": { + "description": "友链", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "homeList": { + "description": "首页列表", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "hotAppList": { + "description": "热门应用", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "mustAppList": { + "description": "必备精品", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "newAppList": { + "description": "最新上架", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "nineGridList": { + "description": "9宫格", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "stopList": { + "description": "暂停广告", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "titleAppList": { + "description": "标题广告(APP名称)", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "videoDownList": { + "description": "帖子详情(下)", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "videoList": { + "description": "视频列表", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "videoTopList": { + "description": "帖子详情(上)", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" } } } @@ -8596,10 +6326,6 @@ const docTemplate = `{ "description": "支付金额(分)", "type": "integer" }, - "baseCoin": { - "description": "基础金币数(快照)", - "type": "integer" - }, "cardId": { "description": "── VIP 专用 ──", "type": "integer" @@ -8628,10 +6354,6 @@ const docTemplate = `{ "description": "完成时间", "type": "string" }, - "giftCoin": { - "description": "赠送金币数(快照)", - "type": "integer" - }, "id": { "description": "唯一ID", "type": "integer" diff --git a/app/docs/swagger.json b/app/docs/swagger.json index c231d54..d4989e8 100644 --- a/app/docs/swagger.json +++ b/app/docs/swagger.json @@ -56,7 +56,7 @@ }, "/api/app/auth/getInfo": { "get": { - "description": "通过 token 获取最新用户信息,包含金币余额、VIP状态等", + "description": "按请求头 X-User-Agent 中的 devID 识别用户,返回最新用户信息,包含金币余额、VIP状态等", "produces": [ "application/json" ], @@ -80,89 +80,9 @@ } } }, - "/api/app/auth/guest": { - "post": { - "description": "按设备ID创建或找回游客账号;请求头可带 Authorization 复用已有游客会话。需传 X-User-Agent", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "用户认证" - ], - "summary": "游客登录", - "parameters": [ - { - "description": "游客登录参数", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/authser.GuestLoginReq" - } - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/authser.LoginResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/auth/login": { - "post": { - "description": "账号或邮箱均可作为登录凭证", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "用户认证" - ], - "summary": "登录", - "parameters": [ - { - "description": "登录参数", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/authapi.loginReq" - } - } - ], - "responses": { - "200": { - "description": "登录成功,返回 token 及用户基本信息", - "schema": { - "$ref": "#/definitions/authser.LoginResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/auth/profile": { "post": { - "description": "用户信息通过 token 获取,无需传账号;nickName、avatar、introduction、oldPassword+newPassword 均为可选,至少提供一项。未设置密码时传 newPassword 可设置密码,已设置密码时修改需传 oldPassword+newPassword", + "description": "按请求头 X-User-Agent 中的 devID 识别用户;nickName、avatar、introduction、privacyMode 均为可选,至少提供一项。", "consumes": [ "application/json" ], @@ -172,7 +92,7 @@ "tags": [ "用户认证" ], - "summary": "修改用户资料(头像 / 简介 / 密码,可任意组合)", + "summary": "修改用户资料(昵称 / 头像 / 简介 / 隐私模式,可任意组合)", "parameters": [ { "description": "修改资料参数", @@ -200,86 +120,6 @@ } } }, - "/api/app/auth/register": { - "post": { - "description": "传入账号、邮箱、明文密码。请求头带游客 Authorization 时升级该游客为普通用户,否则新建用户", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "用户认证" - ], - "summary": "注册", - "parameters": [ - { - "description": "注册参数", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/authapi.registerReq" - } - } - ], - "responses": { - "200": { - "description": "注册成功,返回 token 及用户基本信息", - "schema": { - "$ref": "#/definitions/authser.LoginResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/auth/resetPassword": { - "post": { - "description": "通过账号和邮箱双重校验后重置密码,两者必须同时匹配同一用户", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "用户认证" - ], - "summary": "找回密码", - "parameters": [ - { - "description": "找回密码参数", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/authapi.resetPasswordReq" - } - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "type": "string" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/coin/buy": { "post": { "security": [ @@ -357,39 +197,6 @@ } } }, - "/api/app/coin/trans/export": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "description": "导出当前登录用户的金币收入、支出流水CSV;type=0全部 1充值 2消费 3奖励", - "produces": [ - "text/csv" - ], - "tags": [ - "金币" - ], - "summary": "导出金币余额明细 -- by 王鸣", - "parameters": [ - { - "type": "integer", - "description": "类型:0全部 1充值 2消费 3奖励", - "name": "type", - "in": "query" - } - ], - "responses": { - "200": { - "description": "CSV文件", - "schema": { - "type": "file" - } - } - } - } - }, "/api/app/coin/trans/list": { "get": { "security": [ @@ -397,7 +204,7 @@ "ApiKeyAuth": [] } ], - "description": "返回当前登录用户的金币收入、支出流水,按交易时间倒序;type=0全部 1充值 2消费 3奖励", + "description": "返回当前登录用户的金币收入、支出流水,按交易时间倒序", "produces": [ "application/json" ], @@ -417,12 +224,6 @@ "description": "每页数量(默认10,最大100)", "name": "pageSize", "in": "query" - }, - { - "type": "integer", - "description": "类型:0全部 1充值 2消费 3奖励", - "name": "type", - "in": "query" } ], "responses": { @@ -457,7 +258,7 @@ "ApiKeyAuth": [] } ], - "description": "设置当前用户对短剧、短剧剧集或视频评论的点赞状态", + "description": "设置当前用户对短剧评论或短剧剧集评论的点赞状态", "consumes": [ "application/json" ], @@ -497,7 +298,7 @@ }, "/api/app/comment/list": { "get": { - "description": "分页查询短剧、短剧剧集或视频评论树,一级评论分页返回,二级评论挂在children中,objectType 10-短剧 11-短剧剧集 20-视频", + "description": "分页查询短剧或短剧剧集评论树,一级评论分页返回,二级评论挂在children中,objectType 10-短剧 11-短剧剧集", "consumes": [ "application/json" ], @@ -511,14 +312,14 @@ "parameters": [ { "type": "integer", - "description": "对象ID(短剧id 短剧剧集id 视频id)", + "description": "对象ID(短剧id 短剧剧集id)", "name": "objectId", "in": "query", "required": true }, { "type": "integer", - "description": "对象类型 10-短剧 11-短剧剧集 20-视频", + "description": "对象类型 10-短剧 11-短剧剧集", "name": "objectType", "in": "query", "required": true @@ -578,7 +379,7 @@ "ApiKeyAuth": [] } ], - "description": "发布短剧、短剧剧集或视频评论,parentsId为0发布一级评论,大于0发布二级评论,replyCommentId表示实际回复的评论,objectType 10-短剧 11-短剧剧集 20-视频", + "description": "发布短剧或短剧剧集评论,parentsId为0发布一级评论,大于0发布二级评论,replyCommentId表示实际回复的评论,objectType 10-短剧 11-短剧剧集", "consumes": [ "application/json" ], @@ -807,161 +608,6 @@ } } }, - "/api/app/navigation/header": { - "get": { - "description": "查询导航类型为URL模式和二级导航的头部导航配置", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app导航相关接口" - ], - "summary": "查询头部导航配置 -- by 王鸣", - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.AppTranslationInfo" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/playlet/all/list": { - "get": { - "description": "分页查询已上架短剧,支持题材、更新状态和排序筛选", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端分页查询全部短剧 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "排序 1-最新 2-最热 3-收藏最多", - "name": "sortType", - "in": "query" - }, - { - "type": "integer", - "description": "题材ID", - "name": "themeId", - "in": "query" - }, - { - "type": "string", - "description": "题材slug,非空时优先按slug解析题材ID", - "name": "themeSlug", - "in": "query" - }, - { - "type": "integer", - "description": "更新状态 0-全部 1-连载中 2-已完结", - "name": "updateStatus", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/proto.PlayletAllListResp" - }, - { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - } - } - } - ] - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/playlet/bought/list": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "description": "按当前用户最近购买时间倒序分页返回已购短剧列表,并返回已购集数、消耗金币和最近观看位置", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端我的已购短剧列表 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.PlayletBoughtListResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/playlet/chapter/collect/list": { "get": { "security": [ @@ -1282,7 +928,7 @@ "ApiKeyAuth": [] } ], - "description": "按当前用户收藏时间倒序分页返回短剧收藏列表,并返回已看/未看集数和最近观看位置;watchStatus=0全部 1追剧中 2已看完", + "description": "按当前用户收藏时间倒序分页返回短剧收藏列表,并返回已看/未看集数和最近观看位置", "consumes": [ "application/json" ], @@ -1303,12 +949,6 @@ "type": "integer", "name": "pageSize", "in": "query" - }, - { - "type": "integer", - "description": "观看状态 0-全部 1-追剧中 2-已看完", - "name": "watchStatus", - "in": "query" } ], "responses": { @@ -1452,69 +1092,6 @@ } } }, - "/api/app/playlet/guess-like/list": { - "get": { - "description": "根据当前短剧同题材查询猜你喜欢,排除当前短剧", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端分页查询猜你喜欢短剧 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "当前短剧ID", - "name": "playletId", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/proto.PlayletGuessLikeListResp" - }, - { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - } - } - } - ] - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/playlet/history/clear": { "post": { "security": [ @@ -1549,51 +1126,6 @@ } } }, - "/api/app/playlet/history/delete": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "description": "删除当前用户指定短剧的观看历史,不影响观看进度、收藏和已购记录", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端删除单条短剧观看历史 --by 王鸣", - "parameters": [ - { - "description": "删除单条观看历史请求", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/proto.PlayletHistoryDeleteReq" - } - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.PlayletHistoryDeleteResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/playlet/history/list": { "get": { "security": [ @@ -1642,7 +1174,7 @@ }, "/api/app/playlet/home": { "get": { - "description": "无请求参数,返回首页banner短剧、公告和SEO信息", + "description": "无请求参数,返回首页banner、最近更新和启用短剧分类数据;homeCategoryData按分类rank倒序返回全部启用分类,每个分类最多16条短剧", "consumes": [ "application/json" ], @@ -1669,90 +1201,6 @@ } } }, - "/api/app/playlet/home/config/detail/list": { - "get": { - "description": "根据首页配置ID分页查询短剧、视频或题材", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端分页查询首页配置详情列表--by 王鸣", - "parameters": [ - { - "type": "integer", - "description": "首页配置ID", - "name": "homeConfigId", - "in": "query", - "required": true - }, - { - "type": "integer", - "description": "type=2时生效,视频类型 0-全部 1-影集 2-动画", - "name": "mediaType", - "in": "query" - }, - { - "type": "integer", - "description": "type=1时生效,运营类型 0-全部 1-短剧 2-漫剧", - "name": "operateType", - "in": "query" - }, - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "type=1时生效,题材ID", - "name": "themeId", - "in": "query" - }, - { - "type": "string", - "description": "type=1时生效,题材slug,非空时优先按slug解析题材ID", - "name": "themeSlug", - "in": "query" - }, - { - "type": "integer", - "description": "type=1/type=2时生效,时间范围 0-综合 1-本周 2-本月", - "name": "timeRange", - "in": "query" - }, - { - "type": "integer", - "description": "type=2时生效,视频题材ID,对应video_topic", - "name": "topicId", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.HomeConfigDetailListResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/playlet/hot-like": { "get": { "description": "返回缓存的前10个热搜词,以及按收藏量最多的15部猜你喜欢短剧", @@ -1782,68 +1230,6 @@ } } }, - "/api/app/playlet/hot/rank/list": { - "get": { - "description": "分页查询已上架短剧热榜;rankType=1热播榜 2新剧榜 3追剧榜", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端分页查询热榜 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "榜单类型 1-热播榜 2-新剧榜 3-追剧榜", - "name": "rankType", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/proto.PlayletHotRankListResp" - }, - { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - } - } - } - ] - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/playlet/like/set": { "post": { "security": [ @@ -1889,6 +1275,80 @@ } } }, + "/api/app/playlet/list": { + "get": { + "description": "分页查询已上架短剧;可按题材ID或题材slug筛选,slug非空时优先按slug解析题材ID", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "app短剧相关接口" + ], + "summary": "短剧 --by 王鸣", + "parameters": [ + { + "type": "integer", + "name": "pageNum", + "in": "query" + }, + { + "type": "integer", + "name": "pageSize", + "in": "query" + }, + { + "type": "integer", + "description": "排序 1-热度优先,按收藏量倒序 2-今日更新,按上架时间倒序", + "name": "sortOrder", + "in": "query" + }, + { + "type": "integer", + "description": "题材ID", + "name": "themeId", + "in": "query" + }, + { + "type": "string", + "description": "题材slug,非空时优先按slug解析题材ID", + "name": "themeSlug", + "in": "query" + } + ], + "responses": { + "200": { + "description": "成功", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/proto.PlayletVideoResp" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/proto.CommonData" + } + } + } + } + ] + } + }, + "400": { + "description": "失败", + "schema": { + "type": "string" + } + } + } + } + }, "/api/app/playlet/operate/list": { "get": { "description": "按运营类型查询已上架短剧;operateType=1短剧 2漫剧;filterType=1最近更新(按上架时间) 2当前热播(按收藏数) 3独家原创(原创且按推荐排序)", @@ -2019,6 +1479,74 @@ } } }, + "/api/app/playlet/recommend/list": { + "get": { + "description": "根据短剧分类ID或分类slug分页查询已上架短剧;slug非空时优先按slug解析分类ID;pageSize默认10、最大100", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "app短剧相关接口" + ], + "summary": "app端分页查询分类短剧(更多) --by 王鸣", + "parameters": [ + { + "type": "integer", + "description": "分类ID", + "name": "categoryId", + "in": "query" + }, + { + "type": "string", + "description": "分类slug,非空时优先按slug解析分类ID", + "name": "categorySlug", + "in": "query" + }, + { + "type": "integer", + "name": "pageNum", + "in": "query" + }, + { + "type": "integer", + "name": "pageSize", + "in": "query" + } + ], + "responses": { + "200": { + "description": "成功", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/proto.PlayletRecommendListResp" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/proto.CommonData" + } + } + } + } + ] + } + }, + "400": { + "description": "失败", + "schema": { + "type": "string" + } + } + } + } + }, "/api/app/playlet/search": { "get": { "description": "使用ES分页搜索已上架短剧,支持剧名、题材名、简介和标签名检索", @@ -2083,7 +1611,7 @@ }, "/api/app/playlet/tag/list": { "get": { - "description": "根据标签ID或标签slug分页查询已上架短剧;slug非空时优先按slug解析标签ID;sortType=1最新 2最热 3收藏最多", + "description": "根据标签ID或标签slug分页查询已上架短剧;slug非空时优先按slug解析标签ID", "consumes": [ "application/json" ], @@ -2107,13 +1635,7 @@ }, { "type": "integer", - "description": "排序 1-最新 2-最热 3-收藏最多", - "name": "sortType", - "in": "query" - }, - { - "type": "integer", - "description": "标签ID,tagSlug为空时必传", + "description": "标签ID", "name": "tagId", "in": "query" }, @@ -2155,35 +1677,6 @@ } } }, - "/api/app/playlet/tag/options": { - "get": { - "description": "无请求参数,不分页,返回已上架短剧标签列表", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧标签相关接口" - ], - "summary": "app端短剧标签列表 --by 王鸣", - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.PlayletTagListResponse" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/playlet/today-update": { "get": { "description": "分页查询已上架短剧", @@ -2240,143 +1733,6 @@ } } }, - "/api/app/playlet/topic/detail": { - "get": { - "description": "按专题ID查询专题信息和专题短剧列表", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端查询专题详情 --by 王鸣", - "parameters": [ - { - "type": "integer", - "description": "专题ID", - "name": "id", - "in": "query", - "required": true - }, - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "排序 1-编辑排序 2-最新 3-最热", - "name": "sortType", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/proto.PlayletTopicDetailResp" - }, - { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - }, - "moreTopics": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.PlayletTopicPageItem" - } - } - } - } - ] - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/playlet/topic/list": { - "get": { - "description": "分页查询已上架且有短剧数据的专题剧单", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app短剧相关接口" - ], - "summary": "app端分页查询专题剧单 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "排序 1-最新 2-最热", - "name": "sortType", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/proto.PlayletTopicPageListResp" - }, - { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.PlayletTopicPageItem" - } - } - } - } - ] - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/recharge/package/list": { "get": { "description": "返回会员畅享和金币充值两个列表,并附带各套餐可用支付方式", @@ -2539,204 +1895,9 @@ } } }, - "/api/app/user/center/data": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "description": "返回当前用户观看、收藏、追剧中、已购剧集统计", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "app个人中心相关接口" - ], - "summary": "app个人中心数据 --by 王鸣", - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.UserCenterDataResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/all/list": { - "get": { - "description": "分页查询已上架视频,支持类型、题材和排序筛选", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端分页查询视频列表 --by 王鸣", - "parameters": [ - { - "type": "integer", - "description": "类型 0-全部 1-影集 2-动画", - "name": "mediaType", - "in": "query" - }, - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "排序 1-最新 2-最热 3-收藏最多", - "name": "sortType", - "in": "query" - }, - { - "type": "integer", - "description": "题材ID,对应video_topic", - "name": "topicId", - "in": "query" - }, - { - "type": "string", - "description": "题材slug,非空时优先按slug解析题材ID", - "name": "topicSlug", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/proto.VideoAllListResp" - }, - { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoAllListItemResp" - } - } - } - } - ] - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/collect/list": { - "get": { - "description": "按当前用户收藏时间倒序分页返回视频收藏列表", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端我的视频收藏列表 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoCollectListResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/collect/set": { - "post": { - "description": "设置当前用户视频收藏状态,收藏数只在状态真实变化时增减", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端视频收藏/取消收藏 --by 王鸣", - "parameters": [ - { - "description": "视频收藏设置请求", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/proto.VideoCollectSetReq" - } - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoCollectSetResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/video/detail": { "get": { - "description": "查询已上架视频详情", + "description": "查询已上架视频详情和该视频相关推荐列表", "consumes": [ "application/json" ], @@ -2750,172 +1911,32 @@ "parameters": [ { "type": "integer", - "description": "视频id", + "description": "视频的id必填", "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "视频slug,非空时优先按slug解析视频ID", - "name": "slug", - "in": "query" + "in": "query", + "required": true } ], "responses": { "200": { "description": "成功", "schema": { - "$ref": "#/definitions/proto.VideoInfoResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/history/clear": { - "post": { - "description": "清空当前用户全部视频观看历史,不影响收藏和点赞", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端清空我的视频观看历史 --by 王鸣", - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoHistoryClearResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/history/delete": { - "post": { - "description": "删除当前用户指定视频观看历史,不影响收藏和点赞", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端删除单条视频观看历史 --by 王鸣", - "parameters": [ - { - "description": "删除单条视频观看历史请求", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/proto.VideoHistoryDeleteReq" - } - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoHistoryDeleteResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/history/list": { - "get": { - "description": "按当前用户最近观看时间倒序分页返回视频观看历史", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端我的视频观看历史列表 --by 王鸣", - "parameters": [ - { - "type": "integer", - "name": "pageNum", - "in": "query" - }, - { - "type": "integer", - "name": "pageSize", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoHistoryListResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, - "/api/app/video/like/set": { - "post": { - "description": "设置当前用户视频点赞状态,点赞数只在状态真实变化时增减", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端视频点赞/取消点赞 --by 王鸣", - "parameters": [ - { - "description": "视频点赞设置请求", - "name": "param", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/proto.VideoLikeSetReq" - } - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoLikeSetResp" + "allOf": [ + { + "$ref": "#/definitions/proto.VideoInfoResp" + }, + { + "type": "object", + "properties": { + "recommendVideos": { + "type": "array", + "items": { + "$ref": "#/definitions/proto.VideoItemResp" + } + } + } + } + ] } }, "400": { @@ -2983,43 +2004,6 @@ } } }, - "/api/app/video/topic/list": { - "get": { - "description": "查询已上架视频题材列表,mediaType=0全部 1影集 2动画", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "视频相关接口" - ], - "summary": "app端查询视频题材列表 --by 王鸣", - "parameters": [ - { - "type": "integer", - "description": "类型 0-全部 1-影集 2-动画", - "name": "mediaType", - "in": "query" - } - ], - "responses": { - "200": { - "description": "成功", - "schema": { - "$ref": "#/definitions/proto.VideoTopicListResp" - } - }, - "400": { - "description": "失败", - "schema": { - "type": "string" - } - } - } - } - }, "/api/app/vip/orders": { "get": { "security": [ @@ -3149,87 +2133,6 @@ } }, "definitions": { - "authapi.loginReq": { - "type": "object", - "required": [ - "account", - "password" - ], - "properties": { - "account": { - "description": "账号或邮箱", - "type": "string" - }, - "channel": { - "description": "渠道码(可选,用户无商区码时写入)", - "type": "string" - }, - "devID": { - "description": "设备唯一标示(可选)", - "type": "string" - }, - "password": { - "description": "明文密码", - "type": "string" - } - } - }, - "authapi.registerReq": { - "type": "object", - "required": [ - "accountNo", - "email", - "password" - ], - "properties": { - "accountNo": { - "description": "账号", - "type": "string" - }, - "agentInviteCode": { - "description": "邀请人的邀请码(可选)", - "type": "string" - }, - "channel": { - "description": "渠道码(可选,用户无商区码时写入)", - "type": "string" - }, - "devID": { - "description": "设备唯一标示(可选)", - "type": "string" - }, - "email": { - "description": "邮箱", - "type": "string" - }, - "password": { - "description": "明文密码", - "type": "string" - } - } - }, - "authapi.resetPasswordReq": { - "type": "object", - "required": [ - "accountNo", - "email", - "newPassword" - ], - "properties": { - "accountNo": { - "description": "账号", - "type": "string" - }, - "email": { - "description": "邮箱", - "type": "string" - }, - "newPassword": { - "description": "新密码", - "type": "string" - } - } - }, "authapi.updateProfileReq": { "type": "object", "properties": { @@ -3241,45 +2144,16 @@ "description": "简介(可选)", "type": "string" }, - "newPassword": { - "description": "新密码明文(设置或修改密码时必填)", - "type": "string" - }, "nickName": { "description": "新昵称(可选)", "type": "string" }, - "oldPassword": { - "description": "旧密码明文(已设置密码时修改必填)", - "type": "string" - }, "privacyMode": { "description": "隐私模式:true-开启,false-关闭(可选)", "type": "boolean" } } }, - "authser.GuestLoginReq": { - "type": "object", - "properties": { - "channel": { - "description": "渠道码(可选,用户无商区码时写入 DistrictCode)", - "type": "string" - }, - "devID": { - "description": "设备唯一标示(必填)", - "type": "string" - }, - "deviceId": { - "description": "备用设备ID(可选,写入 DevV2)", - "type": "string" - }, - "mac": { - "description": "设备 Mac(可选)", - "type": "string" - } - } - }, "authser.LoginResp": { "type": "object", "properties": { @@ -3297,10 +2171,6 @@ "email": { "type": "string" }, - "hasPassword": { - "description": "是否已设置密码", - "type": "boolean" - }, "introduction": { "description": "简介", "type": "string" @@ -3309,10 +2179,6 @@ "description": "邀请码", "type": "string" }, - "isNewUser": { - "description": "本次是否新建游客", - "type": "boolean" - }, "isRegister": { "description": "是否已注册", "type": "boolean" @@ -3351,9 +2217,6 @@ "status": { "$ref": "#/definitions/pubdef.UserStatus" }, - "token": { - "type": "string" - }, "type": { "description": "身份类型:0游客 1普通用户", "allOf": [ @@ -3426,12 +2289,10 @@ 2, 3, 4, - 5, - 6 + 5 ], "x-enum-comments": { "TranTypeAdminAdjust": "管理员手动调整", - "TranTypeCoinGift": "金币充值赠送", "TranTypeCoinRecharge": "金币充值(购买金币)", "TranTypeDarkAlley": "历史遗留交易类型(已下线)", "TranTypeVideoUnlock": "视频解锁", @@ -3442,127 +2303,9 @@ "TranTypeVipGiftCoin", "TranTypeDarkAlley", "TranTypeVideoUnlock", - "TranTypeAdminAdjust", - "TranTypeCoinGift" + "TranTypeAdminAdjust" ] }, - "proto.AdvitiseData": { - "type": "object", - "properties": { - "AList": { - "description": "固定12广告位", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "BList": { - "description": "固定13广告位", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "bottomBanner": { - "description": "底部banner", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "detailTopList": { - "description": "详情页顶部广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "detailbannerList": { - "description": "详情banner", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "dialogList": { - "description": "弹窗广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "downList": { - "description": "底部广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "floatingList": { - "description": "悬浮小方块", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "friendList": { - "description": "友链", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "homeList": { - "description": "首页列表", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "launchScreenList": { - "description": "启动页广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "nineGridList": { - "description": "9宫格", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "pauseyList": { - "description": "暂停广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "playList": { - "description": "播放强制跳转", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "titleList": { - "description": "标题广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "videoInfoList": { - "description": "视频详情", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - } - } - }, "proto.AnnouncementItem": { "type": "object", "properties": { @@ -3664,7 +2407,7 @@ "description": "广告", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -3849,7 +2592,7 @@ "type": "integer" }, "objectType": { - "description": "对象类型 10-短剧 11-短剧剧集 20-视频", + "description": "对象类型 10-短剧 11-短剧剧集", "type": "integer" }, "parentsId": { @@ -3920,11 +2663,11 @@ "type": "object", "properties": { "objectId": { - "description": "对象ID,短剧评论传短剧ID,剧集评论传剧集ID,视频评论传视频ID", + "description": "对象ID,短剧评论传短剧ID,剧集评论传剧集ID", "type": "integer" }, "objectType": { - "description": "对象类型 10-短剧 11-短剧剧集 20-视频", + "description": "对象类型 10-短剧 11-短剧剧集", "type": "integer" }, "parentsId": { @@ -3952,13 +2695,6 @@ "description": "banner图,已拼接图片域名", "type": "string" }, - "categoryIds": { - "description": "分类ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, "countBrowse": { "description": "观看量", "type": "integer" @@ -3972,7 +2708,7 @@ "type": "integer" }, "cover": { - "description": "竖版封面,已拼接图片域名", + "description": "封面,已拼接图片域名", "type": "string" }, "createdAt": { @@ -3991,10 +2727,6 @@ "description": "热度值", "type": "integer" }, - "horizontalCover": { - "description": "横版封面,已拼接图片域名", - "type": "string" - }, "id": { "description": "短剧id", "type": "integer" @@ -4031,10 +2763,6 @@ "description": "剧名", "type": "string" }, - "preview": { - "description": "预告地址", - "type": "string" - }, "seoInfo": { "description": "Seo相关信息", "allOf": [ @@ -4229,10 +2957,6 @@ "description": "qq群", "type": "string" }, - "reportSdkConfig": { - "description": "数据上报SDK域名配置", - "type": "string" - }, "telegram": { "description": "商务tg", "type": "string" @@ -4304,7 +3028,7 @@ "description": "广告配置", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -4331,10 +3055,6 @@ } ] }, - "reportSdkConfig": { - "description": "数据上报SDK域名配置", - "type": "string" - }, "seoInfo": { "description": "全站SEO信息", "allOf": [ @@ -4527,174 +3247,71 @@ } } }, - "proto.HomeConfigData": { + "proto.HomeBannerData": { "type": "object", "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "desc": { - "description": "描述", - "type": "string" - }, "id": { "description": "ID", "type": "integer" }, - "list": { - "description": "配置对应短剧集合,type=1时返回", - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } + "image": { + "description": "图片,已拼接图片域名", + "type": "string" }, "name": { "description": "名称", "type": "string" }, "rank": { - "description": "排序,越大越靠前", - "type": "integer" - }, - "sortType": { - "description": "排序字段 1-推荐 2-热播 3-最近更新 4-新片预告 5-分类", + "description": "排序", "type": "integer" }, "status": { - "description": "上下架状态 true-上架 false-下架", + "description": "状态 true-启用 false-停用", "type": "boolean" }, - "themeList": { - "description": "题材集合,type=3时返回", - "type": "array", - "items": { - "$ref": "#/definitions/proto.HomeConfigThemeData" - } - }, - "type": { - "description": "类型 1-短剧 2-视频 3-题材", - "type": "integer" - }, - "updatedAt": { - "description": "修改时间", + "url": { + "description": "URL", "type": "string" }, - "videoList": { - "description": "视频集合,type=2时返回", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoItemResp" - } + "verticalImage": { + "description": "竖版图片,已拼接图片域名", + "type": "string" } } }, - "proto.HomeConfigDetailListResp": { + "proto.HomeCategoryData": { "type": "object", "properties": { - "advitise": { - "description": "广告", - "allOf": [ - { - "$ref": "#/definitions/proto.AdvitiseData" - } - ] - }, "desc": { "description": "描述", "type": "string" }, - "homeConfigId": { - "description": "首页配置ID", - "type": "integer" - }, - "list": { - "description": "短剧集合,type=1时返回", - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - }, - "name": { - "description": "名称", - "type": "string" - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "sortType": { - "description": "排序字段 1-推荐 2-热播 3-最近更新 4-新片预告 5-分类", - "type": "integer" - }, - "themeList": { - "description": "题材集合,type=3时返回", - "type": "array", - "items": { - "$ref": "#/definitions/proto.HomeConfigThemeData" - } - }, - "totalCount": { - "description": "总共数量", - "type": "integer" - }, - "type": { - "description": "类型 1-短剧 2-视频 3-题材", - "type": "integer" - }, - "videoList": { - "description": "视频集合,type=2时返回", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoItemResp" - } - } - } - }, - "proto.HomeConfigThemeData": { - "type": "object", - "properties": { "icon": { - "description": "题材图标,已拼接图片域名", + "description": "分类图标", "type": "string" }, "id": { - "description": "题材ID", + "description": "分类ID", "type": "integer" }, "list": { - "description": "题材下短剧集合", + "description": "分类下短剧集合,最多16条", "type": "array", "items": { "$ref": "#/definitions/proto.CommonData" } }, "name": { - "description": "题材名称", + "description": "分类名称", "type": "string" }, - "playletCount": { - "description": "绑定短剧数量", - "type": "integer" - }, "rank": { - "description": "排序,越大越靠前", + "description": "分类排序,越大越靠前", "type": "integer" }, - "seoInfo": { - "description": "题材对应页面SEO信息", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, "slug": { - "description": "题材slug", + "description": "slug", "type": "string" } } @@ -4706,7 +3323,7 @@ "description": "广告", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -4753,14 +3370,6 @@ "proto.HomePlayletResponse": { "type": "object", "properties": { - "advitise": { - "description": "广告", - "allOf": [ - { - "$ref": "#/definitions/proto.AdvitiseData" - } - ] - }, "announcements": { "description": "启用中的公告,来自独立缓存", "type": "array", @@ -4769,19 +3378,33 @@ } }, "homeBannerData": { - "description": "首页banner短剧信息列表", + "description": "首页banner信息列表", + "type": "array", + "items": { + "$ref": "#/definitions/proto.HomeBannerData" + } + }, + "homeCategoryData": { + "description": "启用分类短剧集合,按分类排序,每个分类最多16条", + "type": "array", + "items": { + "$ref": "#/definitions/proto.HomeCategoryData" + } + }, + "homeRecommendThemes": { + "description": "推荐主题,最多4条", + "type": "array", + "items": { + "$ref": "#/definitions/proto.HomeRecommendTheme" + } + }, + "homeTodayUpdateData": { + "description": "最近更新集合,最多16条", "type": "array", "items": { "$ref": "#/definitions/proto.CommonData" } }, - "homeConfigData": { - "description": "首页配置集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.HomeConfigData" - } - }, "seoInfo": { "description": "页面SEO信息(短剧列表页SEO)", "allOf": [ @@ -4792,6 +3415,35 @@ } } }, + "proto.HomeRecommendTheme": { + "type": "object", + "properties": { + "icon": { + "description": "题材图标,已拼接图片域名", + "type": "string" + }, + "id": { + "description": "题材ID", + "type": "integer" + }, + "name": { + "description": "题材名称", + "type": "string" + }, + "playletCount": { + "description": "该题材绑定的上架短剧数量", + "type": "integer" + }, + "rank": { + "description": "排序,越大越靠前", + "type": "integer" + }, + "slug": { + "description": "slug", + "type": "string" + } + } + }, "proto.HotSearchItem": { "type": "object", "properties": { @@ -4904,276 +3556,6 @@ } } }, - "proto.PlayletAllListResp": { - "type": "object", - "properties": { - "advitise": { - "description": "广告", - "allOf": [ - { - "$ref": "#/definitions/proto.AdvitiseData" - } - ] - }, - "list": { - "description": "短剧集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "seoInfo": { - "description": "页面SEO信息", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, - "totalCount": { - "description": "总共数量", - "type": "integer" - } - } - }, - "proto.PlayletBoughtData": { - "type": "object", - "properties": { - "anchor": { - "description": "作者/演员", - "type": "string" - }, - "banner": { - "description": "banner图,已拼接图片域名", - "type": "string" - }, - "boughtAt": { - "description": "最近购买时间", - "type": "string" - }, - "boughtChapterCount": { - "description": "已购剧集数量", - "type": "integer" - }, - "categoryIds": { - "description": "分类ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, - "costCoins": { - "description": "已消耗金币", - "type": "integer" - }, - "countBrowse": { - "description": "观看量", - "type": "integer" - }, - "countCollect": { - "description": "收藏数", - "type": "integer" - }, - "countLike": { - "description": "点赞数,包含真实点赞数和后台虚拟点赞数", - "type": "integer" - }, - "cover": { - "description": "竖版封面,已拼接图片域名", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "desc": { - "description": "简介", - "type": "string" - }, - "description": { - "description": "SEO Description", - "type": "string" - }, - "heatValue": { - "description": "热度值", - "type": "integer" - }, - "horizontalCover": { - "description": "横版封面,已拼接图片域名", - "type": "string" - }, - "id": { - "description": "短剧id", - "type": "integer" - }, - "isFeatured": { - "description": "是否爆剧(true-是,false-否)", - "type": "boolean" - }, - "isFinished": { - "description": "当前用户是否已看完", - "type": "boolean" - }, - "isNew": { - "description": "是否上新,本周内上架为true", - "type": "boolean" - }, - "isRecommend": { - "description": "是否推荐 true-推荐,false-不推荐", - "type": "boolean" - }, - "lastChapterId": { - "description": "最近观看剧集ID,无观看进度时为0", - "type": "integer" - }, - "lastEpisode": { - "description": "最近观看集数,无观看进度时为0", - "type": "integer" - }, - "mediaCreatedAt": { - "description": "媒资中心创建时间", - "type": "string" - }, - "mediaUpdatedAt": { - "description": "媒资中心更新时间", - "type": "string" - }, - "onlineAt": { - "description": "上架时间", - "type": "string" - }, - "operateType": { - "description": "运营类型 1-短剧 2-漫剧", - "type": "integer" - }, - "playName": { - "description": "剧名", - "type": "string" - }, - "preview": { - "description": "预告地址", - "type": "string" - }, - "seoInfo": { - "description": "Seo相关信息", - "allOf": [ - { - "$ref": "#/definitions/pubdef.SeoValue" - } - ] - }, - "showOnBanner": { - "description": "是否显示在首页banner", - "type": "boolean" - }, - "slug": { - "description": "slug", - "type": "string" - }, - "status": { - "description": "状态: 0下架 1上架", - "type": "integer" - }, - "tagIds": { - "description": "标签ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, - "tagNames": { - "description": "标签名称集合", - "type": "array", - "items": { - "type": "string" - } - }, - "tagSlugs": { - "description": "标签slug集合", - "type": "array", - "items": { - "type": "string" - } - }, - "themeIds": { - "description": "题材ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, - "themeNames": { - "description": "题材名称集合", - "type": "array", - "items": { - "type": "string" - } - }, - "themeSlugs": { - "description": "题材slug集合", - "type": "array", - "items": { - "type": "string" - } - }, - "title": { - "description": "标题", - "type": "string" - }, - "totalEpisode": { - "description": "总集数", - "type": "integer" - }, - "unwatchedCount": { - "description": "当前用户未看集数,按totalEpisode-watchedCount计算", - "type": "integer" - }, - "updateStatus": { - "description": "更新状态 1-连载中 2-已完结", - "type": "integer" - }, - "updatedAt": { - "description": "修改时间", - "type": "string" - }, - "watchedCount": { - "description": "当前用户已看集数", - "type": "integer" - } - } - }, - "proto.PlayletBoughtListResp": { - "type": "object", - "properties": { - "list": { - "description": "已购短剧集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.PlayletBoughtData" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "totalCount": { - "description": "总已购短剧数量", - "type": "integer" - } - } - }, "proto.PlayletChapterCollectData": { "type": "object", "properties": { @@ -5862,30 +4244,6 @@ } } }, - "proto.PlayletGuessLikeListResp": { - "type": "object", - "properties": { - "list": { - "description": "猜你喜欢短剧集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "totalCount": { - "description": "总共数量", - "type": "integer" - } - } - }, "proto.PlayletHistoryClearResp": { "type": "object", "properties": { @@ -5906,13 +4264,6 @@ "description": "banner图,已拼接图片域名", "type": "string" }, - "categoryIds": { - "description": "分类ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, "countBrowse": { "description": "观看量", "type": "integer" @@ -5926,7 +4277,7 @@ "type": "integer" }, "cover": { - "description": "竖版封面,已拼接图片域名", + "description": "封面,已拼接图片域名", "type": "string" }, "createdAt": { @@ -5949,10 +4300,6 @@ "description": "最近观看时间", "type": "string" }, - "horizontalCover": { - "description": "横版封面,已拼接图片域名", - "type": "string" - }, "id": { "description": "短剧id", "type": "integer" @@ -6001,10 +4348,6 @@ "description": "剧名", "type": "string" }, - "preview": { - "description": "预告地址", - "type": "string" - }, "seoInfo": { "description": "Seo相关信息", "allOf": [ @@ -6093,27 +4436,6 @@ } } }, - "proto.PlayletHistoryDeleteReq": { - "type": "object", - "required": [ - "playletId" - ], - "properties": { - "playletId": { - "description": "短剧ID", - "type": "integer" - } - } - }, - "proto.PlayletHistoryDeleteResp": { - "type": "object", - "properties": { - "deletedCount": { - "description": "删除记录数量", - "type": "integer" - } - } - }, "proto.PlayletHistoryListResp": { "type": "object", "properties": { @@ -6157,42 +4479,6 @@ } } }, - "proto.PlayletHotRankListResp": { - "type": "object", - "properties": { - "list": { - "description": "短剧集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "rankType": { - "description": "榜单类型 1-热播榜 2-新剧榜 3-追剧榜", - "type": "integer" - }, - "seoInfo": { - "description": "页面SEO信息", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, - "totalCount": { - "description": "总共数量", - "type": "integer" - } - } - }, "proto.PlayletHotSearchItem": { "type": "object", "properties": { @@ -6209,14 +4495,6 @@ "proto.PlayletInfoResp": { "type": "object", "properties": { - "advitise": { - "description": "广告", - "allOf": [ - { - "$ref": "#/definitions/proto.AdvitiseData" - } - ] - }, "anchor": { "description": "作者/演员", "type": "string" @@ -6225,13 +4503,6 @@ "description": "banner图,已拼接图片域名", "type": "string" }, - "categoryIds": { - "description": "分类ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, "countBrowse": { "description": "观看量", "type": "integer" @@ -6245,7 +4516,7 @@ "type": "integer" }, "cover": { - "description": "竖版封面,已拼接图片域名", + "description": "封面,已拼接图片域名", "type": "string" }, "createdAt": { @@ -6264,10 +4535,6 @@ "description": "热度值", "type": "integer" }, - "horizontalCover": { - "description": "横版封面,已拼接图片域名", - "type": "string" - }, "id": { "description": "短剧id", "type": "integer" @@ -6319,9 +4586,12 @@ "$ref": "#/definitions/proto.PlayletChapterData" } }, - "preview": { - "description": "预告地址", - "type": "string" + "relatedRecommendData": { + "description": "相关推荐集合", + "type": "array", + "items": { + "$ref": "#/definitions/proto.CommonData" + } }, "seoInfo": { "description": "页面SEO信息", @@ -6501,22 +4771,59 @@ } } }, - "proto.PlayletSearchResp": { + "proto.PlayletRecommendListResp": { "type": "object", "properties": { - "everyoneWatching": { - "description": "大家都在看,搜索无结果时返回", + "categoryDesc": { + "description": "分类描述", + "type": "string" + }, + "categoryId": { + "description": "分类ID", + "type": "integer" + }, + "categoryName": { + "description": "分类名称", + "type": "string" + }, + "categorySlug": { + "description": "分类slug", + "type": "string" + }, + "list": { + "description": "短剧集合", "type": "array", "items": { "$ref": "#/definitions/proto.CommonData" } }, - "keyword": { - "description": "搜索词", - "type": "string" + "pageNum": { + "description": "页数", + "type": "integer" }, + "pageSize": { + "description": "每页数", + "type": "integer" + }, + "seoInfo": { + "description": "页面SEO信息(分类SEO)", + "allOf": [ + { + "$ref": "#/definitions/proto.SeoInfo" + } + ] + }, + "totalCount": { + "description": "总共数量", + "type": "integer" + } + } + }, + "proto.PlayletSearchResp": { + "type": "object", + "properties": { "list": { - "description": "搜索结果", + "description": "短剧集合", "type": "array", "items": { "$ref": "#/definitions/proto.CommonData" @@ -6536,51 +4843,6 @@ } } }, - "proto.PlayletTagItem": { - "type": "object", - "properties": { - "id": { - "description": "标签ID", - "type": "integer" - }, - "name": { - "description": "标签名称", - "type": "string" - }, - "rank": { - "description": "排序,越大越靠前", - "type": "integer" - }, - "seoInfo": { - "description": "标签对应页面 SEO 信息", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, - "slug": { - "description": "slug", - "type": "string" - }, - "status": { - "description": "上架状态", - "type": "boolean" - } - } - }, - "proto.PlayletTagListResponse": { - "type": "object", - "properties": { - "list": { - "description": "标签列表", - "type": "array", - "items": { - "$ref": "#/definitions/proto.PlayletTagItem" - } - } - } - }, "proto.PlayletTagVideoResp": { "type": "object", "properties": { @@ -6702,145 +4964,16 @@ } } }, - "proto.PlayletTopicDetailResp": { + "proto.PlayletVideoResp": { "type": "object", "properties": { - "covers": { - "description": "顶部封面集合", - "type": "array", - "items": { - "type": "string" - } - }, - "desc": { - "description": "描述", - "type": "string" - }, - "icon": { - "description": "图标", - "type": "string" - }, - "id": { - "description": "专题ID", - "type": "integer" - }, "list": { - "description": "专题短剧列表", + "description": "短剧集合", "type": "array", "items": { "$ref": "#/definitions/proto.CommonData" } }, - "moreTopics": { - "description": "更多专题", - "type": "array", - "items": { - "$ref": "#/definitions/proto.PlayletTopicPageItem" - } - }, - "name": { - "description": "专题名称", - "type": "string" - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "playletCount": { - "description": "上架短剧数量", - "type": "integer" - }, - "rank": { - "description": "排序,越大越靠前", - "type": "integer" - }, - "seoInfo": { - "description": "专题SEO", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, - "slug": { - "description": "slug", - "type": "string" - }, - "totalCount": { - "description": "短剧总数", - "type": "integer" - } - } - }, - "proto.PlayletTopicPageItem": { - "type": "object", - "properties": { - "covers": { - "description": "展示封面集合", - "type": "array", - "items": { - "type": "string" - } - }, - "desc": { - "description": "描述", - "type": "string" - }, - "icon": { - "description": "图标", - "type": "string" - }, - "id": { - "description": "专题ID", - "type": "integer" - }, - "list": { - "description": "专题下短剧集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.CommonData" - } - }, - "name": { - "description": "专题名称", - "type": "string" - }, - "playletCount": { - "description": "上架短剧数量", - "type": "integer" - }, - "rank": { - "description": "排序,越大越靠前", - "type": "integer" - }, - "seoInfo": { - "description": "专题SEO", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, - "slug": { - "description": "slug", - "type": "string" - } - } - }, - "proto.PlayletTopicPageListResp": { - "type": "object", - "properties": { - "list": { - "description": "专题集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.PlayletTopicPageItem" - } - }, "pageNum": { "description": "页数", "type": "integer" @@ -6850,7 +4983,7 @@ "type": "integer" }, "seoInfo": { - "description": "页面SEO信息", + "description": "页面SEO信息:有 themeId 时返回题材 SEO,否则返回短剧列表页 SEO", "allOf": [ { "$ref": "#/definitions/proto.SeoInfo" @@ -7043,10 +5176,6 @@ "proto.TranslationInfo": { "type": "object", "properties": { - "id": { - "description": "ID", - "type": "integer" - }, "isFriendAds": { "description": "是否是友链广告位", "type": "boolean" @@ -7061,272 +5190,6 @@ } } }, - "proto.UserCenterDataResp": { - "type": "object", - "properties": { - "boughtChapterCount": { - "description": "已购剧集数量", - "type": "integer" - }, - "chasingCount": { - "description": "追剧中数量", - "type": "integer" - }, - "collectCount": { - "description": "收藏数量", - "type": "integer" - }, - "watchCount": { - "description": "观看数量", - "type": "integer" - } - } - }, - "proto.VideoAllListItemResp": { - "type": "object", - "properties": { - "addedTime": { - "description": "上架时间", - "type": "string" - }, - "coverImg": { - "description": "封面", - "type": "string" - }, - "creatorId": { - "description": "作者Id", - "type": "integer" - }, - "creatorName": { - "description": "作者名称", - "type": "string" - }, - "id": { - "description": "id", - "type": "integer" - }, - "keyworld": { - "description": "关键字", - "type": "array", - "items": { - "type": "string" - } - }, - "mediaType": { - "description": "类型 1-影集 2-动画", - "type": "integer" - }, - "slug": { - "description": "slug", - "type": "string" - }, - "tags": { - "description": "标签", - "type": "array", - "items": { - "type": "integer" - } - }, - "title": { - "description": "标题", - "type": "string" - }, - "topicIds": { - "description": "题材ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, - "topicNames": { - "description": "题材名称集合", - "type": "array", - "items": { - "type": "string" - } - }, - "topics": { - "description": "题材集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoTopicInfo" - } - }, - "videoCount": { - "description": "视频数量", - "type": "integer" - }, - "videoTime": { - "description": "影片长度", - "type": "integer" - }, - "watchTimes": { - "description": "观看数", - "type": "integer" - } - } - }, - "proto.VideoAllListResp": { - "type": "object", - "properties": { - "advitise": { - "description": "广告", - "allOf": [ - { - "$ref": "#/definitions/proto.AdvitiseData" - } - ] - }, - "list": { - "description": "视频集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoAllListItemResp" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "seoInfo": { - "description": "页面SEO信息", - "allOf": [ - { - "$ref": "#/definitions/proto.SeoInfo" - } - ] - }, - "totalCount": { - "description": "总共数量", - "type": "integer" - } - } - }, - "proto.VideoCollectData": { - "type": "object", - "properties": { - "collectedAt": { - "description": "收藏时间", - "type": "string" - }, - "countCollect": { - "description": "收藏数", - "type": "integer" - }, - "countComment": { - "description": "评论数", - "type": "integer" - }, - "countLike": { - "description": "点赞数", - "type": "integer" - }, - "coverImg": { - "description": "封面", - "type": "string" - }, - "id": { - "description": "视频ID", - "type": "integer" - }, - "isCollect": { - "description": "收藏状态,收藏列表固定返回1-已收藏", - "type": "integer" - }, - "keyworld": { - "description": "关键字", - "type": "array", - "items": { - "type": "string" - } - }, - "slug": { - "description": "slug", - "type": "string" - }, - "tags": { - "description": "标签", - "type": "array", - "items": { - "type": "integer" - } - }, - "title": { - "description": "标题", - "type": "string" - }, - "videoTime": { - "description": "影片长度", - "type": "integer" - }, - "watchTimes": { - "description": "观看数", - "type": "integer" - } - } - }, - "proto.VideoCollectListResp": { - "type": "object", - "properties": { - "list": { - "description": "收藏视频集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoCollectData" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "totalCount": { - "description": "总收藏数量", - "type": "integer" - } - } - }, - "proto.VideoCollectSetReq": { - "type": "object", - "required": [ - "id", - "isCollect" - ], - "properties": { - "id": { - "description": "视频ID", - "type": "integer" - }, - "isCollect": { - "description": "是否收藏,true-收藏,false-取消收藏", - "type": "boolean" - } - } - }, - "proto.VideoCollectSetResp": { - "type": "object", - "properties": { - "countCollect": { - "description": "视频收藏数", - "type": "integer" - }, - "id": { - "description": "视频ID", - "type": "integer" - }, - "isCollect": { - "description": "收藏状态 1-已收藏 2-未收藏", - "type": "integer" - } - } - }, "proto.VideoData": { "type": "object", "properties": { @@ -7368,123 +5231,6 @@ } } }, - "proto.VideoHistoryClearResp": { - "type": "object", - "properties": { - "deletedCount": { - "description": "删除记录数量", - "type": "integer" - } - } - }, - "proto.VideoHistoryData": { - "type": "object", - "properties": { - "countCollect": { - "description": "收藏数", - "type": "integer" - }, - "countComment": { - "description": "评论数", - "type": "integer" - }, - "countLike": { - "description": "点赞数", - "type": "integer" - }, - "coverImg": { - "description": "封面", - "type": "string" - }, - "historyAt": { - "description": "最近观看时间", - "type": "string" - }, - "id": { - "description": "视频ID", - "type": "integer" - }, - "isCollect": { - "description": "收藏状态 1-已收藏 2-未收藏", - "type": "integer" - }, - "keyworld": { - "description": "关键字", - "type": "array", - "items": { - "type": "string" - } - }, - "slug": { - "description": "slug", - "type": "string" - }, - "tags": { - "description": "标签", - "type": "array", - "items": { - "type": "integer" - } - }, - "title": { - "description": "标题", - "type": "string" - }, - "videoTime": { - "description": "影片长度", - "type": "integer" - }, - "watchTimes": { - "description": "观看数", - "type": "integer" - } - } - }, - "proto.VideoHistoryDeleteReq": { - "type": "object", - "required": [ - "videoId" - ], - "properties": { - "videoId": { - "description": "视频ID", - "type": "integer" - } - } - }, - "proto.VideoHistoryDeleteResp": { - "type": "object", - "properties": { - "deletedCount": { - "description": "删除记录数量", - "type": "integer" - } - } - }, - "proto.VideoHistoryListResp": { - "type": "object", - "properties": { - "list": { - "description": "观看历史集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoHistoryData" - } - }, - "pageNum": { - "description": "页数", - "type": "integer" - }, - "pageSize": { - "description": "每页数", - "type": "integer" - }, - "totalCount": { - "description": "总历史数量", - "type": "integer" - } - } - }, "proto.VideoInfoResp": { "type": "object", "properties": { @@ -7492,22 +5238,10 @@ "description": "广告", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, - "countCollect": { - "description": "收藏数", - "type": "integer" - }, - "countComment": { - "description": "评论数", - "type": "integer" - }, - "countLike": { - "description": "点赞数", - "type": "integer" - }, "coverImg": { "description": "封面", "type": "string" @@ -7516,14 +5250,6 @@ "description": "id", "type": "integer" }, - "isCollect": { - "description": "当前用户收藏状态 1-已收藏 2-未收藏", - "type": "integer" - }, - "isLike": { - "description": "当前用户点赞状态 1-已点赞 2-未点赞", - "type": "integer" - }, "keyworld": { "description": "关键字", "type": "array", @@ -7531,6 +5257,13 @@ "type": "string" } }, + "recommendVideos": { + "description": "相关推荐,按当前视频标签匹配并按上架时间倒序返回最多20条", + "type": "array", + "items": { + "$ref": "#/definitions/proto.VideoItemResp" + } + }, "seoInfo": { "description": "页面SEO信息", "allOf": [ @@ -7539,10 +5272,6 @@ } ] }, - "slug": { - "description": "slug", - "type": "string" - }, "tags": { "description": "标签", "type": "array", @@ -7561,20 +5290,6 @@ "description": "标题", "type": "string" }, - "topicIds": { - "description": "题材ID集合", - "type": "array", - "items": { - "type": "integer" - } - }, - "topics": { - "description": "题材集合", - "type": "array", - "items": { - "$ref": "#/definitions/proto.VideoTopicInfo" - } - }, "video": { "description": "视频", "allOf": [ @@ -7619,10 +5334,6 @@ "type": "string" } }, - "slug": { - "description": "slug", - "type": "string" - }, "tags": { "description": "标签", "type": "array", @@ -7644,40 +5355,6 @@ } } }, - "proto.VideoLikeSetReq": { - "type": "object", - "required": [ - "id", - "isLike" - ], - "properties": { - "id": { - "description": "视频ID", - "type": "integer" - }, - "isLike": { - "description": "是否点赞,true-点赞,false-取消点赞", - "type": "boolean" - } - } - }, - "proto.VideoLikeSetResp": { - "type": "object", - "properties": { - "countLike": { - "description": "视频点赞数", - "type": "integer" - }, - "id": { - "description": "视频ID", - "type": "integer" - }, - "isLike": { - "description": "点赞状态 1-已点赞 2-未点赞", - "type": "integer" - } - } - }, "proto.VideoResp": { "type": "object", "properties": { @@ -7702,59 +5379,112 @@ } } }, - "proto.VideoTopicInfo": { + "proxy.AdvitiseData": { "type": "object", "properties": { - "desc": { - "description": "描述", - "type": "string" - }, - "id": { - "description": "Id", - "type": "integer" - }, - "image": { - "description": "背景", - "type": "string" - }, - "name": { - "description": "专题名称", - "type": "string" - }, - "seoInfo": { - "description": "Seo相关信息", - "allOf": [ - { - "$ref": "#/definitions/pubdef.SeoValue" - } - ] - }, - "slug": { - "description": "slug", - "type": "string" - }, - "title": { - "description": "APP显示", - "type": "string" - }, - "videoCategoryId": { - "description": "视频分类id", - "type": "integer" - }, - "works": { - "description": "作品数", - "type": "integer" - } - } - }, - "proto.VideoTopicListResp": { - "type": "object", - "properties": { - "list": { - "description": "题材集合", + "appInfoAList": { + "description": "应用管理广告A", "type": "array", "items": { - "$ref": "#/definitions/proto.VideoTopicInfo" + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "appInfoBList": { + "description": "应用管理广告B", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "dialogList": { + "description": "弹窗广告", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "forcedJumpList": { + "description": "强制跳转广告", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "friendList": { + "description": "友链", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "homeList": { + "description": "首页列表", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "hotAppList": { + "description": "热门应用", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "mustAppList": { + "description": "必备精品", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "newAppList": { + "description": "最新上架", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "nineGridList": { + "description": "9宫格", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "stopList": { + "description": "暂停广告", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "titleAppList": { + "description": "标题广告(APP名称)", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "videoDownList": { + "description": "帖子详情(下)", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "videoList": { + "description": "视频列表", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "videoTopList": { + "description": "帖子详情(上)", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" } } } @@ -8594,10 +6324,6 @@ "description": "支付金额(分)", "type": "integer" }, - "baseCoin": { - "description": "基础金币数(快照)", - "type": "integer" - }, "cardId": { "description": "── VIP 专用 ──", "type": "integer" @@ -8626,10 +6352,6 @@ "description": "完成时间", "type": "string" }, - "giftCoin": { - "description": "赠送金币数(快照)", - "type": "integer" - }, "id": { "description": "唯一ID", "type": "integer" diff --git a/app/docs/swagger.yaml b/app/docs/swagger.yaml index 1d996e9..c7c4789 100644 --- a/app/docs/swagger.yaml +++ b/app/docs/swagger.yaml @@ -1,64 +1,5 @@ basePath: / definitions: - authapi.loginReq: - properties: - account: - description: 账号或邮箱 - type: string - channel: - description: 渠道码(可选,用户无商区码时写入) - type: string - devID: - description: 设备唯一标示(可选) - type: string - password: - description: 明文密码 - type: string - required: - - account - - password - type: object - authapi.registerReq: - properties: - accountNo: - description: 账号 - type: string - agentInviteCode: - description: 邀请人的邀请码(可选) - type: string - channel: - description: 渠道码(可选,用户无商区码时写入) - type: string - devID: - description: 设备唯一标示(可选) - type: string - email: - description: 邮箱 - type: string - password: - description: 明文密码 - type: string - required: - - accountNo - - email - - password - type: object - authapi.resetPasswordReq: - properties: - accountNo: - description: 账号 - type: string - email: - description: 邮箱 - type: string - newPassword: - description: 新密码 - type: string - required: - - accountNo - - email - - newPassword - type: object authapi.updateProfileReq: properties: avatar: @@ -67,34 +8,13 @@ definitions: introduction: description: 简介(可选) type: string - newPassword: - description: 新密码明文(设置或修改密码时必填) - type: string nickName: description: 新昵称(可选) type: string - oldPassword: - description: 旧密码明文(已设置密码时修改必填) - type: string privacyMode: description: 隐私模式:true-开启,false-关闭(可选) type: boolean type: object - authser.GuestLoginReq: - properties: - channel: - description: 渠道码(可选,用户无商区码时写入 DistrictCode) - type: string - devID: - description: 设备唯一标示(必填) - type: string - deviceId: - description: 备用设备ID(可选,写入 DevV2) - type: string - mac: - description: 设备 Mac(可选) - type: string - type: object authser.LoginResp: properties: accountNo: @@ -107,18 +27,12 @@ definitions: type: string email: type: string - hasPassword: - description: 是否已设置密码 - type: boolean introduction: description: 简介 type: string inviteCode: description: 邀请码 type: string - isNewUser: - description: 本次是否新建游客 - type: boolean isRegister: description: 是否已注册 type: boolean @@ -145,8 +59,6 @@ definitions: type: string status: $ref: '#/definitions/pubdef.UserStatus' - token: - type: string type: allOf: - $ref: '#/definitions/pubdef.UserType' @@ -197,11 +109,9 @@ definitions: - 3 - 4 - 5 - - 6 type: integer x-enum-comments: TranTypeAdminAdjust: 管理员手动调整 - TranTypeCoinGift: 金币充值赠送 TranTypeCoinRecharge: 金币充值(购买金币) TranTypeDarkAlley: 历史遗留交易类型(已下线) TranTypeVideoUnlock: 视频解锁 @@ -212,90 +122,6 @@ definitions: - TranTypeDarkAlley - TranTypeVideoUnlock - TranTypeAdminAdjust - - TranTypeCoinGift - proto.AdvitiseData: - properties: - AList: - description: 固定12广告位 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - BList: - description: 固定13广告位 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - bottomBanner: - description: 底部banner - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - detailTopList: - description: 详情页顶部广告 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - detailbannerList: - description: 详情banner - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - dialogList: - description: 弹窗广告 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - downList: - description: 底部广告 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - floatingList: - description: 悬浮小方块 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - friendList: - description: 友链 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - homeList: - description: 首页列表 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - launchScreenList: - description: 启动页广告 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - nineGridList: - description: 9宫格 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - pauseyList: - description: 暂停广告 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - playList: - description: 播放强制跳转 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - titleList: - description: 标题广告 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - videoInfoList: - description: 视频详情 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - type: object proto.AnnouncementItem: properties: content: @@ -368,7 +194,7 @@ definitions: properties: advitise: allOf: - - $ref: '#/definitions/proto.AdvitiseData' + - $ref: '#/definitions/proxy.AdvitiseData' description: 广告 category: allOf: @@ -493,7 +319,7 @@ definitions: description: 对象ID type: integer objectType: - description: 对象类型 10-短剧 11-短剧剧集 20-视频 + description: 对象类型 10-短剧 11-短剧剧集 type: integer parentsId: description: 父评论ID,一级评论为0 @@ -544,10 +370,10 @@ definitions: proto.CommentSendReq: properties: objectId: - description: 对象ID,短剧评论传短剧ID,剧集评论传剧集ID,视频评论传视频ID + description: 对象ID,短剧评论传短剧ID,剧集评论传剧集ID type: integer objectType: - description: 对象类型 10-短剧 11-短剧剧集 20-视频 + description: 对象类型 10-短剧 11-短剧剧集 type: integer parentsId: description: 一级评论ID,0-发布一级评论,大于0-发布二级评论 @@ -567,11 +393,6 @@ definitions: banner: description: banner图,已拼接图片域名 type: string - categoryIds: - description: 分类ID集合 - items: - type: integer - type: array countBrowse: description: 观看量 type: integer @@ -582,7 +403,7 @@ definitions: description: 点赞数,包含真实点赞数和后台虚拟点赞数 type: integer cover: - description: 竖版封面,已拼接图片域名 + description: 封面,已拼接图片域名 type: string createdAt: description: 创建时间 @@ -596,9 +417,6 @@ definitions: heatValue: description: 热度值 type: integer - horizontalCover: - description: 横版封面,已拼接图片域名 - type: string id: description: 短剧id type: integer @@ -626,9 +444,6 @@ definitions: playName: description: 剧名 type: string - preview: - description: 预告地址 - type: string seoInfo: allOf: - $ref: '#/definitions/pubdef.SeoValue' @@ -770,9 +585,6 @@ definitions: qq: description: qq群 type: string - reportSdkConfig: - description: 数据上报SDK域名配置 - type: string telegram: description: 商务tg type: string @@ -824,7 +636,7 @@ definitions: properties: advitise: allOf: - - $ref: '#/definitions/proto.AdvitiseData' + - $ref: '#/definitions/proxy.AdvitiseData' description: 广告配置 config: allOf: @@ -839,9 +651,6 @@ definitions: allOf: - $ref: '#/definitions/proto.NewAddressInfo' description: 最新地址信息 - reportSdkConfig: - description: 数据上报SDK域名配置 - type: string seoInfo: allOf: - $ref: '#/definitions/proto.SeoInfo' @@ -970,132 +779,61 @@ definitions: description: 总数量 type: integer type: object - proto.HomeConfigData: + proto.HomeBannerData: properties: - createdAt: - description: 创建时间 - type: string - desc: - description: 描述 - type: string id: description: ID type: integer - list: - description: 配置对应短剧集合,type=1时返回 - items: - $ref: '#/definitions/proto.CommonData' - type: array + image: + description: 图片,已拼接图片域名 + type: string name: description: 名称 type: string rank: - description: 排序,越大越靠前 - type: integer - sortType: - description: 排序字段 1-推荐 2-热播 3-最近更新 4-新片预告 5-分类 + description: 排序 type: integer status: - description: 上下架状态 true-上架 false-下架 + description: 状态 true-启用 false-停用 type: boolean - themeList: - description: 题材集合,type=3时返回 - items: - $ref: '#/definitions/proto.HomeConfigThemeData' - type: array - type: - description: 类型 1-短剧 2-视频 3-题材 - type: integer - updatedAt: - description: 修改时间 + url: + description: URL + type: string + verticalImage: + description: 竖版图片,已拼接图片域名 type: string - videoList: - description: 视频集合,type=2时返回 - items: - $ref: '#/definitions/proto.VideoItemResp' - type: array type: object - proto.HomeConfigDetailListResp: + proto.HomeCategoryData: properties: - advitise: - allOf: - - $ref: '#/definitions/proto.AdvitiseData' - description: 广告 desc: description: 描述 type: string - homeConfigId: - description: 首页配置ID - type: integer - list: - description: 短剧集合,type=1时返回 - items: - $ref: '#/definitions/proto.CommonData' - type: array - name: - description: 名称 - type: string - pageNum: - description: 页数 - type: integer - pageSize: - description: 每页数 - type: integer - sortType: - description: 排序字段 1-推荐 2-热播 3-最近更新 4-新片预告 5-分类 - type: integer - themeList: - description: 题材集合,type=3时返回 - items: - $ref: '#/definitions/proto.HomeConfigThemeData' - type: array - totalCount: - description: 总共数量 - type: integer - type: - description: 类型 1-短剧 2-视频 3-题材 - type: integer - videoList: - description: 视频集合,type=2时返回 - items: - $ref: '#/definitions/proto.VideoItemResp' - type: array - type: object - proto.HomeConfigThemeData: - properties: icon: - description: 题材图标,已拼接图片域名 + description: 分类图标 type: string id: - description: 题材ID + description: 分类ID type: integer list: - description: 题材下短剧集合 + description: 分类下短剧集合,最多16条 items: $ref: '#/definitions/proto.CommonData' type: array name: - description: 题材名称 + description: 分类名称 type: string - playletCount: - description: 绑定短剧数量 - type: integer rank: - description: 排序,越大越靠前 + description: 分类排序,越大越靠前 type: integer - seoInfo: - allOf: - - $ref: '#/definitions/proto.SeoInfo' - description: 题材对应页面SEO信息 slug: - description: 题材slug + description: slug type: string type: object proto.HomeHtmlData: properties: advitise: allOf: - - $ref: '#/definitions/proto.AdvitiseData' + - $ref: '#/definitions/proxy.AdvitiseData' description: 广告 bottonTranslations: allOf: @@ -1122,30 +860,57 @@ definitions: type: object proto.HomePlayletResponse: properties: - advitise: - allOf: - - $ref: '#/definitions/proto.AdvitiseData' - description: 广告 announcements: description: 启用中的公告,来自独立缓存 items: $ref: '#/definitions/proto.AnnouncementItem' type: array homeBannerData: - description: 首页banner短剧信息列表 + description: 首页banner信息列表 + items: + $ref: '#/definitions/proto.HomeBannerData' + type: array + homeCategoryData: + description: 启用分类短剧集合,按分类排序,每个分类最多16条 + items: + $ref: '#/definitions/proto.HomeCategoryData' + type: array + homeRecommendThemes: + description: 推荐主题,最多4条 + items: + $ref: '#/definitions/proto.HomeRecommendTheme' + type: array + homeTodayUpdateData: + description: 最近更新集合,最多16条 items: $ref: '#/definitions/proto.CommonData' type: array - homeConfigData: - description: 首页配置集合 - items: - $ref: '#/definitions/proto.HomeConfigData' - type: array seoInfo: allOf: - $ref: '#/definitions/proto.SeoInfo' description: 页面SEO信息(短剧列表页SEO) type: object + proto.HomeRecommendTheme: + properties: + icon: + description: 题材图标,已拼接图片域名 + type: string + id: + description: 题材ID + type: integer + name: + description: 题材名称 + type: string + playletCount: + description: 该题材绑定的上架短剧数量 + type: integer + rank: + description: 排序,越大越靠前 + type: integer + slug: + description: slug + type: string + type: object proto.HotSearchItem: properties: addedTime: @@ -1227,198 +992,6 @@ definitions: description: 支付宝 / 微信 / 银联 type: string type: object - proto.PlayletAllListResp: - properties: - advitise: - allOf: - - $ref: '#/definitions/proto.AdvitiseData' - description: 广告 - list: - description: 短剧集合 - items: - $ref: '#/definitions/proto.CommonData' - type: array - pageNum: - description: 页数 - type: integer - pageSize: - description: 每页数 - type: integer - seoInfo: - allOf: - - $ref: '#/definitions/proto.SeoInfo' - description: 页面SEO信息 - totalCount: - description: 总共数量 - type: integer - type: object - proto.PlayletBoughtData: - properties: - anchor: - description: 作者/演员 - type: string - banner: - description: banner图,已拼接图片域名 - type: string - boughtAt: - description: 最近购买时间 - type: string - boughtChapterCount: - description: 已购剧集数量 - type: integer - categoryIds: - description: 分类ID集合 - items: - type: integer - type: array - costCoins: - description: 已消耗金币 - type: integer - countBrowse: - description: 观看量 - type: integer - countCollect: - description: 收藏数 - type: integer - countLike: - description: 点赞数,包含真实点赞数和后台虚拟点赞数 - type: integer - cover: - description: 竖版封面,已拼接图片域名 - type: string - createdAt: - description: 创建时间 - type: string - desc: - description: 简介 - type: string - description: - description: SEO Description - type: string - heatValue: - description: 热度值 - type: integer - horizontalCover: - description: 横版封面,已拼接图片域名 - type: string - id: - description: 短剧id - type: integer - isFeatured: - description: 是否爆剧(true-是,false-否) - type: boolean - isFinished: - description: 当前用户是否已看完 - type: boolean - isNew: - description: 是否上新,本周内上架为true - type: boolean - isRecommend: - description: 是否推荐 true-推荐,false-不推荐 - type: boolean - lastChapterId: - description: 最近观看剧集ID,无观看进度时为0 - type: integer - lastEpisode: - description: 最近观看集数,无观看进度时为0 - type: integer - mediaCreatedAt: - description: 媒资中心创建时间 - type: string - mediaUpdatedAt: - description: 媒资中心更新时间 - type: string - onlineAt: - description: 上架时间 - type: string - operateType: - description: 运营类型 1-短剧 2-漫剧 - type: integer - playName: - description: 剧名 - type: string - preview: - description: 预告地址 - type: string - seoInfo: - allOf: - - $ref: '#/definitions/pubdef.SeoValue' - description: Seo相关信息 - showOnBanner: - description: 是否显示在首页banner - type: boolean - slug: - description: slug - type: string - status: - description: '状态: 0下架 1上架' - type: integer - tagIds: - description: 标签ID集合 - items: - type: integer - type: array - tagNames: - description: 标签名称集合 - items: - type: string - type: array - tagSlugs: - description: 标签slug集合 - items: - type: string - type: array - themeIds: - description: 题材ID集合 - items: - type: integer - type: array - themeNames: - description: 题材名称集合 - items: - type: string - type: array - themeSlugs: - description: 题材slug集合 - items: - type: string - type: array - title: - description: 标题 - type: string - totalEpisode: - description: 总集数 - type: integer - unwatchedCount: - description: 当前用户未看集数,按totalEpisode-watchedCount计算 - type: integer - updateStatus: - description: 更新状态 1-连载中 2-已完结 - type: integer - updatedAt: - description: 修改时间 - type: string - watchedCount: - description: 当前用户已看集数 - type: integer - type: object - proto.PlayletBoughtListResp: - properties: - list: - description: 已购短剧集合 - items: - $ref: '#/definitions/proto.PlayletBoughtData' - type: array - pageNum: - description: 页数 - type: integer - pageSize: - description: 每页数 - type: integer - totalCount: - description: 总已购短剧数量 - type: integer - type: object proto.PlayletChapterCollectData: properties: chapterId: @@ -1914,23 +1487,6 @@ definitions: description: 短剧ID type: integer type: object - proto.PlayletGuessLikeListResp: - properties: - list: - description: 猜你喜欢短剧集合 - items: - $ref: '#/definitions/proto.CommonData' - type: array - pageNum: - description: 页数 - type: integer - pageSize: - description: 每页数 - type: integer - totalCount: - description: 总共数量 - type: integer - type: object proto.PlayletHistoryClearResp: properties: deletedCount: @@ -1945,11 +1501,6 @@ definitions: banner: description: banner图,已拼接图片域名 type: string - categoryIds: - description: 分类ID集合 - items: - type: integer - type: array countBrowse: description: 观看量 type: integer @@ -1960,7 +1511,7 @@ definitions: description: 点赞数,包含真实点赞数和后台虚拟点赞数 type: integer cover: - description: 竖版封面,已拼接图片域名 + description: 封面,已拼接图片域名 type: string createdAt: description: 创建时间 @@ -1977,9 +1528,6 @@ definitions: historyAt: description: 最近观看时间 type: string - horizontalCover: - description: 横版封面,已拼接图片域名 - type: string id: description: 短剧id type: integer @@ -2016,9 +1564,6 @@ definitions: playName: description: 剧名 type: string - preview: - description: 预告地址 - type: string seoInfo: allOf: - $ref: '#/definitions/pubdef.SeoValue' @@ -2081,20 +1626,6 @@ definitions: description: 当前用户已看集数 type: integer type: object - proto.PlayletHistoryDeleteReq: - properties: - playletId: - description: 短剧ID - type: integer - required: - - playletId - type: object - proto.PlayletHistoryDeleteResp: - properties: - deletedCount: - description: 删除记录数量 - type: integer - type: object proto.PlayletHistoryListResp: properties: list: @@ -2125,30 +1656,6 @@ definitions: $ref: '#/definitions/proto.PlayletHotSearchItem' type: array type: object - proto.PlayletHotRankListResp: - properties: - list: - description: 短剧集合 - items: - $ref: '#/definitions/proto.CommonData' - type: array - pageNum: - description: 页数 - type: integer - pageSize: - description: 每页数 - type: integer - rankType: - description: 榜单类型 1-热播榜 2-新剧榜 3-追剧榜 - type: integer - seoInfo: - allOf: - - $ref: '#/definitions/proto.SeoInfo' - description: 页面SEO信息 - totalCount: - description: 总共数量 - type: integer - type: object proto.PlayletHotSearchItem: properties: count: @@ -2160,21 +1667,12 @@ definitions: type: object proto.PlayletInfoResp: properties: - advitise: - allOf: - - $ref: '#/definitions/proto.AdvitiseData' - description: 广告 anchor: description: 作者/演员 type: string banner: description: banner图,已拼接图片域名 type: string - categoryIds: - description: 分类ID集合 - items: - type: integer - type: array countBrowse: description: 观看量 type: integer @@ -2185,7 +1683,7 @@ definitions: description: 点赞数,包含真实点赞数和后台虚拟点赞数 type: integer cover: - description: 竖版封面,已拼接图片域名 + description: 封面,已拼接图片域名 type: string createdAt: description: 创建时间 @@ -2199,9 +1697,6 @@ definitions: heatValue: description: 热度值 type: integer - horizontalCover: - description: 横版封面,已拼接图片域名 - type: string id: description: 短剧id type: integer @@ -2240,9 +1735,11 @@ definitions: items: $ref: '#/definitions/proto.PlayletChapterData' type: array - preview: - description: 预告地址 - type: string + relatedRecommendData: + description: 相关推荐集合 + items: + $ref: '#/definitions/proto.CommonData' + type: array seoInfo: allOf: - $ref: '#/definitions/proto.SeoInfo' @@ -2367,18 +1864,43 @@ definitions: description: 总共数量 type: integer type: object - proto.PlayletSearchResp: + proto.PlayletRecommendListResp: properties: - everyoneWatching: - description: 大家都在看,搜索无结果时返回 + categoryDesc: + description: 分类描述 + type: string + categoryId: + description: 分类ID + type: integer + categoryName: + description: 分类名称 + type: string + categorySlug: + description: 分类slug + type: string + list: + description: 短剧集合 items: $ref: '#/definitions/proto.CommonData' type: array - keyword: - description: 搜索词 - type: string + pageNum: + description: 页数 + type: integer + pageSize: + description: 每页数 + type: integer + seoInfo: + allOf: + - $ref: '#/definitions/proto.SeoInfo' + description: 页面SEO信息(分类SEO) + totalCount: + description: 总共数量 + type: integer + type: object + proto.PlayletSearchResp: + properties: list: - description: 搜索结果 + description: 短剧集合 items: $ref: '#/definitions/proto.CommonData' type: array @@ -2392,36 +1914,6 @@ definitions: description: 总共数量 type: integer type: object - proto.PlayletTagItem: - properties: - id: - description: 标签ID - type: integer - name: - description: 标签名称 - type: string - rank: - description: 排序,越大越靠前 - type: integer - seoInfo: - allOf: - - $ref: '#/definitions/proto.SeoInfo' - description: 标签对应页面 SEO 信息 - slug: - description: slug - type: string - status: - description: 上架状态 - type: boolean - type: object - proto.PlayletTagListResponse: - properties: - list: - description: 标签列表 - items: - $ref: '#/definitions/proto.PlayletTagItem' - type: array - type: object proto.PlayletTagVideoResp: properties: list: @@ -2503,103 +1995,13 @@ definitions: description: 总共数量 type: integer type: object - proto.PlayletTopicDetailResp: + proto.PlayletVideoResp: properties: - covers: - description: 顶部封面集合 - items: - type: string - type: array - desc: - description: 描述 - type: string - icon: - description: 图标 - type: string - id: - description: 专题ID - type: integer list: - description: 专题短剧列表 + description: 短剧集合 items: $ref: '#/definitions/proto.CommonData' type: array - moreTopics: - description: 更多专题 - items: - $ref: '#/definitions/proto.PlayletTopicPageItem' - type: array - name: - description: 专题名称 - type: string - pageNum: - description: 页数 - type: integer - pageSize: - description: 每页数 - type: integer - playletCount: - description: 上架短剧数量 - type: integer - rank: - description: 排序,越大越靠前 - type: integer - seoInfo: - allOf: - - $ref: '#/definitions/proto.SeoInfo' - description: 专题SEO - slug: - description: slug - type: string - totalCount: - description: 短剧总数 - type: integer - type: object - proto.PlayletTopicPageItem: - properties: - covers: - description: 展示封面集合 - items: - type: string - type: array - desc: - description: 描述 - type: string - icon: - description: 图标 - type: string - id: - description: 专题ID - type: integer - list: - description: 专题下短剧集合 - items: - $ref: '#/definitions/proto.CommonData' - type: array - name: - description: 专题名称 - type: string - playletCount: - description: 上架短剧数量 - type: integer - rank: - description: 排序,越大越靠前 - type: integer - seoInfo: - allOf: - - $ref: '#/definitions/proto.SeoInfo' - description: 专题SEO - slug: - description: slug - type: string - type: object - proto.PlayletTopicPageListResp: - properties: - list: - description: 专题集合 - items: - $ref: '#/definitions/proto.PlayletTopicPageItem' - type: array pageNum: description: 页数 type: integer @@ -2609,7 +2011,7 @@ definitions: seoInfo: allOf: - $ref: '#/definitions/proto.SeoInfo' - description: 页面SEO信息 + description: 页面SEO信息:有 themeId 时返回题材 SEO,否则返回短剧列表页 SEO totalCount: description: 总共数量 type: integer @@ -2737,9 +2139,6 @@ definitions: type: object proto.TranslationInfo: properties: - id: - description: ID - type: integer isFriendAds: description: 是否是友链广告位 type: boolean @@ -2750,194 +2149,6 @@ definitions: description: URl路径 type: string type: object - proto.UserCenterDataResp: - properties: - boughtChapterCount: - description: 已购剧集数量 - type: integer - chasingCount: - description: 追剧中数量 - type: integer - collectCount: - description: 收藏数量 - type: integer - watchCount: - description: 观看数量 - type: integer - type: object - proto.VideoAllListItemResp: - properties: - addedTime: - description: 上架时间 - type: string - coverImg: - description: 封面 - type: string - creatorId: - description: 作者Id - type: integer - creatorName: - description: 作者名称 - type: string - id: - description: id - type: integer - keyworld: - description: 关键字 - items: - type: string - type: array - mediaType: - description: 类型 1-影集 2-动画 - type: integer - slug: - description: slug - type: string - tags: - description: 标签 - items: - type: integer - type: array - title: - description: 标题 - type: string - topicIds: - description: 题材ID集合 - items: - type: integer - type: array - topicNames: - description: 题材名称集合 - items: - type: string - type: array - topics: - description: 题材集合 - items: - $ref: '#/definitions/proto.VideoTopicInfo' - type: array - videoCount: - description: 视频数量 - type: integer - videoTime: - description: 影片长度 - type: integer - watchTimes: - description: 观看数 - type: integer - type: object - proto.VideoAllListResp: - properties: - advitise: - allOf: - - $ref: '#/definitions/proto.AdvitiseData' - description: 广告 - list: - description: 视频集合 - items: - $ref: '#/definitions/proto.VideoAllListItemResp' - type: array - pageNum: - description: 页数 - type: integer - pageSize: - description: 每页数 - type: integer - seoInfo: - allOf: - - $ref: '#/definitions/proto.SeoInfo' - description: 页面SEO信息 - totalCount: - description: 总共数量 - type: integer - type: object - proto.VideoCollectData: - properties: - collectedAt: - description: 收藏时间 - type: string - countCollect: - description: 收藏数 - type: integer - countComment: - description: 评论数 - type: integer - countLike: - description: 点赞数 - type: integer - coverImg: - description: 封面 - type: string - id: - description: 视频ID - type: integer - isCollect: - description: 收藏状态,收藏列表固定返回1-已收藏 - type: integer - keyworld: - description: 关键字 - items: - type: string - type: array - slug: - description: slug - type: string - tags: - description: 标签 - items: - type: integer - type: array - title: - description: 标题 - type: string - videoTime: - description: 影片长度 - type: integer - watchTimes: - description: 观看数 - type: integer - type: object - proto.VideoCollectListResp: - properties: - list: - description: 收藏视频集合 - items: - $ref: '#/definitions/proto.VideoCollectData' - type: array - pageNum: - description: 页数 - type: integer - pageSize: - description: 每页数 - type: integer - totalCount: - description: 总收藏数量 - type: integer - type: object - proto.VideoCollectSetReq: - properties: - id: - description: 视频ID - type: integer - isCollect: - description: 是否收藏,true-收藏,false-取消收藏 - type: boolean - required: - - id - - isCollect - type: object - proto.VideoCollectSetResp: - properties: - countCollect: - description: 视频收藏数 - type: integer - id: - description: 视频ID - type: integer - isCollect: - description: 收藏状态 1-已收藏 2-未收藏 - type: integer - type: object proto.VideoData: properties: cover: @@ -2968,128 +2179,32 @@ definitions: description: 分辨率宽(视频才会存在) type: integer type: object - proto.VideoHistoryClearResp: - properties: - deletedCount: - description: 删除记录数量 - type: integer - type: object - proto.VideoHistoryData: - properties: - countCollect: - description: 收藏数 - type: integer - countComment: - description: 评论数 - type: integer - countLike: - description: 点赞数 - type: integer - coverImg: - description: 封面 - type: string - historyAt: - description: 最近观看时间 - type: string - id: - description: 视频ID - type: integer - isCollect: - description: 收藏状态 1-已收藏 2-未收藏 - type: integer - keyworld: - description: 关键字 - items: - type: string - type: array - slug: - description: slug - type: string - tags: - description: 标签 - items: - type: integer - type: array - title: - description: 标题 - type: string - videoTime: - description: 影片长度 - type: integer - watchTimes: - description: 观看数 - type: integer - type: object - proto.VideoHistoryDeleteReq: - properties: - videoId: - description: 视频ID - type: integer - required: - - videoId - type: object - proto.VideoHistoryDeleteResp: - properties: - deletedCount: - description: 删除记录数量 - type: integer - type: object - proto.VideoHistoryListResp: - properties: - list: - description: 观看历史集合 - items: - $ref: '#/definitions/proto.VideoHistoryData' - type: array - pageNum: - description: 页数 - type: integer - pageSize: - description: 每页数 - type: integer - totalCount: - description: 总历史数量 - type: integer - type: object proto.VideoInfoResp: properties: advitise: allOf: - - $ref: '#/definitions/proto.AdvitiseData' + - $ref: '#/definitions/proxy.AdvitiseData' description: 广告 - countCollect: - description: 收藏数 - type: integer - countComment: - description: 评论数 - type: integer - countLike: - description: 点赞数 - type: integer coverImg: description: 封面 type: string id: description: id type: integer - isCollect: - description: 当前用户收藏状态 1-已收藏 2-未收藏 - type: integer - isLike: - description: 当前用户点赞状态 1-已点赞 2-未点赞 - type: integer keyworld: description: 关键字 items: type: string type: array + recommendVideos: + description: 相关推荐,按当前视频标签匹配并按上架时间倒序返回最多20条 + items: + $ref: '#/definitions/proto.VideoItemResp' + type: array seoInfo: allOf: - $ref: '#/definitions/proto.SeoInfo' description: 页面SEO信息 - slug: - description: slug - type: string tags: description: 标签 items: @@ -3103,16 +2218,6 @@ definitions: title: description: 标题 type: string - topicIds: - description: 题材ID集合 - items: - type: integer - type: array - topics: - description: 题材集合 - items: - $ref: '#/definitions/proto.VideoTopicInfo' - type: array video: allOf: - $ref: '#/definitions/proto.VideoData' @@ -3143,9 +2248,6 @@ definitions: items: type: string type: array - slug: - description: slug - type: string tags: description: 标签 items: @@ -3161,30 +2263,6 @@ definitions: description: 观看数(真假之和) type: integer type: object - proto.VideoLikeSetReq: - properties: - id: - description: 视频ID - type: integer - isLike: - description: 是否点赞,true-点赞,false-取消点赞 - type: boolean - required: - - id - - isLike - type: object - proto.VideoLikeSetResp: - properties: - countLike: - description: 视频点赞数 - type: integer - id: - description: 视频ID - type: integer - isLike: - description: 点赞状态 1-已点赞 2-未点赞 - type: integer - type: object proto.VideoResp: properties: list: @@ -3202,43 +2280,82 @@ definitions: description: 总共数量 type: integer type: object - proto.VideoTopicInfo: + proxy.AdvitiseData: properties: - desc: - description: 描述 - type: string - id: - description: Id - type: integer - image: - description: 背景 - type: string - name: - description: 专题名称 - type: string - seoInfo: - allOf: - - $ref: '#/definitions/pubdef.SeoValue' - description: Seo相关信息 - slug: - description: slug - type: string - title: - description: APP显示 - type: string - videoCategoryId: - description: 视频分类id - type: integer - works: - description: 作品数 - type: integer - type: object - proto.VideoTopicListResp: - properties: - list: - description: 题材集合 + appInfoAList: + description: 应用管理广告A items: - $ref: '#/definitions/proto.VideoTopicInfo' + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + appInfoBList: + description: 应用管理广告B + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + dialogList: + description: 弹窗广告 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + forcedJumpList: + description: 强制跳转广告 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + friendList: + description: 友链 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + homeList: + description: 首页列表 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + hotAppList: + description: 热门应用 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + mustAppList: + description: 必备精品 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + newAppList: + description: 最新上架 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + nineGridList: + description: 9宫格 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + stopList: + description: 暂停广告 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + titleAppList: + description: 标题广告(APP名称) + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + videoDownList: + description: 帖子详情(下) + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + videoList: + description: 视频列表 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + videoTopList: + description: 帖子详情(上) + items: + $ref: '#/definitions/proxy.AdvitiseInfo' type: array type: object proxy.AdvitiseInfo: @@ -3835,9 +2952,6 @@ definitions: amount: description: 支付金额(分) type: integer - baseCoin: - description: 基础金币数(快照) - type: integer cardId: description: ── VIP 专用 ── type: integer @@ -3859,9 +2973,6 @@ definitions: finishedAt: description: 完成时间 type: string - giftCoin: - description: 赠送金币数(快照) - type: integer id: description: 唯一ID type: integer @@ -3943,7 +3054,7 @@ paths: - 应用列表 /api/app/auth/getInfo: get: - description: 通过 token 获取最新用户信息,包含金币余额、VIP状态等 + description: 按请求头 X-User-Agent 中的 devID 识别用户,返回最新用户信息,包含金币余额、VIP状态等 produces: - application/json responses: @@ -3958,64 +3069,12 @@ paths: summary: 获取当前用户信息 tags: - 用户认证 - /api/app/auth/guest: - post: - consumes: - - application/json - description: 按设备ID创建或找回游客账号;请求头可带 Authorization 复用已有游客会话。需传 X-User-Agent - parameters: - - description: 游客登录参数 - in: body - name: param - required: true - schema: - $ref: '#/definitions/authser.GuestLoginReq' - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/authser.LoginResp' - "400": - description: 失败 - schema: - type: string - summary: 游客登录 - tags: - - 用户认证 - /api/app/auth/login: - post: - consumes: - - application/json - description: 账号或邮箱均可作为登录凭证 - parameters: - - description: 登录参数 - in: body - name: param - required: true - schema: - $ref: '#/definitions/authapi.loginReq' - produces: - - application/json - responses: - "200": - description: 登录成功,返回 token 及用户基本信息 - schema: - $ref: '#/definitions/authser.LoginResp' - "400": - description: 失败 - schema: - type: string - summary: 登录 - tags: - - 用户认证 /api/app/auth/profile: post: consumes: - application/json - description: 用户信息通过 token 获取,无需传账号;nickName、avatar、introduction、oldPassword+newPassword - 均为可选,至少提供一项。未设置密码时传 newPassword 可设置密码,已设置密码时修改需传 oldPassword+newPassword + description: 按请求头 X-User-Agent 中的 devID 识别用户;nickName、avatar、introduction、privacyMode + 均为可选,至少提供一项。 parameters: - description: 修改资料参数 in: body @@ -4034,59 +3093,7 @@ paths: description: 失败 schema: type: string - summary: 修改用户资料(头像 / 简介 / 密码,可任意组合) - tags: - - 用户认证 - /api/app/auth/register: - post: - consumes: - - application/json - description: 传入账号、邮箱、明文密码。请求头带游客 Authorization 时升级该游客为普通用户,否则新建用户 - parameters: - - description: 注册参数 - in: body - name: param - required: true - schema: - $ref: '#/definitions/authapi.registerReq' - produces: - - application/json - responses: - "200": - description: 注册成功,返回 token 及用户基本信息 - schema: - $ref: '#/definitions/authser.LoginResp' - "400": - description: 失败 - schema: - type: string - summary: 注册 - tags: - - 用户认证 - /api/app/auth/resetPassword: - post: - consumes: - - application/json - description: 通过账号和邮箱双重校验后重置密码,两者必须同时匹配同一用户 - parameters: - - description: 找回密码参数 - in: body - name: param - required: true - schema: - $ref: '#/definitions/authapi.resetPasswordReq' - produces: - - application/json - responses: - "200": - description: 成功 - schema: - type: string - "400": - description: 失败 - schema: - type: string - summary: 找回密码 + summary: 修改用户资料(昵称 / 头像 / 简介 / 隐私模式,可任意组合) tags: - 用户认证 /api/app/coin/buy: @@ -4136,29 +3143,9 @@ paths: summary: 查询金币购买记录 tags: - 金币 - /api/app/coin/trans/export: - get: - description: 导出当前登录用户的金币收入、支出流水CSV;type=0全部 1充值 2消费 3奖励 - parameters: - - description: 类型:0全部 1充值 2消费 3奖励 - in: query - name: type - type: integer - produces: - - text/csv - responses: - "200": - description: CSV文件 - schema: - type: file - security: - - ApiKeyAuth: [] - summary: 导出金币余额明细 -- by 王鸣 - tags: - - 金币 /api/app/coin/trans/list: get: - description: 返回当前登录用户的金币收入、支出流水,按交易时间倒序;type=0全部 1充值 2消费 3奖励 + description: 返回当前登录用户的金币收入、支出流水,按交易时间倒序 parameters: - description: 页码(默认1) in: query @@ -4168,10 +3155,6 @@ paths: in: query name: pageSize type: integer - - description: 类型:0全部 1充值 2消费 3奖励 - in: query - name: type - type: integer produces: - application/json responses: @@ -4195,7 +3178,7 @@ paths: post: consumes: - application/json - description: 设置当前用户对短剧、短剧剧集或视频评论的点赞状态 + description: 设置当前用户对短剧评论或短剧剧集评论的点赞状态 parameters: - description: 评论点赞设置请求 in: body @@ -4223,15 +3206,14 @@ paths: get: consumes: - application/json - description: 分页查询短剧、短剧剧集或视频评论树,一级评论分页返回,二级评论挂在children中,objectType 10-短剧 11-短剧剧集 - 20-视频 + description: 分页查询短剧或短剧剧集评论树,一级评论分页返回,二级评论挂在children中,objectType 10-短剧 11-短剧剧集 parameters: - - description: 对象ID(短剧id 短剧剧集id 视频id) + - description: 对象ID(短剧id 短剧剧集id) in: query name: objectId required: true type: integer - - description: 对象类型 10-短剧 11-短剧剧集 20-视频 + - description: 对象类型 10-短剧 11-短剧剧集 in: query name: objectType required: true @@ -4271,8 +3253,8 @@ paths: post: consumes: - application/json - description: 发布短剧、短剧剧集或视频评论,parentsId为0发布一级评论,大于0发布二级评论,replyCommentId表示实际回复的评论,objectType - 10-短剧 11-短剧剧集 20-视频 + description: 发布短剧或短剧剧集评论,parentsId为0发布一级评论,大于0发布二级评论,replyCommentId表示实际回复的评论,objectType + 10-短剧 11-短剧剧集 parameters: - description: 参数列表 in: body @@ -4418,102 +3400,6 @@ paths: summary: 提交意见反馈 -- by 旺鸣 tags: - 意见反馈相关接口 - /api/app/navigation/header: - get: - consumes: - - application/json - description: 查询导航类型为URL模式和二级导航的头部导航配置 - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.AppTranslationInfo' - "400": - description: 失败 - schema: - type: string - summary: 查询头部导航配置 -- by 王鸣 - tags: - - app导航相关接口 - /api/app/playlet/all/list: - get: - consumes: - - application/json - description: 分页查询已上架短剧,支持题材、更新状态和排序筛选 - parameters: - - in: query - name: pageNum - type: integer - - in: query - name: pageSize - type: integer - - description: 排序 1-最新 2-最热 3-收藏最多 - in: query - name: sortType - type: integer - - description: 题材ID - in: query - name: themeId - type: integer - - description: 题材slug,非空时优先按slug解析题材ID - in: query - name: themeSlug - type: string - - description: 更新状态 0-全部 1-连载中 2-已完结 - in: query - name: updateStatus - type: integer - produces: - - application/json - responses: - "200": - description: 成功 - schema: - allOf: - - $ref: '#/definitions/proto.PlayletAllListResp' - - properties: - list: - items: - $ref: '#/definitions/proto.CommonData' - type: array - type: object - "400": - description: 失败 - schema: - type: string - summary: app端分页查询全部短剧 --by 王鸣 - tags: - - app短剧相关接口 - /api/app/playlet/bought/list: - get: - consumes: - - application/json - description: 按当前用户最近购买时间倒序分页返回已购短剧列表,并返回已购集数、消耗金币和最近观看位置 - parameters: - - in: query - name: pageNum - type: integer - - in: query - name: pageSize - type: integer - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.PlayletBoughtListResp' - "400": - description: 失败 - schema: - type: string - security: - - ApiKeyAuth: [] - summary: app端我的已购短剧列表 --by 王鸣 - tags: - - app短剧相关接口 /api/app/playlet/chapter/collect/list: get: consumes: @@ -4715,7 +3601,7 @@ paths: get: consumes: - application/json - description: 按当前用户收藏时间倒序分页返回短剧收藏列表,并返回已看/未看集数和最近观看位置;watchStatus=0全部 1追剧中 2已看完 + description: 按当前用户收藏时间倒序分页返回短剧收藏列表,并返回已看/未看集数和最近观看位置 parameters: - in: query name: pageNum @@ -4723,10 +3609,6 @@ paths: - in: query name: pageSize type: integer - - description: 观看状态 0-全部 1-追剧中 2-已看完 - in: query - name: watchStatus - type: integer produces: - application/json responses: @@ -4823,44 +3705,6 @@ paths: summary: app端短剧转发增加热度 --by 王鸣 tags: - app短剧相关接口 - /api/app/playlet/guess-like/list: - get: - consumes: - - application/json - description: 根据当前短剧同题材查询猜你喜欢,排除当前短剧 - parameters: - - in: query - name: pageNum - type: integer - - in: query - name: pageSize - type: integer - - description: 当前短剧ID - in: query - name: playletId - required: true - type: integer - produces: - - application/json - responses: - "200": - description: 成功 - schema: - allOf: - - $ref: '#/definitions/proto.PlayletGuessLikeListResp' - - properties: - list: - items: - $ref: '#/definitions/proto.CommonData' - type: array - type: object - "400": - description: 失败 - schema: - type: string - summary: app端分页查询猜你喜欢短剧 --by 王鸣 - tags: - - app短剧相关接口 /api/app/playlet/history/clear: post: consumes: @@ -4882,34 +3726,6 @@ paths: summary: app端清空我的短剧观看历史 --by 王鸣 tags: - app短剧相关接口 - /api/app/playlet/history/delete: - post: - consumes: - - application/json - description: 删除当前用户指定短剧的观看历史,不影响观看进度、收藏和已购记录 - parameters: - - description: 删除单条观看历史请求 - in: body - name: param - required: true - schema: - $ref: '#/definitions/proto.PlayletHistoryDeleteReq' - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.PlayletHistoryDeleteResp' - "400": - description: 失败 - schema: - type: string - security: - - ApiKeyAuth: [] - summary: app端删除单条短剧观看历史 --by 王鸣 - tags: - - app短剧相关接口 /api/app/playlet/history/list: get: consumes: @@ -4942,7 +3758,7 @@ paths: get: consumes: - application/json - description: 无请求参数,返回首页banner短剧、公告和SEO信息 + description: 无请求参数,返回首页banner、最近更新和启用短剧分类数据;homeCategoryData按分类rank倒序返回全部启用分类,每个分类最多16条短剧 produces: - application/json responses: @@ -4957,61 +3773,6 @@ paths: summary: app端首页短剧接口 --by 王鸣 tags: - app短剧相关接口 - /api/app/playlet/home/config/detail/list: - get: - consumes: - - application/json - description: 根据首页配置ID分页查询短剧、视频或题材 - parameters: - - description: 首页配置ID - in: query - name: homeConfigId - required: true - type: integer - - description: type=2时生效,视频类型 0-全部 1-影集 2-动画 - in: query - name: mediaType - type: integer - - description: type=1时生效,运营类型 0-全部 1-短剧 2-漫剧 - in: query - name: operateType - type: integer - - in: query - name: pageNum - type: integer - - in: query - name: pageSize - type: integer - - description: type=1时生效,题材ID - in: query - name: themeId - type: integer - - description: type=1时生效,题材slug,非空时优先按slug解析题材ID - in: query - name: themeSlug - type: string - - description: type=1/type=2时生效,时间范围 0-综合 1-本周 2-本月 - in: query - name: timeRange - type: integer - - description: type=2时生效,视频题材ID,对应video_topic - in: query - name: topicId - type: integer - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.HomeConfigDetailListResp' - "400": - description: 失败 - schema: - type: string - summary: app端分页查询首页配置详情列表--by 王鸣 - tags: - - app短剧相关接口 /api/app/playlet/hot-like: get: consumes: @@ -5031,43 +3792,6 @@ paths: summary: app端热搜词和猜你喜欢 tags: - app短剧相关接口 - /api/app/playlet/hot/rank/list: - get: - consumes: - - application/json - description: 分页查询已上架短剧热榜;rankType=1热播榜 2新剧榜 3追剧榜 - parameters: - - in: query - name: pageNum - type: integer - - in: query - name: pageSize - type: integer - - description: 榜单类型 1-热播榜 2-新剧榜 3-追剧榜 - in: query - name: rankType - type: integer - produces: - - application/json - responses: - "200": - description: 成功 - schema: - allOf: - - $ref: '#/definitions/proto.PlayletHotRankListResp' - - properties: - list: - items: - $ref: '#/definitions/proto.CommonData' - type: array - type: object - "400": - description: 失败 - schema: - type: string - summary: app端分页查询热榜 --by 王鸣 - tags: - - app短剧相关接口 /api/app/playlet/like/set: post: consumes: @@ -5096,6 +3820,51 @@ paths: summary: app端短剧点赞/取消点赞 --by 王鸣 tags: - app短剧相关接口 + /api/app/playlet/list: + get: + consumes: + - application/json + description: 分页查询已上架短剧;可按题材ID或题材slug筛选,slug非空时优先按slug解析题材ID + parameters: + - in: query + name: pageNum + type: integer + - in: query + name: pageSize + type: integer + - description: 排序 1-热度优先,按收藏量倒序 2-今日更新,按上架时间倒序 + in: query + name: sortOrder + type: integer + - description: 题材ID + in: query + name: themeId + type: integer + - description: 题材slug,非空时优先按slug解析题材ID + in: query + name: themeSlug + type: string + produces: + - application/json + responses: + "200": + description: 成功 + schema: + allOf: + - $ref: '#/definitions/proto.PlayletVideoResp' + - properties: + list: + items: + $ref: '#/definitions/proto.CommonData' + type: array + type: object + "400": + description: 失败 + schema: + type: string + summary: 短剧 --by 王鸣 + tags: + - app短剧相关接口 /api/app/playlet/operate/list: get: consumes: @@ -5175,6 +3944,47 @@ paths: summary: 短剧排行榜 --by 王鸣 tags: - app短剧相关接口 + /api/app/playlet/recommend/list: + get: + consumes: + - application/json + description: 根据短剧分类ID或分类slug分页查询已上架短剧;slug非空时优先按slug解析分类ID;pageSize默认10、最大100 + parameters: + - description: 分类ID + in: query + name: categoryId + type: integer + - description: 分类slug,非空时优先按slug解析分类ID + in: query + name: categorySlug + type: string + - in: query + name: pageNum + type: integer + - in: query + name: pageSize + type: integer + produces: + - application/json + responses: + "200": + description: 成功 + schema: + allOf: + - $ref: '#/definitions/proto.PlayletRecommendListResp' + - properties: + list: + items: + $ref: '#/definitions/proto.CommonData' + type: array + type: object + "400": + description: 失败 + schema: + type: string + summary: app端分页查询分类短剧(更多) --by 王鸣 + tags: + - app短剧相关接口 /api/app/playlet/search: get: consumes: @@ -5216,7 +4026,7 @@ paths: get: consumes: - application/json - description: 根据标签ID或标签slug分页查询已上架短剧;slug非空时优先按slug解析标签ID;sortType=1最新 2最热 3收藏最多 + description: 根据标签ID或标签slug分页查询已上架短剧;slug非空时优先按slug解析标签ID parameters: - in: query name: pageNum @@ -5224,11 +4034,7 @@ paths: - in: query name: pageSize type: integer - - description: 排序 1-最新 2-最热 3-收藏最多 - in: query - name: sortType - type: integer - - description: 标签ID,tagSlug为空时必传 + - description: 标签ID in: query name: tagId type: integer @@ -5257,25 +4063,6 @@ paths: summary: app端根据标签ID分页查询短剧 --by 王鸣 tags: - app短剧相关接口 - /api/app/playlet/tag/options: - get: - consumes: - - application/json - description: 无请求参数,不分页,返回已上架短剧标签列表 - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.PlayletTagListResponse' - "400": - description: 失败 - schema: - type: string - summary: app端短剧标签列表 --by 王鸣 - tags: - - app短剧标签相关接口 /api/app/playlet/today-update: get: consumes: @@ -5309,89 +4096,6 @@ paths: summary: app端分页查询今日更新短剧 --by 王鸣 tags: - app短剧相关接口 - /api/app/playlet/topic/detail: - get: - consumes: - - application/json - description: 按专题ID查询专题信息和专题短剧列表 - parameters: - - description: 专题ID - in: query - name: id - required: true - type: integer - - in: query - name: pageNum - type: integer - - in: query - name: pageSize - type: integer - - description: 排序 1-编辑排序 2-最新 3-最热 - in: query - name: sortType - type: integer - produces: - - application/json - responses: - "200": - description: 成功 - schema: - allOf: - - $ref: '#/definitions/proto.PlayletTopicDetailResp' - - properties: - list: - items: - $ref: '#/definitions/proto.CommonData' - type: array - moreTopics: - items: - $ref: '#/definitions/proto.PlayletTopicPageItem' - type: array - type: object - "400": - description: 失败 - schema: - type: string - summary: app端查询专题详情 --by 王鸣 - tags: - - app短剧相关接口 - /api/app/playlet/topic/list: - get: - consumes: - - application/json - description: 分页查询已上架且有短剧数据的专题剧单 - parameters: - - in: query - name: pageNum - type: integer - - in: query - name: pageSize - type: integer - - description: 排序 1-最新 2-最热 - in: query - name: sortType - type: integer - produces: - - application/json - responses: - "200": - description: 成功 - schema: - allOf: - - $ref: '#/definitions/proto.PlayletTopicPageListResp' - - properties: - list: - items: - $ref: '#/definitions/proto.PlayletTopicPageItem' - type: array - type: object - "400": - description: 失败 - schema: - type: string - summary: app端分页查询专题剧单 --by 王鸣 - tags: - - app短剧相关接口 /api/app/recharge/package/list: get: description: 返回会员畅享和金币充值两个列表,并附带各套餐可用支付方式 @@ -5498,55 +4202,17 @@ paths: summary: 图片上传 tags: - 上传 - /api/app/user/center/data: + /api/app/video/detail: get: consumes: - application/json - description: 返回当前用户观看、收藏、追剧中、已购剧集统计 - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.UserCenterDataResp' - "400": - description: 失败 - schema: - type: string - security: - - ApiKeyAuth: [] - summary: app个人中心数据 --by 王鸣 - tags: - - app个人中心相关接口 - /api/app/video/all/list: - get: - consumes: - - application/json - description: 分页查询已上架视频,支持类型、题材和排序筛选 + description: 查询已上架视频详情和该视频相关推荐列表 parameters: - - description: 类型 0-全部 1-影集 2-动画 + - description: 视频的id必填 in: query - name: mediaType + name: id + required: true type: integer - - in: query - name: pageNum - type: integer - - in: query - name: pageSize - type: integer - - description: 排序 1-最新 2-最热 3-收藏最多 - in: query - name: sortType - type: integer - - description: 题材ID,对应video_topic - in: query - name: topicId - type: integer - - description: 题材slug,非空时优先按slug解析题材ID - in: query - name: topicSlug - type: string produces: - application/json responses: @@ -5554,197 +4220,20 @@ paths: description: 成功 schema: allOf: - - $ref: '#/definitions/proto.VideoAllListResp' + - $ref: '#/definitions/proto.VideoInfoResp' - properties: - list: + recommendVideos: items: - $ref: '#/definitions/proto.VideoAllListItemResp' + $ref: '#/definitions/proto.VideoItemResp' type: array type: object "400": description: 失败 schema: type: string - summary: app端分页查询视频列表 --by 王鸣 - tags: - - 视频相关接口 - /api/app/video/collect/list: - get: - consumes: - - application/json - description: 按当前用户收藏时间倒序分页返回视频收藏列表 - parameters: - - in: query - name: pageNum - type: integer - - in: query - name: pageSize - type: integer - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.VideoCollectListResp' - "400": - description: 失败 - schema: - type: string - summary: app端我的视频收藏列表 --by 王鸣 - tags: - - 视频相关接口 - /api/app/video/collect/set: - post: - consumes: - - application/json - description: 设置当前用户视频收藏状态,收藏数只在状态真实变化时增减 - parameters: - - description: 视频收藏设置请求 - in: body - name: param - required: true - schema: - $ref: '#/definitions/proto.VideoCollectSetReq' - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.VideoCollectSetResp' - "400": - description: 失败 - schema: - type: string - summary: app端视频收藏/取消收藏 --by 王鸣 - tags: - - 视频相关接口 - /api/app/video/detail: - get: - consumes: - - application/json - description: 查询已上架视频详情 - parameters: - - description: 视频id - in: query - name: id - type: integer - - description: 视频slug,非空时优先按slug解析视频ID - in: query - name: slug - type: string - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.VideoInfoResp' - "400": - description: 失败 - schema: - type: string summary: 查询视频详情 --by 旺鸣 tags: - 视频相关接口 - /api/app/video/history/clear: - post: - consumes: - - application/json - description: 清空当前用户全部视频观看历史,不影响收藏和点赞 - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.VideoHistoryClearResp' - "400": - description: 失败 - schema: - type: string - summary: app端清空我的视频观看历史 --by 王鸣 - tags: - - 视频相关接口 - /api/app/video/history/delete: - post: - consumes: - - application/json - description: 删除当前用户指定视频观看历史,不影响收藏和点赞 - parameters: - - description: 删除单条视频观看历史请求 - in: body - name: param - required: true - schema: - $ref: '#/definitions/proto.VideoHistoryDeleteReq' - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.VideoHistoryDeleteResp' - "400": - description: 失败 - schema: - type: string - summary: app端删除单条视频观看历史 --by 王鸣 - tags: - - 视频相关接口 - /api/app/video/history/list: - get: - consumes: - - application/json - description: 按当前用户最近观看时间倒序分页返回视频观看历史 - parameters: - - in: query - name: pageNum - type: integer - - in: query - name: pageSize - type: integer - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.VideoHistoryListResp' - "400": - description: 失败 - schema: - type: string - summary: app端我的视频观看历史列表 --by 王鸣 - tags: - - 视频相关接口 - /api/app/video/like/set: - post: - consumes: - - application/json - description: 设置当前用户视频点赞状态,点赞数只在状态真实变化时增减 - parameters: - - description: 视频点赞设置请求 - in: body - name: param - required: true - schema: - $ref: '#/definitions/proto.VideoLikeSetReq' - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.VideoLikeSetResp' - "400": - description: 失败 - schema: - type: string - summary: app端视频点赞/取消点赞 --by 王鸣 - tags: - - 视频相关接口 /api/app/video/list: get: consumes: @@ -5778,30 +4267,6 @@ paths: summary: 普通分页查询视频 --by 旺鸣 tags: - 视频相关接口 - /api/app/video/topic/list: - get: - consumes: - - application/json - description: 查询已上架视频题材列表,mediaType=0全部 1影集 2动画 - parameters: - - description: 类型 0-全部 1-影集 2-动画 - in: query - name: mediaType - type: integer - produces: - - application/json - responses: - "200": - description: 成功 - schema: - $ref: '#/definitions/proto.VideoTopicListResp' - "400": - description: 失败 - schema: - type: string - summary: app端查询视频题材列表 --by 王鸣 - tags: - - 视频相关接口 /api/app/vip/orders: get: consumes: diff --git a/app/service/appser/cache.go b/app/service/appser/cache.go index d21ae5f..9ff2b65 100644 --- a/app/service/appser/cache.go +++ b/app/service/appser/cache.go @@ -124,7 +124,7 @@ func UpdateAppListCache(ctx context.Context) { } // 广告位 A(code=12) if category.Code == 12 { - for _, ad := range advitise.AList { + for _, ad := range advitise.AppInfoAList { apps = append(apps, proto.AppInfoData{ AdvitiseId: ad.Id, CategoryId: category.Id, @@ -137,7 +137,7 @@ func UpdateAppListCache(ctx context.Context) { } // 广告位 B(code=13) if category.Code == 13 { - for _, ad := range advitise.BList { + for _, ad := range advitise.AppInfoBList { apps = append(apps, proto.AppInfoData{ AdvitiseId: ad.Id, CategoryId: category.Id, diff --git a/app/service/configser/announcement.go b/app/service/configser/announcement.go index f37e2ca..f2f3002 100644 --- a/app/service/configser/announcement.go +++ b/app/service/configser/announcement.go @@ -1,97 +1,61 @@ package configser import ( - "strconv" - "videoweb/app/api/proto" - "videoweb/app/appg" - "videoweb/pub/adcenter" + "context" + "net/http" "videoweb/pub/common/log" "videoweb/pub/common/netutil" + "videoweb/pub/pubdef" + "videoweb/pub/storage" "videoweb/pub/storage/proxy" ) -// UpdateAdvitiseDataFromJt 从广告中心拉取福利页广告 -func UpdateAdvitiseDataFromJt() { +// UpdateAdvitiseData 从媒资中心按 AppId 拉取广告,图片拼接 CDN 后写入缓存 +func UpdateAdvitiseData(ctx context.Context) { config := GetConfigInfo() - var resp proto.AdvitiseData - jtAds, err := adcenter.JtAdvertiseThreeServer(appg.Conf.AdCenter.ApiDomain, appg.Conf.AdCenter.MerchantCode, appg.Conf.AdCenter.AppCode, appg.Conf.AdCenter.AesKey) - if err != nil { - log.Error("JtAdvertiseThreeServer error occur", log.E(err)) + queryAdvitiseReq := &proxy.AppAdvitiseInfoReq{ + Id: pubdef.AppId, + } + advitiseResult, err := storage.QueryAdvitiseList(ctx, queryAdvitiseReq, "") + if err != nil || advitiseResult.Code != http.StatusOK { + if advitiseResult != nil { + log.Warn("UpdateAdvitiseData.QueryAdvitiseList failed", log.Any("filter", queryAdvitiseReq), log.E(err), log.Any("respCode", advitiseResult.Code)) + } else { + log.Warn("UpdateAdvitiseData.QueryAdvitiseList failed", log.Any("filter", queryAdvitiseReq), log.E(err)) + } return } - adMap := make(map[string]adcenter.AdCacheInfo) - for _, loc := range jtAds { - pos, err := strconv.Atoi(loc.AdvertiseLocationCode) - if err != nil { - log.Error("广告位置代码错误,必须为数字", log.Any("code", loc.AdvertiseLocationCode)) - continue - } - //if pos < 100001 { - // continue - //} - ads := make([]proxy.AdvitiseInfo, 0) - for _, ad := range loc.AdDetailInfoList { - //extra := ad.GetExtraData() - ads = append(ads, proxy.AdvitiseInfo{ - Id: ad.AdvertiseCode, - Location: int64(pos), - Title: ad.AdvertiseName, - Images: netutil.MergeURL(config.ImgCdn, ad.GetCoverLsj()), - Link: ad.GetRealLink(), - }) - adMap[ad.AdvertiseCode] = adcenter.AdCacheInfo{ - AdvertiseCode: ad.AdvertiseCode, - CustomerCode: ad.CustomerCode, - AdvertiseName: ad.AdvertiseName, - AdvertiseUrl: ad.AdvertiseUrl, - AdvertiseIcon: ad.AdvertiseIcon, - AdvertiseType: ad.AdvertiseType, - AdMode: ad.AdMode, - AppCode: ad.AppCode, - LocationType: ad.LocationType, - AdvertiseDesc: ad.AdvertiseDesc, - PageType: ad.PageType, - StartTimeStamp: ad.StartTimeStamp, - EndTimeStamp: ad.EndTimeStamp, - Sort: ad.Sort, - AdExtData: ad.AdExtData, - DeptCode: loc.DeptCode, - MerchantCode: loc.MerchantCode, - AdvertiseLocationCode: loc.AdvertiseLocationCode, - AdvertiseLocationName: loc.AdvertiseLocationName, - DisplayMode: loc.DisplayMode, - AdvertiseHeight: loc.AdvertiseHeight, - AdvertiseWidth: loc.AdvertiseWidth, - MaterialType: loc.MaterialType, - AdLimit: loc.AdLimit, - } - } - switch pos { - case 1: //弹窗 - resp.DialogList = ads - case 2: // 应用 - resp.DetailTopList = ads - case 3: // 横幅 - resp.NineGridList = ads - resp.DetailbannerList = ads - case 12: - resp.AList = ads - case 13: - resp.BList = ads - } + data := advitiseResult.Data + for _, list := range []*[]proxy.AdvitiseInfo{ + &data.DialogList, + &data.HomeList, + &data.VideoTopList, + &data.VideoDownList, + &data.HotAppList, + &data.NewAppList, + &data.MustAppList, + &data.TitleAppList, + &data.FriendList, + &data.NineGridList, + &data.VideoList, + &data.StopList, + &data.ForcedJumpList, + &data.AppInfoAList, + &data.AppInfoBList, + } { + mergeAdvitiseImages(*list, config.ImgCdn) } + CacheMgr.Lock.Lock() defer CacheMgr.Lock.Unlock() - CacheMgr.Advitise = resp - CacheMgr.AdvitiseMap = adMap + CacheMgr.Advitise = data } -func GetAdvertiseLocation(adverId string) (res adcenter.AdCacheInfo) { - CacheMgr.Lock.RLock() - defer CacheMgr.Lock.RUnlock() - if ad, ok := CacheMgr.AdvitiseMap[adverId]; ok { - res = ad +func mergeAdvitiseImages(list []proxy.AdvitiseInfo, cdn string) { + for i := range list { + if len(list[i].Images) > 0 { + list[i].Images = netutil.MergeURL(cdn, list[i].Images) + } } - return } diff --git a/app/service/configser/catch.go b/app/service/configser/catch.go index 19c6e67..986002d 100644 --- a/app/service/configser/catch.go +++ b/app/service/configser/catch.go @@ -8,7 +8,6 @@ import ( "sync" "videoweb/app/api/proto" "videoweb/app/service/translationser" - "videoweb/pub/adcenter" "videoweb/pub/common/log" "videoweb/pub/common/netutil" "videoweb/pub/common/srvdef" @@ -36,7 +35,6 @@ type CacheInfo struct { Lock sync.RWMutex // 读写锁 Config proto.ConfigInfo // 系统配置缓存 Advitise proto.AdvitiseData - AdvitiseMap map[string]adcenter.AdCacheInfo TagCategoryList []proto.VideoTagCategoryData TotalHistory int64 IpBlackMaps map[string]struct{} @@ -63,14 +61,14 @@ func Start() { ctx := context.Background() dataReport.StartSDKConfigCron() UpdateConfigInfo(ctx) - UpdateAdvitiseDataFromJt() + UpdateAdvitiseData(ctx) updateIpBlack() updateTagsCache() updateAppRichTexts() updateAnnouncements() _, _ = skdCron.AddFunc("0 */5 * * * ?", func() { UpdateConfigInfo(ctx) - UpdateAdvitiseDataFromJt() + UpdateAdvitiseData(ctx) updateIpBlack() updateTagsCache() updateAppRichTexts() diff --git a/pub/storage/proxy/object.go b/pub/storage/proxy/object.go index 40b87ef..57a3789 100644 --- a/pub/storage/proxy/object.go +++ b/pub/storage/proxy/object.go @@ -156,6 +156,30 @@ func QueryMedia(baseInfo *MediaQueryeReq, domain string) (result *VideoQueryResu return } +func QueryAdvitise(baseInfo *AppAdvitiseInfoReq, domain string) (result *AdvitiseQuerysResult, err error) { + result = &AdvitiseQuerysResult{} + paramJson, err := json.Marshal(baseInfo) + if err != nil { + return + } + if len(domain) == 0 { + domain = DomainAddressRepair(domain, BucketVideoAddressV2) + } + url := domain + if !strings.Contains(domain, "/media/web/app/advitise") { + url = domain + "/media/web/app/advitise" + } + fr, err := http.Post(url, header, bytes.NewReader(paramJson)) + if err != nil { + return + } + if err = json.Unmarshal(fr.Data, result); err != nil { + fmt.Println(err) + return nil, err + } + return +} + func QueryMedias(baseInfo *MediaQueryesReq, domain string) (result *VideoQuerysResult, err error) { result = &VideoQuerysResult{ Data: make([]MediaResp, 0), diff --git a/pub/storage/proxy/types.go b/pub/storage/proxy/types.go index eee6f54..bbd7939 100644 --- a/pub/storage/proxy/types.go +++ b/pub/storage/proxy/types.go @@ -1,6 +1,7 @@ package proxy import ( + "encoding/json" "strings" "time" "videoweb/pub/models/videoinformationmod" @@ -425,6 +426,33 @@ type AdvitiseInfo struct { Images string `json:"images" bson:"images"` // 视频banner Link string `json:"link" bson:"link"` // 链接 } + +// UnmarshalJSON 兼容远端 id 返回数字或字符串两种格式,统一解析为字符串,避免大整数(雪花ID)在 JS 端丢精度 +func (a *AdvitiseInfo) UnmarshalJSON(data []byte) error { + type alias AdvitiseInfo + aux := &struct { + Id json.RawMessage `json:"id"` + *alias + }{alias: (*alias)(a)} + if err := json.Unmarshal(data, aux); err != nil { + return err + } + raw := strings.TrimSpace(string(aux.Id)) + switch { + case raw == "" || raw == "null": + a.Id = "" + case strings.HasPrefix(raw, `"`): + var s string + if err := json.Unmarshal([]byte(raw), &s); err != nil { + return err + } + a.Id = s + default: + a.Id = raw + } + return nil +} + type AdvitiseData struct { DialogList []AdvitiseInfo `json:"dialogList" bson:"dialogList"` // 弹窗广告 HomeList []AdvitiseInfo `json:"homeList" bson:"homeList"` // 首页列表 diff --git a/pub/storage/upload.go b/pub/storage/upload.go index 5b7a39a..06bc7e6 100644 --- a/pub/storage/upload.go +++ b/pub/storage/upload.go @@ -29,6 +29,10 @@ func UploadImage(ctx context.Context, f *multipart.FileHeader, domain string) (p return proxy.UploadImg(f.Filename, buffer.Bytes(), domain) } +func QueryAdvitiseList(ctx context.Context, in *proxy.AppAdvitiseInfoReq, domain string) (*proxy.AdvitiseQuerysResult, error) { + return proxy.QueryAdvitise(in, domain) +} + func QueryMedias(ctx context.Context, in *proxy.MediaQueryesReq, domain string) (*proxy.VideoQuerysResult, error) { return proxy.QueryMedias(in, domain) }