v1.0.0 (2026-08-15 18:56)
个人报表 (Personal Report)
接口说明
- 说明: 查询用户的充提流水记录以及各大游戏场馆的详细游戏注单(胜负报表)。
底层业务逻辑与说明 (Business Logic)
TIP
个人报表的底层设计采用了读写分离及反爬虫安全设计:
- 查询分离:充值和提现历史记录不查询 MySQL,而是直接从 Elasticsearch (
wg_deposit,wg_withdraw) 获取,能够支撑高并发访问。 - 精度还原:ES 中为了避免浮点精度丢失,金额是以
* 100000的整数形式存储。后端接口在返回给前端前,必须统一切割(/ 100000)还原。 - 加密传输:游戏注单查询 (
/api/finance/report/games) 中,前端提交的场馆名 (gamename) 和类型 (gamegenr) 必须是经过Sha256Lib加密后的密文,后端必须先decrypt解密才能发起查询,用于防止批量爬虫攻击。
1. GET - 获取充值记录
- 路径:
/api/finance/report/deposit - 说明: 分页从 ES 获取充值历史。
请求头
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
Authorization | String | 是 | Bearer Token |
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
page | Integer | 否 | 页码,默认 1 |
limit | Integer | 否 | 每页数量,默认 15 |
返回示例
json
{
"code": 0,
"msg": "获取成功",
"data": {
"list": [
{
"amount": 100.00, // 从 ES 取出后已执行 / 100000
"status": "Success",
"applied_time": "2026-11-22 14:00:00"
}
],
"total": 1
}
}2. GET - 获取提现记录
- 路径:
/api/finance/report/withdraw - 说明: 分页从 ES 获取提现历史。
请求头
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
Authorization | String | 是 | Bearer Token |
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
page | Integer | 否 | 页码,默认 1 |
limit | Integer | 否 | 每页数量,默认 15 |
返回示例
json
{
"code": 0,
"msg": "获取成功",
"data": {
"list": [],
"total": 0
}
}3. GET - 获取游戏注单报表
- 路径:
/api/finance/report/games - 说明: 检索具体场馆的游戏打码及输赢情况。
请求头
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
Authorization | String | 是 | Bearer Token |
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
date1 | String | 是 | 开始日期 (Y-m-d) |
date2 | String | 是 | 结束日期 (Y-m-d) |
gamename | String | 是 | 游戏/场馆名称 (经过 Sha256 加密的密文) |
gamecode | String | 是 | 游戏代码 (经过 Sha256 加密的密文) |
gamegenr | String | 是 | 游戏分类 ID (经过 Sha256 加密的密文) |
返回示例
json
{
"code": 0,
"msg": "获取成功",
"data": [
{
"datetime": "2026-11-22 14:00:00",
"gamename": "Slot A",
"turnover": "100.00",
"win": "50.00",
"winlose": "-50.00"
}
]
}