refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
2.7 KiB
2.7 KiB
检查项
- 路由与前端:确认管理端生成/摘要接口使用活动级路径
- 生成:
POST /api/admin/activities/:activity_id/commitment/generate - 摘要:
GET /api/admin/activities/:activity_id/commitment/summary - 前端 API 指向上述路径(不是旧的
/ichiban/...)
- 生成:
- 数据迁移:核实
activities已存在承诺字段(algo/seed_master/seed_hash/state_version/items_root)且成功执行 - 服务实现:检查 ActivityCommitmentService
- 生成:写入
seed_master、seed_hash、state_version;当前 items_root 为 NULL,需要按最新设计计算 - 摘要:从
activities读取版本与算法,has_seed通过LENGTH(seed_master)判断
- 生成:写入
- 策略消费:一番赏映射读取活动承诺种子(非期级表),若缺承诺返回明确错误
修正与实现(不兼容旧期级)
- 计算并写入
commitment_items_root- 规则:对活动下各期的奖励配置,按每个奖励的
original_qty构造 slots 数组(长度为 N),计算items_root = SHA256(JSON(slots)) - 写入
activities.commitment_items_root,用于事后验证映射根 - 版本递增:每次生成承诺
state_version+1
- 规则:对活动下各期的奖励配置,按每个奖励的
- 一番赏映射页承诺校验
- 进入列表或详情时检查活动承诺存在(
has_seed=true);无承诺返回“请在活动管理生成承诺”提示
- 进入列表或详情时检查活动承诺存在(
- 活动管理显示
- 活动列表新增“承诺版本”列(已加),确保加载摘要后填充版本
- 活动编辑弹窗顶部承诺信息卡片(已加),显示
seed_version/algo/状态
验证流程
- 生成承诺后,确认
activities中:LENGTH(commitment_seed_master)=32、LENGTH(commitment_seed_hash)=32commitment_state_version递增LENGTH(commitment_items_root)>0
- 前端列表显示版本值;映射页顶部显示活动承诺版本
- 并发占位与映射不变:种子存在即可按位置开奖;缺承诺时前端/后端均提示
接口与 curl
- 生成:
curl -X POST 'http://127.0.0.1:9991/api/admin/activities/<id>/commitment/generate' -H 'Authorization: Bearer TOKEN' - 摘要:
curl 'http://127.0.0.1:9991/api/admin/activities/<id>/commitment/summary' -H 'Authorization: Bearer TOKEN' - DB 校验:
SELECT LENGTH(commitment_seed_master), LENGTH(commitment_seed_hash), LENGTH(commitment_items_root), commitment_state_version FROM activities WHERE id=<id>;
交付修改点
- 后端:完善 ActivityCommitmentService 的 items_root 计算与写入(活动维度)
- 前端:确保活动列表与编辑对话框显示承诺;映射页在无承诺时给出指导提示
说明
- 全量切换到活动级承诺;不读取旧
issue_random_commitments - 保持统一接口与策略,后续抽奖逻辑统一使用活动承诺