first commit

This commit is contained in:
ray zhou
2026-05-21 18:16:26 +08:00
commit 033aa0ae69
324 changed files with 24705 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
---
name: status 返回 help
overview: 在 Free Credits C 端 status 接口(及 claim 同源 buildStatus中增加 help 字段,读取活动配置表 recharge_gift_config.help供问号说明弹窗等展示status=-1 仍不返回 help。
todos:
- id: build-status-help
content: FreeCreditsLogic::buildStatus 增加 help 字段(读 config->help
status: completed
- id: update-phpdoc
content: FreeCreditsController::status PHPDoc 补充 help 说明
status: completed
- id: unit-test-help
content: FreeCreditsClientStatusTest 白名单与透传断言
status: completed
isProject: false
---
# status 接口增加 help 返回
## 目标
`GET /api/free-credits/status`(以及 `claim` 成功后的同源响应)在 `status !== -1` 时增加 **`help`string**,内容来自运营在后台活动编辑里填写的 **「帮助说明」**[`recharge_gift_config.help`](slot_console/app/model/common/RechargeGiftConfigModel.php))。
`status === -1` 时保持仅 `{ "status": -1 }`,不附带 help。
## 改动点
### 1. [`FreeCreditsLogic::buildStatus()`](slot_console/app/api/logic/FreeCreditsLogic.php)
在现有返回数组中增加:
```php
'help' => is_null($config) ? '' : strval($config->help ?? ''),
```
- `buildStatus` 已接收 `$config``activeConfig` 查出的 type=11 活动行),无需额外查库。
- 不做 §8 模板占位符替换轻量方案C 端可用已有 `frozen_amount` / `recharge_unlock_amount` / `first_cash_amount` 自行替换,或原样展示运营配置的富文本/多行文案。
### 2. [`FreeCreditsController`](slot_console/app/api/controller/FreeCreditsController.php) PHPDoc
`status` 方法成功字段列表中补充:
- `help` (string) 活动规则说明,来自后台「帮助说明」
### 3. 单测 [`FreeCreditsClientStatusTest`](slot_console/tests/Unit/FreeCreditsClientStatusTest.php)
- `PLAYER_TOP_KEYS` 增加 `help`
- 用例:`FreeCreditsConfigStub` 设置 `help` 属性,`assertSame` 透传
## 数据流
```mermaid
flowchart LR
admin[slot_admin 活动编辑 help 文本框]
db[(recharge_gift_config.help)]
logic[buildStatus]
api["/api/free-credits/status"]
admin --> db --> logic --> api
```
## 验收
- 后台 type=11 活动填写「帮助说明」并保存后,已参加用户 `status` 响应含相同 `help` 字符串
- `status=-1` 响应无 `help` 字段
- 单元测试通过;`claim` 返回结构同步含 `help`(复用 `buildStatus`
## 不在本次范围
- `ext_config` 独立说明模板、动态金额替换服务端拼装
- `banner_image` 透出(如需可另开)
- 前端问号弹窗 UI