01 · Quick start
先把共性约定对齐
页面初始化时并行加载系统人群和计划列表;所有写操作完成后,以接口结果或重新查询的数据为准。
基础域名、鉴权头、统一响应包裹/错误码,以及 HTTP JSON 枚举使用数字还是协议字符串。下文同时标注枚举数字与协议名,不代替项目网关约定。
02 · Integration flow
按业务动作组织调用
切换标签查看每条主流程。中间状态由系统自动推进,前端不自行推断终态。
03 · Endpoint reference
接口详解
接口卡片默认收起,展开后可查看字段、最小请求示例与前端处理重点。
GETOfflinePushTopicList
/admin.admin.v1.lobby.Message/OfflinePushTopicList
请求与响应
| 方向 | 字段 | 说明 |
|---|---|---|
| 请求 | 无业务参数 | 页面初始化时调用 |
| 响应 | list[].topic | 系统人群枚举 |
| 响应 | name / description | 优先直接用于下拉文案 |
| 响应 | available | 实时可用状态,不在前端硬编码 |
| 响应 | unavailable_reason | 禁用项的解释文案 |
- 与计划列表并行请求,减少首屏等待。
- 不可用项保留可见、禁用选择,并展示原因。
{
"list": [
{
"topic": 1,
"name": "接口返回的人群名称",
"description": "接口返回的人群说明",
"available": false,
"unavailable_reason": "接口返回的不可用原因"
}
]
}GETOfflinePushList
/admin.admin.v1.lobby.Message/OfflinePushList
查询字段
| 字段 | 要求 | 用途 |
|---|---|---|
page | 必传,≥ 1 | 页码 |
page_size | 必传,1–100 | 建议初始值 20 |
name | 可选 | 计划名称模糊查询 |
status | 可选,1–7 | 计划状态 |
job_status | 可选,1–7 | 远端投递状态 |
topic | 可选,1–5 | 系统人群 |
operator_id | 可选 | 创建管理员 |
create_time_start / end | Unix 秒 | 同时存在时 start ≤ end |
- 排序固定为
add_time DESC, id DESC。 - 前端固定传合法分页值,不依赖服务端回退。
- 站点由请求上下文隔离,请求体不传
game_app_id。
GET .../OfflinePushList
?page=1
&page_size=20
&status=2{
"list": [{
"id": 1001,
"version": 1,
"name": "示例计划",
"status": 2,
"message_job_id": 0,
"total_count": 0,
"accepted_count": 0,
"failed_count": 0
}],
"total": 1
}POSTOfflinePushSubmits
/admin.admin.v1.lobby.Message/OfflinePushSubmits
三类操作共用一次提交
| 数组 | 身份字段 | 关键约束 |
|---|---|---|
add_rows | id = 0version = 0 | 创建立即或定时计划 |
edit_rows | id > 0version > 0 | 仅当前 SCHEDULED 版本;必须保持定时 |
delete_rows | id > 0version > 0 | 仅当前 SCHEDULED 版本;reason 必填;保留台账 |
- 每个数组最多 100 行;同批次中单行失败不回滚已完成的其他行。
- 按返回的
index映射原始行;message为空表示成功。 - 成功项的
id为计划 ID,extra为biz_id。
{
"add_rows": [{
"id": 0,
"version": 0,
"name": "示例计划",
"topic": 1,
"title": "示例通知标题",
"subtitle": "示例通知副标题",
"badge": 0,
"keys": {
"entry_type": 0,
"jump_type": 0,
"jump_link": "",
"game_play": 0
},
"execute_at": 0
}],
"edit_rows": [],
"delete_rows": []
}分别遍历 add_result、edit_result、delete_result;按 index 给每行展示成功或错误信息。
POSTOfflinePushRetry
/admin.admin.v1.lobby.Message/OfflinePushRetry
调用条件
| 字段/条件 | 要求 |
|---|---|
id | 必传,计划 ID |
version | 必传,当前版本 |
status | 必须为 FAILED |
message_job_id | 必须为 0 |
- 使用响应中的最新
plan局部替换列表行。 - 重试后可能进入调度中、等待调度或已提交。
- 延迟超过 30 分钟的计划可能转为 EXPIRED。
{
"id": 1001,
"version": 3
}{
"plan": {
"id": 1001,
"version": 4,
"status": 3,
"message_job_id": 0
}
}GETOfflinePushTargetList
/admin.admin.v1.lobby.Message/OfflinePushTargetList
查询字段
| 字段 | 要求 | 说明 |
|---|---|---|
plan_id | 必传 | 传计划 ID,不直接传 Push Job ID |
status | 可选,1–4 | 设备投递状态筛选 |
page | 必传,≥ 1 | 页码 |
page_size | 必传,1–100 | 每页数量 |
- 仅在
message_job_id > 0时展示入口。 - 尚未关联 Job 时显示“投递明细暂不可查”,不发起请求。
- 设备 token 只展示脱敏后缀
token_suffix。
GET .../OfflinePushTargetList
?plan_id=1001
&status=3
&page=1
&page_size=20{
"list": [{
"token_suffix": "脱敏后缀",
"status": 3
}],
"total": 1
}04 · Data dictionary
字段与枚举速查
输入协议名、数字或中文含义即可过滤。系统人群的实时可用性始终以接口响应为准。
计划状态
OfflinePushPlanStatusJob 状态
PushJobStatus设备状态
PushTargetStatus系统人群
PushSystemTopic入口类型
GameActivityEntryType跳转类型
GameActivityJumpType玩法
GameActivityGamePlay05 · UI reference
把接口条件直接映射到交互
右侧为可切换的界面结构参考;它表达信息层级与操作条件,不代表线上业务数据。
接口返回的人群定时 · Unix 秒通知标题
通知副标题SCHEDULED编辑取消
接口返回的人群立即发送通知标题
通知副标题FAILED重试
定时至少晚于当前时间 5 秒;badge 未设置与 0 必须区分。
行操作权限矩阵
| 条件 | 编辑 | 取消 | 重试 | 明细 |
|---|---|---|---|---|
SCHEDULED | 显示 | 显示 | 隐藏 | 通常隐藏 |
FAILED 且 job id = 0 | 隐藏 | 隐藏 | 显示 | 隐藏 |
message_job_id > 0 | 隐藏 | 隐藏 | 隐藏 | 显示 |
| 其他状态 | 隐藏/禁用 | 隐藏/禁用 | 隐藏 | 按关联决定 |
表单联动
entry_type = NONE清空并禁用跳转类型、跳转目标和玩法。
GAMEPLAY只显示并要求选择 game_play。
TOURNAMENT固定赛事跳转,要求 jump_link,清空玩法。
ACTIVITY要求非 NONE 的 jump_type,清空玩法。
jump_type = H5jump_link 必须是完整 http/https URL。
REGISTERED_USERS强制赛事入口与赛事跳转;jump_link 非空且不超过 128 字符。
06 · Failure strategy
错误、并发与状态反馈
把可预防的错误挡在表单,把不可预测的冲突交给重新读取后的真实状态。
表单无效前置校验时间、必填项与跳转联动;保留用户输入,定位到具体字段。
version 冲突提示“数据已更新,请确认后重试”;关闭编辑态或保留草稿,重新拉取当前行。
批量部分成功分别遍历三类结果,以 index 回填;成功行及时确认,失败行保留内容和错误。
依赖不可用展示可恢复错误并允许稍后重试;不自动高频重试。
设备明细尚不可查当 message_job_id 为 0 时隐藏入口,或给出明确空状态,不发起无效请求。
技术错误详情last_error 在详情内可复制展示;列表仅给中文概括,job_failure_summary 按脱敏摘要展示。
07 · Joint testing
联调检查单
覆盖主流程、边界条件与前端反馈,避免只验证“请求能通”。