仓库里原先没有单独的第三方游戏接口文档(docs/ 下只有财务和在线/注册两份)。这份就是正式文档,顶部先写给前端的对照说明。
所有接口需要后台登录令牌:
Authorization: Bearer <token>
POST 使用 Content-Type: application/json。统一响应:code = 0 成功,业务数据在 data;失败 code != 0,原因在 msg。
图片先调已有上传接口 POST /admin/upload/uploadFile,把返回的 path 写进 logo / logo_pc / logo_h5。
接口路径没变,还是这 5 个:
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /admin/egame/options |
筛选项、大类、平台下拉 |
| GET | /admin/egame/items |
大类 / 平台 / 游戏列表 |
| POST | /admin/egame/update |
新增或修改(含排序、图片、名称) |
| POST | /admin/egame/setStatus |
启用 / 停用 |
| POST | /admin/egame/delete |
不支持删除,返回错误 |
| 设计稿页面 | 请求 |
|---|---|
| 游戏大类 | GET /admin/egame/items?item_type=category |
| 游戏列表(平台,如 JDB / AG) | GET /admin/egame/items?item_type=platform&platform_scope=category |
| 平台修改弹窗 | 用列表行数据回填;保存 POST /admin/egame/update |
| 游戏管理内页(如 JDB 电子) | GET /admin/egame/items?item_type=game&plat_type=jdb |
| 修改游戏(含启用停用) | POST /admin/egame/update,开关也可走 POST /admin/egame/setStatus |
| 筛选下拉 | GET /admin/egame/options |
「序号」前端按分页自己算:(page - 1) * limit + index + 1。
| 设计稿文案 | 接口字段 | 说明 |
|---|---|---|
| 游戏大类 ID | game_type |
固定枚举,不是 1~5 连续号,见下表 |
| 游戏大类名称 | name |
|
| 游戏说明 | description |
本次新增 |
| PC Logo / PC 游戏图片 | logo 或 logo_pc |
两个等价,读的时候两个都会返回 |
| H5/APP Logo / 图片 | logo_h5 |
本次新增 |
| 平台 ID | id |
行主键。不要用稿子里的 FL01 |
| 平台类型 | plat_type |
jdb / mg / pg / ag,小写 |
| 显示名称 / 游戏名称 | name |
列表筛选也用 name |
| 游戏 ID | game_code |
如 JDB001 |
| 支持终端类型 | ingress |
1 电脑网页,2 手机网页,3 电脑/手机网页 |
| 支持终端(文案) | ingress_name |
后端已拼好,列表直接展示 |
| 支持网络 | network |
mainland / hk / kr / jp,不要传中文 |
| 支持网络(文案) | network_name |
大陆 / 香港 / 韩国 / 日本 |
| 启用状态 | status |
1 启用,0 停用 |
| 启用状态(文案) | status_name |
|
| 排序 | sort |
数字越大越靠前 |
| 游戏管理按钮 | has_game_manage |
true 才显示「游戏管理」 |
options 里新增 networks,并改了文案:
statuses:开启/关闭 改为 启用/停用ingress:仅电脑/仅手机/通用 改为 电脑网页/手机网页/电脑/手机网页平台 ID 不用 FL01~FL05
那是稿子里的假编号。同一平台会挂在多个大类下(JDB 电子、JDB 捕鱼),真正唯一的是行 id。平台类型用 plat_type。
游戏大类 ID 不是 1~5
三方约定是:
| game_type | 名称 | | ---: | --- | | 1 | 视讯 | | 2 | 电子 | | 3 | 彩票 | | 4 | 体育 | | 5 | 电竞 | | 6 | 捕鱼 | | 7 | 棋牌 |
稿子里捕鱼写成 3、体育写成 4,对不上。捕鱼是 6,棋牌是 7。请用 game_type,不要自己重排。
保留「彩票」「电竞」两个大类
稿子只画了 5 个。线上目录本身就有 7 个,列表要能展示,筛选也要有。
游戏分类、平台类型不能改
稿子「修改游戏」里这两个是下拉。它们是三方目录主键,改了会对不上。请做成禁用展示,可以回传当前值,改了后端会报 目录标识不允许修改。
排序越大越靠前
和后台其它模块一致。稿子里 1、2、3 只是示意,不要理解成「1 排最前」。改排序只传 { id, sort }。
有子游戏才出「游戏管理」
稿子里 MG、PT 是「修改 --」。请判断 has_game_manage。当前示例:JDB / FG / 开元有游戏,MG / PT 没有。
不能删除
POST /admin/egame/delete 固定失败。停用走开关。
体育大类保持启用
稿子里体育是红开关,那只是在演示开关。正式数据体育是开的。
跑完迁移后,游戏列表靠前能看到:
| 显示名称 | plat_type | 分类 | 终端 | 网络 | 状态 | 游戏管理 |
|---|---|---|---|---|---|---|
| JDB电子 | jdb | 电子 | 电脑/手机网页 | 大陆 | 启用 | 有 |
| MG电子 | mg | 电子 | 电脑/手机网页 | 香港 | 停用 | 无 |
| PT捕鱼 | pt | 捕鱼 | 手机网页 | 韩国 | 启用 | 无 |
| FG捕鱼 | fg | 捕鱼 | 电脑/手机网页 | 日本 | 启用 | 有 |
| 开元棋牌 | ky | 棋牌 | 电脑/手机网页 | 大陆 | 启用 | 有 |
JDB 游戏管理内页:
| 游戏 ID | 名称 | 终端 | 网络 | 状态 |
|---|---|---|---|---|
| JDB001 | JDB夺宝 | 电脑/手机网页 | 大陆 | 启用 |
| JDB002 | JDB招财进宝 | 手机网页 | 香港 | 停用 |
| JDB003 | JDB三国 | 电脑网页 | 大陆 | 停用 |
图片目前是空字符串,列表显示 --。菜单加了 egame/category(游戏大类)、egame/list(游戏列表),挂在「第三方游戏」下面。
/admin/egame/options无参数。
{
"code": 0,
"data": {
"categories": [
{
"id": 1,
"item_type": "category",
"game_type": 1,
"name": "视讯",
"description": "真人视讯游戏",
"logo": "/static/img/game-type/sx.png",
"logo_pc": "/static/img/game-type/sx.png",
"logo_h5": "",
"status": 1,
"sort": 70,
"platform_count": 5,
"game_count": 0
}
],
"platforms": [
{
"id": 20,
"item_type": "platform",
"plat_type": "jdb",
"name": "夺宝",
"platform_scope": "global",
"category_count": 3,
"game_count": 3,
"has_game_manage": true
}
],
"statuses": [
{"value": 1, "label": "启用"},
{"value": 0, "label": "停用"}
],
"ingress": [
{"value": "1", "label": "电脑网页"},
{"value": "2", "label": "手机网页"},
{"value": "3", "label": "电脑/手机网页"}
],
"networks": [
{"value": "mainland", "label": "大陆"},
{"value": "hk", "label": "香港"},
{"value": "kr", "label": "韩国"},
{"value": "jp", "label": "日本"}
]
}
}
下拉请直接用 value / label。categories 给「游戏分类」,platforms 给「平台类型」。
/admin/egame/items| 参数 | 必填 | 说明 |
|---|---|---|
item_type |
否 | category / platform / game |
platform_scope |
否 | 只对平台有效:global 平台总开关,category 平台+大类(游戏列表页用这个) |
plat_type |
否 | 平台代码,游戏管理内页必带 |
game_type |
否 | 大类 |
game_code |
否 | 游戏 ID,精确匹配 |
name |
否 | 显示名称 / 游戏名称,模糊 |
keyword |
否 | 同时模糊 name / plat_type / game_code |
status |
否 | 1 / 0 |
ingress |
否 | 1 / 2 / 3 |
network |
否 | mainland / hk / kr / jp |
page |
否 | 默认 1 |
limit |
否 | 默认 15,最大 200 |
返回 data.total、data.data。
GET /admin/egame/items?item_type=category
主要字段:game_type、name、description、logo / logo_pc、logo_h5、sort、status。
GET /admin/egame/items?item_type=platform&platform_scope=category&game_type=&plat_type=&name=&status=&ingress=&network=&page=1&limit=15
一行是「某个平台在某个大类下」的配置,例如 JDB 电子。
{
"id": 88,
"item_type": "platform",
"platform_scope": "category",
"plat_type": "jdb",
"platform_name": "夺宝",
"game_type": 2,
"game_type_name": "电子",
"name": "JDB电子",
"ingress": "3",
"ingress_name": "电脑/手机网页",
"network": "mainland",
"network_name": "大陆",
"logo": "",
"logo_pc": "",
"logo_h5": "",
"status": 1,
"status_name": "启用",
"sort": 905,
"has_game_manage": true,
"game_count": 3,
"effective_status": 1,
"disabled_by": null
}
has_game_manage === true 时显示「游戏管理」,点进去带上这一行的 plat_type(建议同时带 game_type 做筛选)。
effective_status 是算上父级之后的实际是否可见:大类关了、或平台总开关关了,这里会是 0,disabled_by 为 category / platform / platform_category / game。行上的开关仍绑定 status。
GET /admin/egame/items?item_type=game&plat_type=jdb&game_code=&name=&status=&ingress=&network=
{
"id": 201,
"item_type": "game",
"game_code": "JDB001",
"name": "JDB夺宝",
"plat_type": "jdb",
"platform_name": "夺宝",
"game_type": 2,
"game_type_name": "电子",
"ingress": "3",
"ingress_name": "电脑/手机网页",
"network": "mainland",
"network_name": "大陆",
"logo": "",
"logo_pc": "",
"logo_h5": "",
"sort": 30,
"status": 1,
"status_name": "启用"
}
/admin/egame/update有 id 就是改,没有或 id=0 就是按目录标识新增/补齐。普通修改只传要改的字段即可。
| 参数 | 说明 |
|---|---|
id |
行 ID,修改必传 |
name |
显示名称 / 游戏名称 / 大类名称 |
description |
游戏说明,大类用 |
logo / logo_pc |
PC 图,二选一,都传时用 logo |
logo_h5 |
H5/APP 图 |
ingress |
终端,平台和游戏可改;大类固定为 3 |
network |
网络,平台和游戏可改;大类忽略。传 "" 可清空 |
status |
启用停用 |
sort |
排序 |
item_type / plat_type / game_type / game_code / platform_scope |
目录标识,修改时不要改 |
修改大类示例:
{
"id": 1,
"name": "视讯",
"description": "真人视讯游戏",
"logo_pc": "https://cdn.example.com/sx-pc.png",
"logo_h5": "https://cdn.example.com/sx-h5.png",
"sort": 70,
"status": 1
}
修改平台示例(对应「平台游戏修改」弹窗):
{
"id": 88,
"name": "JDB电子",
"logo_pc": "https://cdn.example.com/jdb-pc.png",
"logo_h5": "https://cdn.example.com/jdb-h5.png"
}
修改游戏示例(对应「修改游戏」,含启用停用):
{
"id": 201,
"name": "JDB夺宝",
"logo_pc": "https://cdn.example.com/jdb001-pc.png",
"logo_h5": "https://cdn.example.com/jdb001-h5.png",
"status": 1
}
改排序只传:
{ "id": 88, "sort": 910 }
成功返回该行最新数据,字段和列表一致。
/admin/egame/setStatus列表开关、修改弹窗里的启用停用都走这里(也可以在 update 里带 status)。
{ "id": 201, "status": 0 }
/admin/egame/delete目录由同步任务维护,不能删。请把状态设为停用。
{ "code": -3, "msg": "第三方游戏目录由同步任务维护,不能删除,请将状态设为关闭" }
| 菜单 | 前端 uri |
|---|---|
| 第三方游戏 | egame |
| 游戏大类 | egame/category |
| 游戏列表 | egame/list |
按钮权限:admin/egame/options、admin/egame/items、admin/egame/update、admin/egame/setStatus、admin/egame/delete。