bindbox-game/.trae/documents/盲盒运营API核查与闭环测试计划.md
邹方成 87ad4177b1
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
feat(工作台): 实现管理端工作台接口并优化数据展示
feat(抽奖动态): 修复抽奖动态未渲染问题并优化文案展示
fix(用户概览): 修复用户概览无数据显示问题
feat(新用户列表): 在新用户列表显示称号明细
refactor(待办事项): 移除代办模块并全宽展示实时动态
feat(批量操作): 限制为单用户操作并在批量时提醒
fix(称号分配): 防重复分配称号的改造计划
perf(接口性能): 优化新用户和抽奖动态接口性能
feat(订单漏斗): 优化订单转化漏斗指标计算
docs(测试计划): 完善盲盒运营API核查与闭环测试计划
2025-11-16 14:00:29 +08:00

92 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 范围
* 覆盖活动/期/奖励、随机承诺与抽奖、称号/效果、用户资产(优惠券/道具卡/积分)、用户与公会、商品与轮播、菜单权限。
* 验证管理端鉴权与超管权限;核查风险接口与配置密钥安全。
## 现状与疑点
* 鉴权管理端认证路由启用internal/router/router.go:58-66但存在非鉴权初始化接口seed\_default、ensure\_titles—需确认是否保留。
* 活动列表(管理端):未提供 `GET /api/admin/activities` 列表;前端使用 APP 端 `GET /api/app/activities` 作为数据源web/admin/src/api/activity.ts:31
* 优惠券发放:`POST /api/admin/users/{user_id}/coupons/add`internal/router/router.go:121internal/api/admin/users\_admin.go:596-616未见配额/用户上限校验(服务层 AddCoupon
* 道具卡分配:`POST /api/admin/users/{user_id}/item_cards`internal/api/admin/item\_cards\_admin.go:355-376仅超管限制但无用户上限与批量安全边界服务层 AddItemCard
* 称号效果:后端对 `params_json` 仅做非空internal/api/admin/titles\_admin.go:173-213,221-277运行期解析失败会静默忽略internal/service/activity/draw\_with\_effects.go:104-149
* 抽奖随机HMAC与拒绝采样实现正确internal/service/activity/random\_commit.go:70-81draw\_execute.go:43-51,131-145主密钥明文在配置configs/fat\_configs.toml:32
## 缺口清单(可能不足)
* 管理端活动列表与搜索:缺 `GET /api/admin/activities`;当前运维依赖 APP 列表接口,可能不满足运营筛选需求。
* 优惠券/道具卡风控:缺配额扣减、用户持有上限、幂等与审计日志;易被滥用。
* 称号效果参数校验:缺严格模式与数值边界;配置易失真或异常。
* 安全非鉴权初始化接口seed/ensure在生产不宜暴露密钥应迁移到环境变量。
## 闭环测试计划(管理端)
* 登录鉴权
* `POST /api/admin/login` 使用后台账号 `admin / chat2025` 拿到 `Authorization`
* 活动与期
* 创建活动:`POST /api/admin/activities`;创建期:`POST /api/admin/activities/{id}/issues`
* 配置奖励:`POST /api/admin/activities/{id}/issues/{issue}/rewards`
* 随机承诺:`POST /.../commit_random``GET /.../commit_random``GET /.../commit_random/history`
* 抽奖执行与验证
* 执行抽奖APP鉴权`POST /api/app/activities/{id}/issues/{issue}/draw`需APP用户token
* 管理端批量抽取(运营回归):`POST /api/admin/activities/{id}/issues/{issue}/batch_draw`
* 抽奖收据验证:`POST /api/admin/activities/{id}/issues/{issue}/verify_draw`;查看收据:`GET /api/admin/draw_receipts/{draw_id}`
* 称号与效果type=5/6
* 创建称号:`POST /api/admin/system_titles`;添加效果:`POST /api/admin/system_titles/{title_id}/effects`(参数按文档模式)。
* 分配用户称号:`POST /api/admin/users/{user_id}/titles`,设置有效期(确保“只取最新激活”策略)。
* 在指定期抽奖,核查“概率加成”权重调整与“双倍概率”翻倍命中(查看批量抽取统计)。
* 用户资产
* 发放优惠券:`POST /api/admin/users/{user_id}/coupons/add`;查询用户券:`GET /api/admin/users/{user_id}/coupons`
* 分配道具卡:`POST /api/admin/users/{user_id}/item_cards`;查询卡列表:`GET /api/admin/users/{user_id}/item_cards`
* 添加积分:`POST /api/admin/users/{user_id}/points/add`;查询积分与余额:`GET /api/admin/users/{user_id}/points``/points/balance`
* 安全回归
* 非鉴权路由只保留登录;其他改动接口需 `Authorization`
* 校验后台超管限制(优惠券发放/道具卡分配),普通管理员应被拒绝。
## 缺陷验证点
* 称号效果参数错误时应返回 400当前静默忽略的路径需提示
* 优惠券发放应拒绝过期模板与总量耗尽;道具卡发放应限制批量与用户持有上限。
* 抽奖随机性验证:同一承诺版本重复验证一致;拒绝采样不产生取模偏差。
## 交付
* 提供接口调用序列与测试数据清单(活动/期/奖励/称号/效果参数/指定用户)。
* 输出问题清单与修复建议(接口、权限、风控、参数校验、密钥安全)。
* 可选:生成 Postman/HTTPie 脚本或后端集成测试go test便于自动化回归。
确认后,我将按以上计划执行闭环测试,汇总问题与修复建议,并提供测试脚本(不使用 curl 的情况下可采用内置工具或 Postman 集合)。