feat(抽奖动态): 修复抽奖动态未渲染问题并优化文案展示 fix(用户概览): 修复用户概览无数据显示问题 feat(新用户列表): 在新用户列表显示称号明细 refactor(待办事项): 移除代办模块并全宽展示实时动态 feat(批量操作): 限制为单用户操作并在批量时提醒 fix(称号分配): 防重复分配称号的改造计划 perf(接口性能): 优化新用户和抽奖动态接口性能 feat(订单漏斗): 优化订单转化漏斗指标计算 docs(测试计划): 完善盲盒运营API核查与闭环测试计划
4.6 KiB
范围
-
覆盖活动/期/奖励、随机承诺与抽奖、称号/效果、用户资产(优惠券/道具卡/积分)、用户与公会、商品与轮播、菜单权限。
-
验证管理端鉴权与超管权限;核查风险接口与配置密钥安全。
现状与疑点
-
鉴权:管理端认证路由启用(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 集合)。