MLS 作品接口文档
路径前缀:
POST /mls/tool/{Tag}。需登录接口在 Body 传token(网关注入uin)。
0. 作品统计字段说明
列表/详情中的互动与观看数据均来自 apaas.mls_works 累计字段(由点赞、评论、分享、reportMlsWorksStat 等接口实时维护),不再对流水表做 COUNT。
| 返回字段 | 表字段 | 说明 |
|---|---|---|
likeCount |
likes |
点赞总数 |
commentCount |
comments |
有效评论总数 |
shareCount |
shares |
分享总数 |
pv |
pv |
页面曝光 |
uv |
uv |
独立访客(按日去重累计) |
vv |
vv |
视频播放 |
我的作品累计统计见 §6 getMyWorksStats(汇总当前用户全部 published 作品)。
1. POST 获取所有公开作品(首页作品流)
POST /mls/tool/getWorksFeed
说明:返回已发布且公开(status=published 且 isPrivate=0)的作品列表,按发布时间倒序。免登录可调用;传 token 且有效时返回 isLiked。
Body 请求参数
{
"page": 1,
"num": 10,
"token": "{{token}}"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.page | body | int | 否 | 页码,默认 1 |
| body.num | body | int | 否 | 每页条数,默认 15,最大 100 |
| body.token | body | string | 否 | 登录 token;有效时返回 isLiked |
返回字段说明(data[])
| 字段 | 类型 | 说明 |
|---|---|---|
| worksId | int | 作品 ID |
| episodeId | int | 关联 MLS 任务 ID |
| uin | int | 作者 uin |
| worksTitle | string | 作品标题 |
| languageCode | string | 语言标识,多语言为 multi |
| videoUrl | array | 多语言视频 [{ language, url }] |
| coverUrl | string | 封面 URL |
| publishTime | int | 发布时间(Unix 秒) |
| status | string | 固定 published |
| likeCount 等 | int | 累计统计,见 §0 |
| authorName / authorAvatar | string | 作者信息 |
| isLiked | bool | 仅登录时有效 |
返回示例
200 Response
{
"flag": 100,
"flagString": "success",
"data": [
{
"worksId": 19,
"episodeId": 612,
"uin": 1037,
"worksTitle": "1001-多语言版本",
"languageCode": "multi",
"videoUrl": [
{
"language": "中文",
"url": "http://mls-long.huaguangyun.cn/u/1037/mp4/0x0/mls-1037-1037-9e981e62ae443c058f47b9e076b68319.mp4"
},
{
"language": "英文",
"url": "http://mls-long.huaguangyun.cn/u/1037/mp4/0x0/mls-1037-1037-6879a47844e6f5e13ed58ad6b20966f7.mp4"
}
],
"coverUrl": "http://cdn-dvr.jstest.aodianyun.cn/pic/g-dvr/u/1101/images/65fcb49cfc2243131c3ca608d148950e/0/0",
"status": "published",
"likeCount": 0,
"commentCount": 0,
"shareCount": 0,
"pv": 120,
"uv": 45,
"vv": 80,
"authorName": "120****5678",
"authorAvatar": "",
"isLiked": false
}
],
"total": 1
}
2. POST 发布作品
POST /mls/tool/publishWorks
说明:将 MLS 任务中已生成完成的语种发布为作品;从任务 results 按所选语种组装 videoUrl。不要求任务整体 resStatus=3,但前端提交的每个语种在 results 中须为成功(status=2)且含有效 url。发布后默认 status=under_review(待审核),管理后台审核通过后变为 published 方可在首页展示及开放互动。需登录。
Body 请求参数
{
"token": "{{token}}",
"episodeId": 612,
"language": "chinese,english",
"title": "1001-多语言版本",
"coverUrl": "https://static-pro.guangdianyun.tv/common/img/eqx.jpg",
"visibility": "public"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.token | body | string | 是 | 登录 token |
| body.episodeId | body | int | 是 | MLS 任务 ID(须属于当前用户) |
| body.language | body | string | 是 | 发布语种,逗号分隔的 language_code;单语种存该 code,多语种存 multi |
| body.title | body | string | 否 | 作品标题,最长 255 字符 |
| body.coverUrl | body | string | 否 | 封面 URL |
| body.visibility | body | string | 否 | public 公开(isPrivate=0);其他或未传为仅自己可见 |
业务说明
- 用户
status须为1,否则「账户受限,无法发布」。 - 任务须存在、属于当前用户;不要求任务整体
resStatus=3(部分语种完成即可发布对应语种)。 - 前端
language为逗号分隔的language_code列表;每个提交的语种须在任务results中存在,且该条status=2(已成功)并含有效url;多语种全部校验通过后才允许发布。 - 视频 URL 写入前将
http://替换为https://。 - 入库
status为under_review,非published。 - 若任务
works_publish_blocked=1(该任务曾有作品被管理端下架),不可再次发布。
常见失败提示
| 场景 | flagString 示例 |
|---|---|
| 语种 code 无效 | 语种不存在:{code} |
| results 中无该语种 | 所选语种尚无生成结果:{语种名称} |
| 该语种未生成成功 | 所选语种尚未完成,无法发布:{语种名称} |
| 该语种无 url | 所选语种无有效视频地址:{语种名称} |
| 任务已下架锁定 | 该任务作品已下架,不可再次发布 |
返回示例
{
"flag": 100,
"flagString": "success",
"data": {
"productId": 21
}
}
| 字段 | 说明 |
|---|---|
| data.productId | 新创建的作品 ID(mls_works.id) |
3. POST 获取我的作品列表
POST /mls/tool/getMyWorksList
说明:分页查询当前用户除已删除外的全部作品(含待审核、已发布、审核未通过、已下架等)。需登录。
Body 请求参数
{
"token": "{{token}}",
"page": 1,
"num": 10,
"language": "全部",
"period": "30d"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.token | body | string | 是 | 登录 token |
| body.page | body | int | 否 | 页码,默认 1 |
| body.num | body | int | 否 | 每页条数,默认 15,最大 100 |
| body.language | body | string | 否 | 按语言筛选;全部 或不传表示不限 |
| body.period | body | string | 否 | all / 7d / 30d / 1y(及 365d、1year),默认 all |
返回示例
{
"flag": 100,
"flagString": "success",
"data": [
{
"worksId": 20,
"episodeId": 612,
"uin": 1037,
"worksTitle": "1001-希伯来语",
"languageCode": "hebrew",
"coverUrl": "/static/images/default-cover.png",
"status": "under_review",
"isPrivate": 1,
"rejectReason": "",
"reviewTime": 0,
"likeCount": 0,
"commentCount": 0,
"shareCount": 0,
"pv": 0,
"uv": 0,
"vv": 0
}
],
"total": 1
}
isPrivate:1 仅自己可见,0 公开可见。
作品 status 枚举
| 值 | 说明 |
|---|---|
under_review |
待审核(发布默认) |
published |
审核通过,可在首页公开展示(且 isPrivate=0) |
rejected |
审核未通过,见 rejectReason |
offline |
管理后台下架,下架原因见rejectReason |
deleted |
用户删除 |
非 published 作品互动规则
点赞、分享、发表评论仅 status=published 时允许;查看评论列表规则略有不同(见 §10)。
| 访问者 | 点赞 / 分享 / 发表评论 | 查看评论列表 |
|---|---|---|
| 非作者 | 返回 作品不存在或不可操作 |
返回 作品不存在或不可操作 |
| 作者本人 | 返回对应状态提示(见下表) | 允许查看(含待审核/未通过/下架) |
作者在非 published 状态下操作点赞/分享/发表评论时的提示:
| 作品 status | flagString |
|---|---|
under_review |
作品审核中 |
rejected |
作品审核未通过 |
offline |
作品已下架 |
补充:
- 取消点赞(
liked=false):若用户此前已点赞且作品未删除,允许取消,不受上述状态限制。 - 浏览/播放上报(§13):作者可预览本人非已发布作品,但不计入公开展示统计;规则见 §13。
4. POST 我的作品详情
POST /mls/tool/getMyWorksDetail
Body 请求参数
{
"token": "{{token}}",
"worksId": 11
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.token | body | string | 是 | 登录 token |
| body.worksId | body | int | 是 | 作品 ID |
返回示例
{
"flag": 100,
"flagString": "success",
"data": {
"id": 11,
"episodeId": 612,
"title": "1001-中文",
"language": "多语言",
"coverUrl": "https://static-pro.guangdianyun.tv/common/img/eqx.jpg",
"videoUrl": [
{
"language": "中文",
"url": "http://mls-long.huaguangyun.cn/u/1037/mp4/0x0/mls-1037-1037-9e981e62ae443c058f47b9e076b68319.mp4"
},
{
"language": "英文",
"url": "http://mls-long.huaguangyun.cn/u/1037/mp4/0x0/mls-1037-1037-6879a47844e6f5e13ed58ad6b20966f7.mp4"
}
],
"status": "published",
"likeCount": 0,
"commentCount": 0,
"shareCount": 0,
"pv": 0,
"uv": 0,
"vv": 0,
"createdAt": 1776836462,
"authorName": "120****5678",
"authorAvatar": "",
"isLiked": false
}
}
5. POST 删除我的作品
POST /mls/tool/deleteMyWorks
说明:软删除本人作品(status=deleted),并清理点赞、分享及有效评论。需登录。
Body 请求参数
{
"token": "{{token}}",
"worksId": 20
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.token | body | string | 是 | 登录 token |
| body.worksId | body | int | 是 | 作品 ID |
返回示例
{
"flag": 100,
"flagString": "success"
}
5.1 POST 修改作品可见性
POST /mls/tool/updateMyWorksVisibility
说明:作者切换本人作品的公开范围(public / private)。仅可操作本人且非 deleted 的作品;under_review、rejected 不可修改。需登录。
Body 请求参数
{
"token": "{{token}}",
"worksId": 20,
"visibility": "public"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.token | body | string | 是 | 登录 token |
| body.worksId | body | int | 是 | 作品 ID(须属于当前用户) |
| body.visibility | body | string | 是 | public 公开(isPrivate=0);private 仅个人可见(isPrivate=1) |
返回示例
{
"flag": 100,
"flagString": "success",
"data": {
"worksId": 20,
"visibility": "public",
"isPrivate": 0
}
}
5.2 POST 编辑审核未通过的作品
POST /mls/tool/editMyWorks
说明:仅 status=rejected(审核未通过) 的本人作品可编辑;可修改标题、封面图(至少传一项)。保存后状态变为 under_review(待审核),并清空 rejectReason。需登录。
Body 请求参数
{
"token": "{{token}}",
"worksId": 20,
"title": "修改后的标题",
"coverUrl": "https://example.com/cover.jpg"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.token | body | string | 是 | 登录 token |
| body.worksId | body | int | 是 | 作品 ID(须属于当前用户且为审核未通过) |
| body.title | body | string | 否 | 新标题,与 coverUrl 至少传一项 |
| body.coverUrl | body | string | 否 | 新封面 URL |
返回示例
{
"flag": 100,
"flagString": "success",
"data": {
"worksId": 20,
"title": "修改后的标题",
"coverUrl": "https://example.com/cover.jpg",
"status": "under_review"
}
}
6. POST 获取我的作品统计
POST /mls/tool/getMyWorksStats
说明:汇总当前用户全部已发布(status=published)作品的累计互动/观看数据,数据来自 mls_works 表对应字段的 SUM。无 period、includeSeries 等其它入参。需登录。
Body 请求参数
{
"token": "{{token}}"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.token | body | string | 是 | 登录 token(网关注入 uin) |
返回字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| publishedCount | int | 已发布作品数量(status=published) |
| totalLikes | int | 上述作品 likes 累计之和 |
| totalComments | int | 上述作品 comments 累计之和 |
| totalShares | int | 上述作品 shares 累计之和 |
| totalPv | int | 上述作品 pv 累计之和 |
| totalUv | int | 上述作品 uv 累计之和 |
| totalVv | int | 上述作品 vv 累计之和 |
说明:待审核、审核未通过、已下架、已删除的作品不计入本接口统计。
返回示例
{
"flag": 100,
"flagString": "success",
"data": {
"publishedCount": 3,
"totalLikes": 10,
"totalComments": 4,
"totalShares": 6,
"totalPv": 120,
"totalUv": 45,
"totalVv": 80
}
}
7. POST 点赞/取消点赞
POST /mls/tool/likeWorks
说明:对 status=published 的作品点赞或取消点赞。非 published 时的权限与提示见 §3 非 published 作品互动规则。需登录。
Body 请求参数
{
"token": "{{token}}",
"worksId": 18,
"liked": true
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.token | body | string | 是 | 登录 token |
| body.worksId | body | int | 是 | 作品 ID |
| body.liked | body | boolean | 是 | true 点赞,false 取消 |
业务说明
- 点赞(
liked=true):作品须为published;否则非作者返回作品不存在或不可操作,作者返回状态提示(如作品已下架)。 - 取消点赞(
liked=false):若当前用户已有该作品点赞记录且作品未删除,允许取消。
返回示例
{
"flag": 100,
"flagString": "success",
"data": {
"liked": true
}
}
8. POST 我点赞的作品列表
POST /mls/tool/getMyLikedWorksList
Body 请求参数
{
"token": "{{token}}",
"page": 1,
"num": 10
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.token | body | string | 是 | 登录 token |
| body.page | body | int | 否 | 页码,默认 1 |
| body.num | body | int | 否 | 每页条数,默认 15,最大 100 |
返回示例
{
"flag": 100,
"flagString": "success",
"data": [
{
"worksId": 12,
"episodeId": 612,
"uin": 1037,
"worksTitle": "1001-中文",
"languageCode": "multi",
"videoUrl": [
{
"language": "中文",
"url": "http://mls-long.huaguangyun.cn/u/1037/mp4/0x0/mls-1037-1037-9e981e62ae443c058f47b9e076b68319.mp4"
},
{
"language": "英文",
"url": "http://mls-long.huaguangyun.cn/u/1037/mp4/0x0/mls-1037-1037-6879a47844e6f5e13ed58ad6b20966f7.mp4"
}
],
"coverUrl": "https://static-pro.guangdianyun.tv/common/img/eqx.jpg",
"status": "published",
"likeCount": 1,
"commentCount": 0,
"shareCount": 0,
"pv": 10,
"uv": 5,
"vv": 8,
"authorName": "120****5678",
"authorAvatar": ""
}
],
"total": 1
}
9. POST 发表评论
POST /mls/tool/commentWorks
说明:对 status=published 的作品发表评论或回复。非 published 时不允许新增评论;作者本人会收到状态提示,非作者返回 作品不存在或不可操作。规则见 §3 非 published 作品互动规则。需登录。
Body 请求参数
{
"worksId": 19,
"content": "同意",
"parentCommentId": 2, //主评论的id
"replyToUserId": 1037, //回复评论的userId
"token": "{{token}}"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.token | body | string | 是 | 登录 token |
| body.worksId | body | int | 是 | 作品 ID |
| body.content | body | string | 是 | 评论内容,最长 500 字 |
| body.parentCommentId | body | int | 否 | 主评论 ID;不传或 0 表示发主评论 |
| body.replyToUserId | body | int | 否 | 被回复用户 uin(子评论时使用) |
业务说明
- 作品须为
published方可发表评论。 - 非 published:非作者 →
作品不存在或不可操作;作者 →作品审核中/作品审核未通过/作品已下架等。
返回示例
200 Response
{
"flag": 100,
"flagString": "success",
"data": {
"commentId": 3
}
}
10. POST 评论列表
POST /mls/tool/getWorksCommentList
说明:分页查询作品评论。published 作品所有人可查看;非 published 时仅作者本人可查看评论列表,非作者返回 作品不存在或不可操作。规则见 §3 非 published 作品互动规则。
Body 请求参数
{
"token": "{{token}}",
"page": 1,
"num": 10,
"worksId": 19,
"parentCommentId": 2 //不传为获取主评论,传的话则获取子评论
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.worksId | body | int | 是 | 作品 ID |
| body.page | body | int | 否 | 页码,默认 1 |
| body.num | body | int | 否 | 每页条数,默认 10,最大 50 |
| body.parentCommentId | body | int | 否 | 不传或 0 查主评论;传主评论 ID 查子评论 |
| body.token | body | string | 否 | 登录 token;非 published 作品时作者须登录方可查看 |
主评论返回
200 Response
{
"flag": 100,
"flagString": "success",
"data": [
{
"commentId": 2,
"worksId": 19,
"uin": 1037,
"username": "120****5678",
"avatar": "",
"content": "这个视频太棒了",
"createdAt": 1777012247,
"replyCount": 1
}
],
"total": 1
}
子评论返回
200 Response
{
"flag": 100,
"flagString": "success",
"data": [
{
"commentId": 3,
"worksId": 19,
"uin": 1037,
"username": "120****5678",
"avatar": "",
"content": "同意",
"createdAt": 1777012768,
"replyToUin": 1037,
"replyToUsername": "120****5678"
}
],
"total": 1
}
11. POST 删除评论
POST /mls/tool/deleteWorksComment
Body 请求参数
{
"worksId": 19,
"token": "{{token}}",
"commentId": 2
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body | body | object | 是 | none |
返回示例
200 Response
{
"flag": 100,
"flagString": "success"
}
12. POST 作品分享上报
POST /mls/tool/shareMlsWorks
说明:记录作品分享次数。仅 status=published 的作品允许分享;非 published 时的权限与提示见 §3 非 published 作品互动规则。
Body 请求参数
{
"worksId": 19
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.worksId | body | int | 是 | 作品 ID |
| body.token | body | string | 否 | 登录 token(游客可不传) |
说明
- 前端每次触发分享动作后调用一次,后端写入
mls_works_share分享流水。 - 作品须为
published;否则非作者返回作品不存在或不可操作(flag=40401),作者返回状态提示(如作品已下架)。 - 接口支持游客调用:未登录时会以
userId=0记录分享流水。 - 接口限流:同一客户端 1 秒内仅允许写入 1 条分享记录(超限时静默成功,但不会新增流水)。
- 已登录:按用户
uin限流 - 游客:按
IP + User-Agent指纹限流
- 已登录:按用户
返回示例
{
"flag": 100,
"flagString": "success"
}
13. POST 作品浏览/播放上报
POST /mls/tool/reportMlsWorksStat
Body 请求参数
{
"worksId": 19,
"eventType": "pv"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.worksId | body | int | 是 | 作品 ID |
| body.eventType | body | string | 否 | pv 曝光(默认)、vv 播放;仅 pv 时计 UV |
| body.token | body | string | 否 | 登录 token,用于 UV 去重(游客按 IP+UA) |
说明
- 免登录可调用(首页游客);带
token时网关会解析登录用户并注入uin(与shareMlsWorks一致),便于作者在「我的作品」预览本人待审核/未通过/下架作品。 - 仅
status=published的作品对访客累计 pv/vv/uv;作者预览本人非已发布作品时接口返回成功,不计入展示统计,避免污染公开展示数据。 - 非已发布作品且访问者非作者:返回「作品不存在或不可操作」。
- 同一访客对同一作品 1 秒内 重复上报静默成功但不累加。
- 数据写入
mls_works_stat_daily(按日)并同步mls_works累计字段。 - UV:Redis 键
mls:works:uv:{worksId}:{statDate}:{visitorHash},当日首次pv计 1 次 UV。
返回示例
{
"flag": 100,
"flagString": "success"
}
14. POST 获取上传图片凭证(封面上传)
POST /mls/tool/getOssInfo
Body 请求参数
{
"token": "{{token}}"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body | body | object | 是 | none |
返回示例
200 Response{ "flag": 100, "flagString": "success", "data": { "accessid": "Td3t2RJXQVwZtI0wghwRTIe1", "callback": "eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9nZHlvc3MuanN0ZXN0LmFvZGlhbnl1bi5jbi92MS9maWxlL3NldE1zZyIsImNhbGxiYWNrQm9keSI6ImZpbGVuYW1lPSR7b2JqZWN0fVx1MDAyNnNpemU9JHtzaXplfVx1MDAyNm1pbWVUeXBlPSR7bWltZVR5cGV9XHUwMDI2aGVpZ2h0PSR7aW1hZ2VJbmZvLmhlaWdodH1cdTAwMjZ3aWR0aD0ke2ltYWdlSW5mby53aWR0aH0iLCJjYWxsYmFja0JvZHlUeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0=", "dir": "1037/mls/", "expire": 1777433365, "host": "gdyoss.jstest.aodianyun.cn/v1/file/frontUpload?authKey=e22488067969afd2c63f722d5727321&bucket=g-dvr", "policy": "eyJleHBpcmF0aW9uIjoiMjAyNi0wNC0yOVQxMToyODoyNVoiLCJjb25kaXRpb25zIjpbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsMCwxMDQ4NTc2MDAwXSxbInN0YXJ0cy13aXRoIiwiJGtleSIsIjEwMzcvbWxzLyJdXX0=", "signature": "gYLrnvLRu/C0DS8GSJZPqgvDkcU=" } }
15. POST 查询当前有效的积分奖励规则
POST /mls/tool/getMlsWorksRewardRuleList
说明:返回后台已启用且在有效期内配置的积分规则及阶梯,供作品侧展示激励说明。需登录(网关校验 token,未在 NO_TOKEN_CMDS 白名单);业务实现不依赖 uin,可按类型/维度筛选。
Body 请求参数
{
"token": "{{token}}",
"ruleType": 1,
"dimension": 1
}
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body.token | body | string | 是 | 登录 token |
| body.ruleType | body | int | 否 | 规则类型:1 内容传播 2 用户增长 3 活跃留存 |
| body.dimension | body | int | 否 | 内容传播维度:1 播放量(UV) 2 点赞 3 转发 |
返回字段说明(data.list[])
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int | 规则 ID |
| ruleName | string | 规则名称 |
| ruleType | int | 规则类型 |
| ruleTypeName | string | 类型中文名 |
| dimension | int | 关联维度(非内容传播类为 0) |
| dimensionName | string | 维度中文名 |
| validityType | int | 0 长期有效 1 固定时段 |
| validityLabel | string | 有效期展示文案 |
| effectStartTime | int | 生效开始(Unix 秒,长期有效为 0) |
| effectEndTime | int | 生效结束(Unix 秒,长期有效为 0) |
| enable | int | 1 启用 |
| updateTime | int | 最后更新时间 |
| tiers | array | 阶梯列表,项含 threshold、rewardPoints、sortOrder |
业务说明
- 仅
enable = 1且当前时间在有效期内的规则(长期有效或固定时段窗口内)。 - 阶梯按
threshold升序;发奖逻辑与后台mls_points_rule/mls_points_rule_tier一致。
16. POST 查询作品积分奖励未读列表
POST /mls/tool/getMlsWorksRewardNoticeList
说明:查询当前登录用户(创作者)近 3 天内、未读的作品积分激励达标记录,用于任务中心/达标弹窗。需登录(token);uin 由网关根据 token 注入,无需前端传。
Body 请求参数
{
"token": "{{token}}"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body | body | object | 是 | none |
| body.token | body | string | 是 | 登录 token |
返回字段说明(data.list[])
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int | 奖励记录 ID(已读接口使用) |
| uin | int | 创作者 uin |
| worksId | int | 作品 ID |
| episodeId | int | 视频/剧集 ID(与 videoId 相同) |
| videoId | int | 视频 ID |
| ruleId | int | 后台积分规则 ID |
| ruleName | string | 规则名称 |
| ruleType | int | 规则类型:1 内容传播类 |
| dimension | int | 维度:1 播放量(UV) 2 点赞量 3 转发量 |
| dimensionName | string | 维度中文名 |
| threshold | int | 达成门槛 |
| metricValue | int | 达成时指标值 |
| rewardPoints | int | 奖励积分 |
| conditionDesc | string | 达成条件描述,如 播放量(UV)>=1000 |
| achieveTime | int | 达成时间(Unix 秒) |
| isRead | int | 是否已读:0 未读 1 已读 |
| grantStatus | int | 发放状态:0 待发放 1 已发放 2 失败 |
| grantTime | int | 发放完成时间(Unix 秒,未发放为 0) |
业务说明
- 仅返回
is_read = 0且achieve_time在 最近 3 天 内的记录,最多 200 条,按达成时间倒序。 - 播放量维度按作品 UV 统计;达标后写入
mls_works_reward_record,并由后台定时任务消费 Redis 队列发放积分。
返回示例
{
"flag": 100,
"flagString": "success",
"data": {
"list": [
{
"id": 2,
"uin": 1074,
"worksId": 27,
"episodeId": 612,
"videoId": 612,
"ruleId": 1,
"ruleName": "测试转发",
"ruleType": 1,
"dimension": 3,
"dimensionName": "转发量",
"threshold": 10,
"metricValue": 12,
"rewardPoints": 500,
"conditionDesc": "转发量>=10",
"achieveTime": 1779783600,
"isRead": 0,
"grantStatus": 1,
"grantTime": 1779783716
}
]
}
}
17. POST 标记作品积分奖励已读
POST /mls/tool/markMlsWorksRewardRead
说明:将指定奖励记录标记为已读;仅可更新当前用户本人的记录。需登录(token)。
Body 请求参数(单条)
{
"token": "{{token}}",
"id": 2
}
Body 请求参数(批量)
{
"token": "{{token}}",
"ids": [2, 3, 5]
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body | body | object | 是 | none |
| body.token | body | string | 是 | 登录 token |
| body.id | body | int | 否 | 单条记录 ID,与 ids 二选一 |
| body.ids | body | int[] | 否 | 批量记录 ID |
业务说明
id与ids至少传一种;仅更新is_read = 0的记录。- 已读不影响积分发放状态(
grantStatus由后台发奖任务维护)。
返回示例
{
"flag": 100,
"flagString": "success"
}
附录 A:作品接口一览
| 编号 | Tag | 登录 | 说明 |
|---|---|---|---|
| §1 | getWorksFeed | 否 | 首页公开作品流 |
| §2 | publishWorks | 是 | 发布作品 |
| §3 | getMyWorksList | 是 | 我的作品列表 |
| §4 | getMyWorksDetail | 是 | 我的作品详情 |
| §5 | deleteMyWorks | 是 | 删除我的作品 |
| §5.1 | updateMyWorksVisibility | 是 | 修改作品可见性 |
| §5.2 | editMyWorks | 是 | 编辑审核未通过作品并重新提交审核 |
| §6 | getMyWorksStats | 是 | 我的作品统计 |
| §7 | likeWorks | 是 | 点赞/取消 |
| §8 | getMyLikedWorksList | 是 | 我点赞的作品 |
| §9 | commentWorks | 是 | 发表评论 |
| §10 | getWorksCommentList | 否* | 评论列表(非 published 仅作者可看) |
| §11 | deleteWorksComment | 是 | 删除评论 |
| §12 | shareMlsWorks | 否 | 分享上报 |
| §13 | reportMlsWorksStat | 否 | 浏览/播放上报 |
| §14 | getOssInfo | 是 | 封面上传凭证 |
| §15 | getMlsWorksRewardRuleList | 是 | 积分规则列表 |
| §16 | getMlsWorksRewardNoticeList | 是 | 积分奖励未读 |
| §17 | markMlsWorksRewardRead | 是 | 标记奖励已读 |
* getWorksCommentList 未强制 token;非 published 作品时作者须传有效 token 方可查看。
文档同步说明:§2 发布校验已改为按语种 results.status=2 校验(不再要求任务 resStatus=3);§3 补充非 published 互动规则;§7/§9/§10/§12 与线上一致。