Files
sundynix-radio-be/docs/swagger.yaml
T
2026-04-28 10:16:23 +08:00

2828 lines
62 KiB
YAML

basePath: /
definitions:
request.AddComment:
properties:
content:
description: 评论内容
type: string
parentId:
description: 父评论ID
type: string
programId:
description: 节目ID
type: string
required:
- content
- programId
type: object
request.AddFavorite:
properties:
programId:
description: 节目ID
type: string
required:
- programId
type: object
request.AddHistory:
properties:
duration:
description: 节目总时长(秒)
type: integer
programId:
description: 节目ID
type: string
progress:
description: 播放进度(秒)
type: integer
required:
- programId
type: object
request.ChangePwd:
properties:
id:
type: string
newPwd:
type: string
type: object
request.DeleteComment:
properties:
commentId:
description: 评论ID
type: string
required:
- commentId
type: object
request.GetById:
properties:
id:
description: 主键ID
type: string
type: object
request.GetCategoryList:
properties:
current:
description: 页码
type: integer
keyword:
description: 关键字
type: string
name:
description: 分类名称
type: string
pageSize:
description: 每页大小
type: integer
status:
description: 状态
type: integer
type: object
request.GetChannelList:
properties:
categoryId:
description: 分类ID
type: string
current:
description: 页码
type: integer
keyword:
description: 关键字
type: string
name:
description: 频道名称
type: string
pageSize:
description: 每页大小
type: integer
status:
description: 状态
type: integer
type: object
request.GetClientList:
properties:
clientId:
type: string
current:
description: 页码
type: integer
keyword:
description: 关键字
type: string
name:
type: string
pageSize:
description: 每页大小
type: integer
type: object
request.GetCommentList:
properties:
current:
description: 页码
type: integer
keyword:
description: 关键字
type: string
pageSize:
description: 每页大小
type: integer
programId:
description: 节目ID
type: string
type: object
request.GetFavoriteList:
properties:
current:
description: 页码
type: integer
keyword:
description: 关键字
type: string
pageSize:
description: 每页大小
type: integer
type: object
request.GetHistoryList:
properties:
current:
description: 页码
type: integer
keyword:
description: 关键字
type: string
pageSize:
description: 每页大小
type: integer
type: object
request.GetLikeList:
properties:
current:
description: 页码
type: integer
keyword:
description: 关键字
type: string
pageSize:
description: 每页大小
type: integer
type: object
request.GetMenuTree:
properties:
category:
type: integer
parentId:
type: string
type: object
request.GetOssFileList:
properties:
current:
description: 页码
type: integer
keyword:
description: 关键字
type: string
name:
type: string
pageSize:
description: 每页大小
type: integer
type: object
request.GetProgramList:
properties:
channelId:
description: 频道ID
type: string
current:
description: 页码
type: integer
keyword:
description: 关键字
type: string
pageSize:
description: 每页大小
type: integer
status:
description: 状态
type: integer
title:
description: 节目标题
type: string
type: object
request.GetRoleList:
properties:
code:
type: string
current:
description: 页码
type: integer
keyword:
description: 关键字
type: string
name:
type: string
pageSize:
description: 每页大小
type: integer
type: object
request.GetSubscriptionList:
properties:
current:
description: 页码
type: integer
keyword:
description: 关键字
type: string
pageSize:
description: 每页大小
type: integer
type: object
request.GetUserList:
properties:
account:
type: string
current:
description: 页码
type: integer
isVip:
type: integer
keyword:
description: 关键字
type: string
pageSize:
description: 每页大小
type: integer
phone:
type: string
type: object
request.GetVoiceList:
properties:
current:
description: 页码
type: integer
keyword:
description: 关键字
type: string
name:
description: 音色名称
type: string
pageSize:
description: 每页大小
type: integer
status:
description: 状态
type: integer
type: object
request.GrantMenu:
properties:
menuIds:
items:
type: string
type: array
roleId:
type: string
type: object
request.GrantRole:
properties:
roleIds:
items:
type: string
type: array
userId:
type: string
type: object
request.IdsReq:
properties:
ids:
items:
type: string
type: array
type: object
request.Login:
properties:
account:
type: string
captcha:
type: string
captchaId:
type: string
password:
type: string
type: object
request.RemoveFavorite:
properties:
programId:
description: 节目ID
type: string
required:
- programId
type: object
request.SaveCategory:
properties:
description:
description: 分类描述
type: string
name:
description: 分类名称
type: string
sort:
description: 排序
type: integer
status:
description: 状态
type: integer
required:
- name
type: object
request.SaveChannel:
properties:
annualPrice:
description: 包季价格
type: integer
categoryId:
description: 分类ID
type: string
cover:
description: 封面图URL
type: string
description:
description: 频道描述
type: string
isFree:
description: 是否永久免费
type: integer
isVipOnly:
description: 是否vip专享
type: integer
monthlyPrice:
description: 包月价格
type: integer
name:
description: 频道名称
type: string
quarterlyPrice:
description: 包季价格
type: integer
sort:
description: 排序
type: integer
status:
description: 状态
type: integer
tags:
description: 标签
type: string
required:
- categoryId
- name
type: object
request.SaveProgram:
properties:
audioId:
description: 音频URL
type: string
channelId:
description: 频道ID
type: string
content:
type: string
cover:
description: 封面图URL
type: string
description:
description: 节目描述
type: string
duration:
description: 时长(秒)
type: integer
status:
description: 状态
type: integer
tags:
description: 标签
type: string
title:
description: 节目标题
type: string
required:
- channelId
- title
type: object
request.SaveVoice:
properties:
audioId:
description: 试听音频OSS ID
type: string
description:
description: 音色描述
type: string
gender:
description: '性别: male/female/neutral'
type: string
icon:
description: 音色图标URL
type: string
isDefault:
description: 是否默认音色
type: integer
name:
description: 音色名称
type: string
sort:
description: 排序
type: integer
speakerId:
description: 音色ID
type: string
status:
description: 状态
type: integer
required:
- name
- speakerId
type: object
request.ToggleLike:
properties:
programId:
description: 节目ID
type: string
required:
- programId
type: object
request.UpdateCategory:
properties:
description:
description: 分类描述
type: string
id:
description: 分类ID
type: string
name:
description: 分类名称
type: string
sort:
description: 排序
type: integer
status:
description: 状态
type: integer
required:
- id
type: object
request.UpdateChannel:
properties:
annualPrice:
description: 包季价格
type: integer
categoryId:
description: 分类ID
type: string
cover:
description: 封面图URL
type: string
description:
description: 频道描述
type: string
id:
description: 频道ID
type: string
isFree:
type: integer
isVipOnly:
description: 是否vip专享
type: integer
monthlyPrice:
description: 包月价格
type: integer
name:
description: 频道名称
type: string
quarterlyPrice:
description: 包季价格
type: integer
sort:
description: 排序
type: integer
status:
description: 状态
type: integer
tags:
description: 标签
type: string
required:
- id
type: object
request.UpdateProgram:
properties:
audioId:
description: 音频URL
type: string
channelId:
description: 频道ID
type: string
content:
type: string
cover:
description: 封面图URL
type: string
description:
description: 节目描述
type: string
duration:
description: 时长(秒)
type: integer
id:
description: 节目ID
type: string
status:
description: 状态
type: integer
tags:
description: 标签
type: string
title:
description: 节目标题
type: string
required:
- id
type: object
request.UpdateVipConfig:
properties:
discountedPrice:
type: integer
id:
type: string
price:
type: integer
remark:
type: string
required:
- id
- price
type: object
request.UpdateVoice:
properties:
audioId:
description: 试听音频OSS ID
type: string
description:
description: 音色描述
type: string
gender:
description: 性别
type: string
icon:
description: 音色图标URL
type: string
id:
description: 音色ID
type: string
isDefault:
description: 是否默认音色
type: integer
name:
description: 音色名称
type: string
sort:
description: 排序
type: integer
speakerId:
description: 音色ID
type: string
status:
description: 状态
type: integer
required:
- id
type: object
response.CaptchaRes:
properties:
captcha:
type: string
captchaId:
type: string
type: object
response.LoginResponse:
properties:
expiresAt:
type: integer
token:
type: string
user:
$ref: '#/definitions/system.User'
type: object
response.PageResult:
properties:
list: {}
page:
type: integer
pageSize:
type: integer
total:
type: integer
type: object
response.Response:
properties:
code:
type: integer
data: {}
msg:
type: string
type: object
system.Client:
properties:
activeTimeout:
type: integer
additionalInfo:
type: string
clientId:
type: string
createdAt:
type: string
createdAtStr:
type: string
grantType:
type: string
id:
description: 主键ID
type: string
name:
type: string
updatedAt:
type: string
type: object
system.Menu:
properties:
category:
type: integer
children:
items:
$ref: '#/definitions/system.Menu'
type: array
code:
type: string
createdAt:
type: string
createdAtStr:
type: string
icon:
type: string
id:
description: 主键ID
type: string
locale:
type: string
name:
type: string
parentId:
type: string
path:
type: string
permission:
type: string
sort:
type: integer
title:
type: string
updatedAt:
type: string
type: object
system.Oss:
properties:
createdAt:
type: string
createdAtStr:
type: string
id:
description: 主键ID
type: string
key:
type: string
md5:
type: string
name:
type: string
suffix:
type: string
tag:
type: string
updatedAt:
type: string
url:
type: string
type: object
system.Role:
properties:
code:
type: string
createdAt:
type: string
createdAtStr:
type: string
id:
description: 主键ID
type: string
menus:
items:
$ref: '#/definitions/system.Menu'
type: array
name:
type: string
sort:
type: integer
updatedAt:
type: string
type: object
system.User:
properties:
account:
type: string
avatar:
$ref: '#/definitions/system.Oss'
avatarId:
type: string
city:
description: 城市
type: string
clientId:
type: string
country:
description: 国家
type: string
createdAt:
type: string
createdAtStr:
type: string
gender:
description: 性别 0:未知 1:男 2:女
type: integer
id:
description: 主键ID
type: string
isVip:
description: 是否VIP 0:否 1:是
type: integer
language:
description: 语言
type: string
lastLoginAt:
description: 最后登录时间
type: string
lastLoginIp:
description: 最后登录IP
type: string
name:
type: string
nickName:
type: string
openId:
type: string
phone:
type: string
province:
description: 省份
type: string
sessionKey:
type: string
tenantId:
type: string
unionId:
type: string
updatedAt:
type: string
vipExpireAt:
description: VIP过期时间
type: string
type: object
info:
contact: {}
description: 使用gin + gorm进行极速开发的全栈开发基础平台
title: Swagger API接口文档
version: v1.0.0
paths:
/auth/captcha:
get:
produces:
- application/json
responses:
"200":
description: 获取验证码
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
$ref: '#/definitions/response.CaptchaRes'
type: object
summary: 获取验证码
tags:
- 登录相关
/auth/getLocation:
get:
parameters:
- description: longitude
in: query
name: longitude
required: true
type: string
- description: latitude
in: query
name: latitude
required: true
type: string
produces:
- application/json
responses: {}
summary: 获取位置信息
tags:
- 登录相关
/auth/getPhone:
get:
parameters:
- description: code
in: query
name: code
required: true
type: string
- description: openId
in: query
name: openId
required: true
type: string
produces:
- application/json
responses: {}
summary: 获取手机号
tags:
- 登录相关
/auth/getWeather:
get:
parameters:
- description: adcode
in: query
name: adcode
required: true
type: string
produces:
- application/json
responses: {}
summary: 获取天气信息
tags:
- 登录相关
/auth/login:
post:
consumes:
- application/json
parameters:
- description: 用户名, 密码, 验证码,验证码id
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.Login'
produces:
- application/json
responses:
"200":
description: 登录成功
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
msg:
type: string
type: object
summary: pc登录
tags:
- 登录相关
/auth/logout:
get:
produces:
- application/json
responses:
"200":
description: 登出成功
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
msg:
type: string
type: object
security:
- ApiKeyAuth: []
summary: pc登出
tags:
- 登录相关
/auth/miniLogin:
get:
parameters:
- description: code
in: query
name: code
required: true
type: string
produces:
- application/json
responses:
"200":
description: 小程序登录
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
$ref: '#/definitions/response.LoginResponse'
type: object
summary: 小程序登录
tags:
- 登录相关
/client/delete:
post:
consumes:
- application/json
parameters:
- description: ids
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.IdsReq'
produces:
- application/json
responses:
"200":
description: 删除client
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 删除client
tags:
- 客户端管理
/client/detail:
get:
description: id获取详情
parameters:
- description: id
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 获取client详情
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
$ref: '#/definitions/system.Client'
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 获取client详情
tags:
- 客户端管理
/client/getClientList:
post:
consumes:
- application/json
parameters:
- description: client
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetClientList'
produces:
- application/json
responses:
"200":
description: 获取client列表
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
$ref: '#/definitions/response.PageResult'
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 获取client列表
tags:
- 客户端管理
/client/save:
post:
consumes:
- application/json
parameters:
- description: client
in: body
name: data
required: true
schema:
$ref: '#/definitions/system.Client'
produces:
- application/json
responses:
"200":
description: 创建client
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 创建client
tags:
- 客户端管理
/client/update:
post:
consumes:
- application/json
parameters:
- description: client
in: body
name: data
required: true
schema:
$ref: '#/definitions/system.Client'
produces:
- application/json
responses:
"200":
description: 更新client
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 更新client
tags:
- 客户端管理
/comment/add:
post:
parameters:
- description: 评论信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.AddComment'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 添加评论
tags:
- 用户互动
/comment/delete:
post:
parameters:
- description: 评论ID
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.DeleteComment'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 删除评论
tags:
- 用户互动
/comment/list:
post:
parameters:
- description: 分页查询
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetCommentList'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取评论列表
tags:
- 用户互动
/favorite/add:
post:
parameters:
- description: 节目ID
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.AddFavorite'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 添加收藏
tags:
- 用户互动
/favorite/list:
post:
parameters:
- description: 分页查询
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetFavoriteList'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取收藏列表
tags:
- 用户互动
/favorite/remove:
post:
parameters:
- description: 节目ID
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.RemoveFavorite'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 取消收藏
tags:
- 用户互动
/favorite/removeAll:
get:
parameters:
- description: 节目ID
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.RemoveFavorite'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 清空所有收藏
tags:
- 用户互动
/history/add:
post:
parameters:
- description: 收听信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.AddHistory'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 添加收听历史
tags:
- 用户互动
/history/delete:
post:
parameters:
- description: 节目ID
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 删除收听历史
tags:
- 用户互动
/history/deleteAllHistory:
get:
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 删除所有收听历史
tags:
- 用户互动
/history/list:
post:
parameters:
- description: 分页查询
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetHistoryList'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取收听历史列表
tags:
- 用户互动
/like/list:
post:
parameters:
- description: 分页查询
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetLikeList'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取收藏列表
tags:
- 用户互动
/like/removeAll:
get:
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 清空所有赞
tags:
- 用户互动
/like/toggle:
post:
parameters:
- description: 节目ID
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.ToggleLike'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 切换点赞状态
tags:
- 用户互动
/menu/delete:
get:
description: 删除menu
parameters:
- description: id
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 详情
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 删除menu
tags:
- 菜单管理
/menu/detail:
get:
description: id获取详情
parameters:
- description: id
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 详情
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
$ref: '#/definitions/system.Menu'
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 获取menu详情
tags:
- 菜单管理
/menu/getAllMenuTree:
post:
consumes:
- application/json
parameters:
- description: 菜单信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetMenuTree'
produces:
- application/json
responses:
"200":
description: 获取所有菜单树
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
items:
$ref: '#/definitions/system.Menu'
type: array
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 获取所有菜单树
tags:
- 菜单管理
/menu/getUserMenuTree:
get:
produces:
- application/json
responses:
"200":
description: 用户菜单数据
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
items:
$ref: '#/definitions/system.Menu'
type: array
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 用户菜单数据
tags:
- 菜单管理
/menu/route:
get:
produces:
- application/json
responses:
"200":
description: 用户route
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
items:
$ref: '#/definitions/system.Menu'
type: array
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 用户路由
tags:
- 菜单管理
/menu/save:
post:
consumes:
- application/json
parameters:
- description: menu
in: body
name: data
schema:
$ref: '#/definitions/system.Menu'
produces:
- application/json
responses:
"200":
description: 新建菜单/按钮
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 新增菜单
tags:
- 菜单管理
/menu/update:
post:
consumes:
- application/json
parameters:
- description: menu
in: body
name: data
schema:
$ref: '#/definitions/system.Menu'
produces:
- application/json
responses:
"200":
description: 更新菜单
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 更新菜单
tags:
- 菜单管理
/oss/delete:
post:
consumes:
- application/json
parameters:
- description: 批量删除文件
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.IdsReq'
produces:
- application/json
responses:
"200":
description: 删除文件
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
msg:
type: string
type: object
security:
- ApiKeyAuth: []
summary: 删除文件
tags:
- 文件相关
/oss/detail:
get:
parameters:
- description: 文件id
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 文件详情
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
type: string
type: object
security:
- ApiKeyAuth: []
summary: 文件详情
tags:
- 文件相关
/oss/getFileList:
post:
consumes:
- application/json
parameters:
- description: 文件列表
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetOssFileList'
produces:
- application/json
responses:
"200":
description: 文件列表
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
type: string
type: object
security:
- ApiKeyAuth: []
summary: 文件列表
tags:
- 文件相关
/oss/upload:
post:
consumes:
- multipart/form-data
parameters:
- description: 上传文件
in: formData
name: file
required: true
type: file
produces:
- application/json
responses:
"200":
description: 上传文件
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
msg:
type: string
type: object
security:
- ApiKeyAuth: []
summary: 文件上传
tags:
- 文件相关
/pay/prePay:
get:
consumes:
- application/json
parameters:
- description: 支付
in: query
name: orderId
required: true
type: string
produces:
- application/json
responses:
"200":
description: '{"success":true,"data":{},"msg":"支付成功"}'
schema:
type: string
security:
- ApiKeyAuth: []
summary: 支付
tags:
- 微信支付
/pay/query:
get:
parameters:
- description: 支付
in: query
name: orderId
required: true
type: string
produces:
- application/json
responses:
"200":
description: '{"success":true,"data":{},"msg":"支付成功"}'
schema:
type: string
security:
- BasicAuth: []
summary: 支付
tags:
- 微信支付
/radio/analytics/business-conversion:
get:
parameters:
- description: 开始日期
in: query
name: startDate
type: string
- description: 结束日期
in: query
name: endDate
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取商业转化分析 (Funnel & LTV)
tags:
- 数据分析
/radio/analytics/content-quality:
get:
parameters:
- description: 频道ID
in: query
name: channelId
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取内容质量分析(完播率等)
tags:
- 数据分析
/radio/analytics/listening-trend:
get:
parameters:
- description: 开始日期 2026-01-01
in: query
name: startDate
type: string
- description: 结束日期 2026-03-10
in: query
name: endDate
type: string
- description: 频道ID(可选筛选)
in: query
name: channelId
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取收听趋势(折线图)
tags:
- 数据分析
/radio/analytics/preference:
get:
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取品类偏好分析
tags:
- 数据分析
/radio/analytics/renewal-trend:
get:
parameters:
- description: 开始日期
in: query
name: startDate
type: string
- description: 结束日期
in: query
name: endDate
type: string
- description: 频道ID
in: query
name: channelId
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取续费趋势(折线图)
tags:
- 数据分析
/radio/analytics/subscriber-stats:
get:
parameters:
- description: 开始日期
in: query
name: startDate
type: string
- description: 结束日期
in: query
name: endDate
type: string
- description: 频道ID
in: query
name: channelId
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取订阅用户统计(折线图 + 概览)
tags:
- 数据分析
/radio/analytics/subscription-trend:
get:
parameters:
- description: 开始日期
in: query
name: startDate
type: string
- description: 结束日期
in: query
name: endDate
type: string
- description: 频道ID
in: query
name: channelId
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取订阅趋势(折线图)
tags:
- 数据分析
/radio/analytics/user-stickiness:
get:
parameters:
- description: 开始日期
in: query
name: startDate
type: string
- description: 结束日期
in: query
name: endDate
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取用户留存分析 (Cohort)
tags:
- 数据分析
/radio/analytics/vip-stats:
get:
parameters:
- description: 开始日期
in: query
name: startDate
type: string
- description: 结束日期
in: query
name: endDate
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取VIP统计数据
tags:
- 数据分析
/radio/category/delete:
post:
parameters:
- description: 分类ID
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetById'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 删除分类
tags:
- 分类管理
/radio/category/detail:
get:
parameters:
- description: 分类ID
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取分类详情
tags:
- 分类管理
/radio/category/list:
get:
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取分类列表
tags:
- 分类管理
/radio/category/page:
post:
consumes:
- application/json
parameters:
- description: 分页查询
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetCategoryList'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取分类列表
tags:
- 分类管理
/radio/category/save:
post:
consumes:
- application/json
parameters:
- description: 分类信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.SaveCategory'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 保存分类
tags:
- 分类管理
/radio/category/tree:
get:
consumes:
- application/json
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取分类列表
tags:
- 分类管理
/radio/category/update:
post:
consumes:
- application/json
parameters:
- description: Success 200 {分类信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.UpdateCategory'
produces:
- application/json
responses: {}
summary: 更新分类
tags:
- 分类管理
/radio/channel/delete:
post:
parameters:
- description: 频道ID
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetById'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 删除频道
tags:
- 频道管理
/radio/channel/detail:
get:
consumes:
- application/json
parameters:
- description: 频道ID
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取频道详情
tags:
- 频道管理
/radio/channel/freeList:
post:
consumes:
- application/json
parameters:
- description: 分页查询
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetChannelList'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取频道列表
tags:
- 频道管理
/radio/channel/list:
post:
consumes:
- application/json
parameters:
- description: 分页查询
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetChannelList'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取频道列表
tags:
- 频道管理
/radio/channel/save:
post:
consumes:
- application/json
parameters:
- description: 频道信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.SaveChannel'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 保存频道
tags:
- 频道管理
/radio/channel/update:
post:
consumes:
- application/json
parameters:
- description: 频道信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.UpdateChannel'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 更新频道
tags:
- 频道管理
/radio/program/delete:
post:
parameters:
- description: 节目ID
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetById'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 删除节目
tags:
- 节目管理
/radio/program/detail:
get:
parameters:
- description: 节目ID
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取节目详情
tags:
- 节目管理
/radio/program/generate-tts:
get:
parameters:
- description: 节目ID
in: query
name: id
required: true
type: string
- description: 音色(默认 zh_male_dayi_uranus_bigtts)
in: query
name: speaker
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 生成TTS语音
tags:
- 节目管理
/radio/program/list:
post:
parameters:
- description: 分页查询
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetProgramList'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取节目列表
tags:
- 节目管理
/radio/program/save:
post:
consumes:
- application/json
parameters:
- description: 节目信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.SaveProgram'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 保存节目
tags:
- 节目管理
/radio/program/update:
post:
consumes:
- application/json
parameters:
- description: 节目信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.UpdateProgram'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 更新节目
tags:
- 节目管理
/radio/subscription/list:
post:
consumes:
- application/json
parameters:
- description: 分页查询
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetSubscriptionList'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取我的订阅列表
tags:
- 订阅管理
/radio/subscription/unlock:
post:
parameters:
- description: id
in: query
name: id
required: true
type: string
- description: eventType
in: query
name: eventType
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 解锁频道
tags:
- 订阅管理
/radio/user/list:
get:
consumes:
- application/json
parameters:
- description: 页码
in: query
name: current
type: integer
- description: 每页大小
in: query
name: pageSize
type: integer
- description: 搜索关键字
in: query
name: keyword
type: string
- description: 'VIP筛选: 0全部 1VIP 2非VIP'
in: query
name: isVip
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取电台用户列表(含订阅/收听统计)
tags:
- 用户管理
/radio/voice/default:
get:
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取默认音色
tags:
- 音色管理
/radio/voice/delete:
post:
parameters:
- description: 音色ID列表
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.IdsReq'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 删除音色
tags:
- 音色管理
/radio/voice/detail:
get:
parameters:
- description: 音色ID
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取音色详情
tags:
- 音色管理
/radio/voice/list:
post:
parameters:
- description: 分页查询
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetVoiceList'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取音色列表
tags:
- 音色管理
/radio/voice/options:
get:
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取音色选项列表
tags:
- 音色管理
/radio/voice/save:
post:
consumes:
- application/json
parameters:
- description: 音色信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.SaveVoice'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 保存音色
tags:
- 音色管理
/radio/voice/set-default:
post:
parameters:
- description: 音色ID
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 设置默认音色
tags:
- 音色管理
/radio/voice/update:
post:
consumes:
- application/json
parameters:
- description: 音色信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.UpdateVoice'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 更新音色
tags:
- 音色管理
/role/delete:
post:
consumes:
- application/json
description: 删除角色
parameters:
- description: 批量删除角色
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.IdsReq'
produces:
- application/json
responses:
"200":
description: 删除角色
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
msg:
type: string
type: object
summary: 删除角色
tags:
- 角色管理
/role/detail:
get:
parameters:
- description: id
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 角色详情
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
$ref: '#/definitions/system.Role'
type: object
security:
- BasicAuth: []
summary: 角色详情
tags:
- 角色管理
/role/getRoleList:
post:
consumes:
- application/json
description: 获取角色列表
parameters:
- description: 页码, 每页大小, 搜索条件
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetRoleList'
produces:
- application/json
responses:
"200":
description: 获取角色列表,返回包括列表,总数,页码,每页大小
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
$ref: '#/definitions/response.PageResult'
msg:
type: string
type: object
summary: 获取角色列表
tags:
- 角色管理
/role/grantMenu:
post:
consumes:
- application/json
parameters:
- description: 授权菜单给角色
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GrantMenu'
produces:
- application/json
responses:
"200":
description: 授权菜单给角色
schema:
$ref: '#/definitions/response.Response'
security:
- BasicAuth: []
summary: 授权菜单给角色
tags:
- 角色管理
/role/save:
post:
consumes:
- application/json
parameters:
- description: 角色信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/system.Role'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
security:
- BasicAuth: []
summary: 创建角色
tags:
- 角色管理
/role/update:
post:
consumes:
- application/json
parameters:
- description: 角色ID
in: body
name: data
required: true
schema:
$ref: '#/definitions/system.Role'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
security:
- BasicAuth: []
summary: 修改角色
tags:
- 角色管理
/user/changePassword:
post:
consumes:
- application/json
description: 修改密码
parameters:
- description: 用户id
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.ChangePwd'
produces:
- application/json
responses:
"200":
description: 修改密码成功
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
$ref: '#/definitions/system.User'
type: object
security:
- BasicAuth: []
summary: 修改密码
tags:
- 用户管理
/user/delete:
post:
consumes:
- application/json
parameters:
- description: 批量删除用户
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.IdsReq'
produces:
- application/json
responses:
"200":
description: 删除用户
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 删除用户
tags:
- 用户管理
/user/detail:
get:
parameters:
- description: id
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 获取用户详情成功
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
$ref: '#/definitions/system.User'
type: object
security:
- BasicAuth: []
summary: 获取用户详情
tags:
- 用户管理
/user/getUserList:
post:
consumes:
- application/json
parameters:
- description: 页码, 每页大小, 搜索条件
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GetUserList'
produces:
- application/json
responses:
"200":
description: 获取用户列表,返回包括列表,总数,页码,每页大小
schema:
allOf:
- $ref: '#/definitions/response.Response'
- properties:
data:
$ref: '#/definitions/response.PageResult'
msg:
type: string
type: object
security:
- BasicAuth: []
summary: 获取用户列表
tags:
- 用户管理
/user/grantRole:
post:
consumes:
- application/json
parameters:
- description: 用户ID, 角色ID
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.GrantRole'
produces:
- application/json
responses:
"200":
description: '{"code": 200, "data": [...]}'
schema:
$ref: '#/definitions/response.Response'
security:
- BasicAuth: []
summary: 给用户分配角色
tags:
- 用户管理
/user/info:
get:
produces:
- application/json
responses:
"200":
description: '{"code": 200, "data": {}, "msg": "添加成功"}'
schema:
$ref: '#/definitions/response.Response'
security:
- BasicAuth: []
summary: 当前登录用户
tags:
- 用户管理
/user/save:
post:
consumes:
- application/json
parameters:
- description: 用户信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/system.User'
produces:
- application/json
responses:
"200":
description: '{"code": 200, "data": {}, "msg": "添加成功"}'
schema:
$ref: '#/definitions/response.Response'
security:
- BasicAuth: []
summary: 新增用户
tags:
- 用户管理
/user/update:
post:
consumes:
- application/json
parameters:
- description: 用户ID,用户信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/system.User'
produces:
- application/json
responses:
"200":
description: '{"code": 200, "data": [...]}'
schema:
$ref: '#/definitions/response.Response'
security:
- BasicAuth: []
summary: 更新用户
tags:
- 用户管理
/vip/config/detail:
post:
parameters:
- description: id
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 获取VIP配置详情
tags:
- VIP管理
/vip/config/update:
post:
consumes:
- application/json
parameters:
- description: VIP配置信息
in: body
name: data
required: true
schema:
$ref: '#/definitions/request.UpdateVipConfig'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 更新VIP配置
tags:
- VIP管理
/vip/vip:
post:
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
summary: 开通vip
tags:
- VIP管理
securityDefinitions:
BearerAuth:
type: basic
swagger: "2.0"