1.优化接口/api/v1/getPlayerGameRecord
2.增加接口日志记录接口request和response
This commit is contained in:
@@ -352,12 +352,10 @@ auth-token: {authtoken}
|
||||
- `auth-token: {authtoken}`
|
||||
- Body 参数:
|
||||
- `username`(可选):玩家账号;不传则**不按玩家筛选**(返回库内符合条件的记录,请谨慎使用)
|
||||
- `start_create_time`(可选):创建时间下限,与表字段 `create_time` 比较(`>=`);不传则不限制
|
||||
- `end_create_time`(可选):创建时间上限(`<=`);不传则不限制
|
||||
- `page`(可选):页码,默认 `1`,小于 `1` 时按 `1` 处理
|
||||
- `limit`(可选):每页条数,默认 `20`;若小于 `1` 或大于 `100` 则按 `20` 处理
|
||||
- `start_create_time`(可选)、`end_create_time`(可选):与表字段 `create_time` 比较;**仅允许落在「当前时间起向前 7 天」内**,且两者跨度**不得超过 7 天**;均不传时服务端默认查询该 7 天窗口。`end_create_time` 晚于当前时间时按当前时间截断;不满足规则时返回参数错误。
|
||||
- `limit`(可选):返回条数上限,默认 `20`;若小于 `1` 或大于 `2000` 则按 `20` 处理
|
||||
- 返回说明:
|
||||
- 成功时 `data` 为**数组**(当前页记录列表),每条为 `dice_play_record` 行数据,并附带 `dice_player`:`{ id, username, phone }`(若批量关联不到则为 `null`)
|
||||
- 成功时 `data` 为**数组**(按 `id` 倒序,最多 `limit` 条),每条为 `dice_play_record` 行数据,并附带 `dice_player`:`{ id, username, phone }`(若批量关联不到则为 `null`)
|
||||
- 若传了 `username` 且玩家不存在:`data` 为空数组 `[]`
|
||||
|
||||
记录主要字段(与库表一致,节选):`id`、`player_id`、`admin_id`、`lottery_config_id`、`lottery_type`、`ante`、`paid_amount`、`is_win`、`win_coin`、`super_win_coin`、`reward_win_coin`、`use_coins`、`direction`、`reward_tier`、`lottery_id`、`start_index`、`target_index`、`roll_array`、`roll_number`、`lottery_name`、`status`、`create_time`、`update_time` 等。
|
||||
@@ -436,7 +434,7 @@ auth-token: {authtoken}
|
||||
- Body 参数:
|
||||
- `username`(可选):玩家账号;不传则**不按玩家筛选**
|
||||
- `start_create_time`、`end_create_time`(可选):同 `getPlayerGameRecord`,作用于 `create_time`
|
||||
- `page`、`limit`(可选):分页规则同上
|
||||
- `limit`(可选):条数规则同 `getPlayerGameRecord`
|
||||
- 返回说明:
|
||||
- 成功时 `data` 为数组;每条为 `dice_player_wallet_record` 数据,并含关联 `dice_player`(`id, username, phone`)
|
||||
- 若传了 `username` 且玩家不存在:`data` 为空数组 `[]`
|
||||
@@ -448,7 +446,7 @@ auth-token: {authtoken}
|
||||
- 路径: `POST /api/v1/getPlayerTicketRecord`
|
||||
- Header:
|
||||
- `auth-token: {authtoken}`
|
||||
- Body 参数:与 **7.4** 相同(`username`、`start_create_time`、`end_create_time`、`page`、`limit`)
|
||||
- Body 参数:与 **7.4** 相同(`username`、`start_create_time`、`end_create_time`、`limit`)
|
||||
- 返回说明:
|
||||
- 成功时 `data` 为 `dice_player_ticket_record` 列表,含关联 `dice_player`
|
||||
- 若传了 `username` 且玩家不存在:`data` 为空数组 `[]`
|
||||
@@ -587,7 +585,6 @@ curl --location --request POST 'https://{your-domain}/api/v1/getPlayerGameRecord
|
||||
--header 'auth-token: {authtoken}' \
|
||||
--data-raw '{
|
||||
"username":"test_player_001",
|
||||
"page":1,
|
||||
"limit":20
|
||||
}'
|
||||
```
|
||||
@@ -600,7 +597,6 @@ curl --location --request POST 'https://{your-domain}/api/v1/getPlayerWalletReco
|
||||
--header 'auth-token: {authtoken}' \
|
||||
--data-raw '{
|
||||
"username":"test_player_001",
|
||||
"page":1,
|
||||
"limit":20
|
||||
}'
|
||||
```
|
||||
@@ -613,7 +609,6 @@ curl --location --request POST 'https://{your-domain}/api/v1/getPlayerTicketReco
|
||||
--header 'auth-token: {authtoken}' \
|
||||
--data-raw '{
|
||||
"username":"test_player_001",
|
||||
"page":1,
|
||||
"limit":20
|
||||
}'
|
||||
```
|
||||
|
||||
@@ -352,12 +352,10 @@ An independent endpoint is provided: `POST /api/v1/getGameList`, supporting both
|
||||
- `auth-token: {authtoken}`
|
||||
- Body parameters:
|
||||
- `username` (optional): Player username; if omitted, **no player filter** is applied (returns matching rows from the database—use with care)
|
||||
- `start_create_time` (optional): Lower bound on `create_time` (`>=`); if omitted, no lower bound
|
||||
- `end_create_time` (optional): Upper bound on `create_time` (`<=`); if omitted, no upper bound
|
||||
- `page` (optional): Page number, default `1`; values less than `1` are treated as `1`
|
||||
- `limit` (optional): Page size, default `20`; if less than `1` or greater than `100`, it is treated as `20`
|
||||
- `start_create_time` (optional), `end_create_time` (optional): Filter on `create_time`. Queries are **restricted to the rolling 7-day window ending at server “now”**, and the span between the two bounds **must not exceed 7 days**. If both are omitted, the server defaults to that full 7-day window. If `end_create_time` is after “now”, it is truncated to “now”. Invalid ranges return a parameter error.
|
||||
- `limit` (optional): Maximum number of rows to return, default `20`; if less than `1` or greater than `2000`, it is treated as `20`
|
||||
- Response notes:
|
||||
- On success, `data` is an **array** (current page). Each item is a `dice_play_record` row plus `dice_player`: `{ id, username, phone }` (or `null` if the player cannot be resolved)
|
||||
- On success, `data` is an **array** (ordered by `id` descending, at most `limit` rows). Each item is a `dice_play_record` row plus `dice_player`: `{ id, username, phone }` (or `null` if the player cannot be resolved)
|
||||
- If `username` is provided but the player does not exist: `data` is an empty array `[]`
|
||||
|
||||
Main fields (same as table columns, partial list): `id`, `player_id`, `admin_id`, `lottery_config_id`, `lottery_type`, `ante`, `paid_amount`, `is_win`, `win_coin`, `super_win_coin`, `reward_win_coin`, `use_coins`, `direction`, `reward_tier`, `lottery_id`, `start_index`, `target_index`, `roll_array`, `roll_number`, `lottery_name`, `status`, `create_time`, `update_time`, etc.
|
||||
@@ -436,7 +434,7 @@ If the integrator’s wallet flow requires “return lobby URL after transfer”
|
||||
- Body parameters:
|
||||
- `username` (optional): Player username; if omitted, **no player filter** is applied
|
||||
- `start_create_time`, `end_create_time` (optional): Same as `getPlayerGameRecord`, applied to `create_time`
|
||||
- `page`, `limit` (optional): Same pagination rules as above
|
||||
- `limit` (optional): Same rules as `getPlayerGameRecord`
|
||||
- Response notes:
|
||||
- On success, `data` is an array of `dice_player_wallet_record` rows with related `dice_player` (`id`, `username`, `phone`)
|
||||
- If `username` is provided but the player does not exist: `data` is an empty array `[]`
|
||||
@@ -448,7 +446,7 @@ If the integrator’s wallet flow requires “return lobby URL after transfer”
|
||||
- Path: `POST /api/v1/getPlayerTicketRecord`
|
||||
- Header:
|
||||
- `auth-token: {authtoken}`
|
||||
- Body parameters: Same as **7.4** (`username`, `start_create_time`, `end_create_time`, `page`, `limit`)
|
||||
- Body parameters: Same as **7.4** (`username`, `start_create_time`, `end_create_time`, `limit`)
|
||||
- Response notes:
|
||||
- On success, `data` is a list of `dice_player_ticket_record` rows with related `dice_player`
|
||||
- If `username` is provided but the player does not exist: `data` is an empty array `[]`
|
||||
@@ -587,7 +585,6 @@ curl --location --request POST 'https://{your-domain}/api/v1/getPlayerGameRecord
|
||||
--header 'auth-token: {authtoken}' \
|
||||
--data-raw '{
|
||||
"username":"test_player_001",
|
||||
"page":1,
|
||||
"limit":20
|
||||
}'
|
||||
```
|
||||
@@ -600,7 +597,6 @@ curl --location --request POST 'https://{your-domain}/api/v1/getPlayerWalletReco
|
||||
--header 'auth-token: {authtoken}' \
|
||||
--data-raw '{
|
||||
"username":"test_player_001",
|
||||
"page":1,
|
||||
"limit":20
|
||||
}'
|
||||
```
|
||||
@@ -613,7 +609,6 @@ curl --location --request POST 'https://{your-domain}/api/v1/getPlayerTicketReco
|
||||
--header 'auth-token: {authtoken}' \
|
||||
--data-raw '{
|
||||
"username":"test_player_001",
|
||||
"page":1,
|
||||
"limit":20
|
||||
}'
|
||||
```
|
||||
|
||||
@@ -142,7 +142,7 @@ Endpoints like "get player game record" or wallet histories can easily trigger N
|
||||
|
||||
- Use `whereIn('player_id', $playerIds)` instead of one query per player.
|
||||
- Use eager loading (`with(['dicePlayer'])`) for related player info.
|
||||
- Keep page size (`limit`) moderate (for example, 100 rows or less per page).
|
||||
- Keep `limit` reasonable for load (default `20`, maximum `2000`; records are always scoped to a rolling 7-day window).
|
||||
|
||||
### 4.4 Redis vs DB coordination
|
||||
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
|
||||
- 使用 `whereIn('player_id', $playerIds)` 做批量查询;
|
||||
- 使用 `with(['dicePlayer'])` 或 join 预加载关联的玩家信息;
|
||||
- 控制单页 `limit`,例如不超过 100 条。
|
||||
- 控制 `limit` 以兼顾负载(默认 `20`,上限 `2000`;接口已固定为「最近 7 天」时间窗)。
|
||||
|
||||
### 4.4 Redis 与 DB 的整体协同
|
||||
|
||||
|
||||
Reference in New Issue
Block a user