修正(会员后台):缺少目录档位时不再回退 rank 0

- upsert 解析 rank 失败改为显式报错,避免与 Normal 占位同档
- 与 module-runtime 用 Option 暴露缺失档位的契约保持一致
This commit is contained in:
2026-10-04 10:33:58 +08:00
parent cc30d8ba7a
commit 44feb7b0f5
@@ -8383,9 +8383,15 @@ fn upsert_profile_membership_plan_record(
.plan()
.find(&validated.plan);
// 代码内目录是 `rank` 的唯一来源:后台改价、改权益、改上下架都不会动升级比较基准。
// 缺失档位必须显式报错:回退成 rank 0 会与 Normal 占位同档,产生误导性的校验结果。
let rank = resolve_runtime_profile_membership_plan_row(validated.plan)
.map(|row| row.rank)
.unwrap_or(0);
.ok_or_else(|| {
format!(
"会员目录缺少档位 {},无法解析升级比较基准",
validated.plan.as_str()
)
})?
.rank;
let inserted = ProfileMembershipPlan {
plan: validated.plan,