All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m55s
3.1 KiB
3.1 KiB
ADDED Requirements
Requirement: 价格配置状态与原始值分离
系统 MUST 同时保存套餐价格的原始配置值和价格配置状态,且 MUST 区分以下三种语义:未配置、赠送 0、已配置为非 0。普通可售套餐 MUST NOT 显式配置 0 作为售卖价,0 仅可用于赠送语义。配置页与编辑页 SHALL 展示原始值,不能用生效价覆盖原始值。
Scenario: 未配置价格与 0 价必须可区分
- WHEN 管理员创建两个套餐,一个建议零售价未配置,一个已被标记为赠送且建议零售价显式配置为 0
- THEN 系统 MUST 为两者保存不同的价格配置状态
- THEN 系统 MUST NOT 仅依赖数值 0 判断价格是否已配置
Scenario: 普通可售套餐显式 0 被拒绝
- WHEN 管理员创建或编辑一个普通可售套餐,并将建议零售价填写为 0
- THEN 系统 MUST 拒绝保存
- THEN 系统 MUST 返回普通可售套餐不允许显式 0 的错误
Scenario: 配置页展示原始值
- WHEN 管理员进入套餐详情或编辑页
- THEN 页面 SHALL 展示原始建议成本价和原始建议零售价
Requirement: 普通可售套餐的生效售价回退
系统 SHALL 对普通可售套餐计算生效售价。若建议零售价未配置,生效售价 MUST 回退为成本价。该规则 MUST 适用于后台采购、C 端展示与下单、自动购包以及所有依赖套餐成交价的链路。
Scenario: 建议零售价未配置时回退到成本价
- WHEN 普通可售套餐的建议零售价未配置,成本价为 8000 分
- THEN 系统返回的生效售价 MUST 为 8000 分
Scenario: 建议零售价已配置时保持原值
- WHEN 普通可售套餐的建议零售价已配置为 12000 分,成本价为 8000 分
- THEN 系统返回的生效售价 MUST 为 12000 分
Requirement: 历史数据回填与迁移
系统 MUST 对存量套餐、分配记录和订单相关价格快照执行迁移回填,补齐价格配置状态和生效价字段。迁移后,只有能被正向识别为赠送 0 的记录才保留为赠送 0,其余历史 0 数据 MUST 转为未配置并进入人工复核清单。
Scenario: 存量未配置价格被回填为未配置状态
- WHEN 迁移执行前某套餐历史上从未配置过建议零售价
- THEN 迁移后该套餐 MUST 保持未配置状态
- THEN 其生效售价 MUST 按成本价回填
Scenario: 正向识别的赠送 0 被保留
- WHEN 迁移执行前某套餐的建议零售价为 0,且历史记录能明确证明其为赠送语义
- THEN 迁移后系统 MUST 保留赠送 0 状态
Scenario: 模糊旧 0 转为未配置并进入人工复核
- WHEN 迁移执行前某套餐的建议零售价为 0,但历史记录无法明确证明其为赠送语义
- THEN 迁移后系统 MUST 将其转为未配置状态
- THEN 系统 MUST 将该记录加入人工复核清单
Scenario: 历史快照按生效价展示
- WHEN 用户查询历史订单或历史分配记录
- THEN 系统 SHALL 使用迁移后的生效价字段进行展示