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

4.6 KiB
Raw Blame History

范围

  • 覆盖活动/期/奖励、随机承诺与抽奖、称号/效果、用户资产(优惠券/道具卡/积分)、用户与公会、商品与轮播、菜单权限。

  • 验证管理端鉴权与超管权限;核查风险接口与配置密钥安全。

现状与疑点

  • 鉴权管理端认证路由启用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/addinternal/router/router.go:121internal/api/admin/users_admin.go:596-616未见配额/用户上限校验(服务层 AddCoupon

  • 道具卡分配:POST /api/admin/users/{user_id}/item_cardsinternal/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_randomGET /.../commit_randomGET /.../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 集合)。