## 范围

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

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

## 现状与疑点

* 鉴权：管理端认证路由启用（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:121；internal/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-81；draw\_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 集合）。
