Files
break 70e680eb0a
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m2s
feat(手机号资产关联): AUG26-009 手机号—资产关联、十项上限与后台解绑
- 新增成对迁移 000223(tb_phone_asset_association,含有效关系部分唯一索引与 down 守卫)与 000224(解绑导入任务表),不回填历史
- H5:need_bind_phone 三支判定(开关关闭完全短路);已有主号幂等建联;十项上限按手机号 advisory 串行化(含换绑到全新号的并发场景);换绑原子迁移与冲突整单回滚;不写遗留列
- 后台:关联列表、单项/批量解绑、CSV 导入解绑(B1–B16),超管/平台 gate + 资产数据范围复核,三态统一文案
- 读侧:卡/设备列表与详情按页一次 IN 聚合;两类导出补「关联手机号」列并保留历史表头反解兼容
- 脱敏:关联审计走独立动作/资源只写脱敏手机号;访问日志手机号类字段脱敏
- 同步主 Spec openspec/specs/phone-asset-association 并归档 AUG26-009,补齐 requirement-evidence 与入口矩阵,context-health 通过
2026-09-15 11:54:56 +08:00

1.9 KiB
Raw Permalink Blame History

Scope

  • 迭代编号:AUG26-009
  • 需求追溯PRD-08-011仅作追溯

Why

现有全局绑定只按客户记一项主手机号,既不能保留手机号与单项资产的验证关系,也无法安全支持按资产查看与解除;后台、换货与批量路径都没有可依据的关联事实。

What Changes

  • 新增仅由 H5 短信验证建立的手机号—资产当前有效关系及十项上限;iot_carddevice 分别计为独立资产,即使两者 ID 相同。
  • need_bind_phone 由客户维度扩为「全局开关开启且当前主手机号未关联当前访问资产」;开关关闭时不查询、不创建、不删除任何关系。
  • BREAKINGH5 认证契约)bind-phone 不再对「已有主号」直接拒绝:已有主号且提交号码与主号一致、验证码有效时,幂等建立当前访问资产与主手机号的关联。H5 必须与本 Change 同批上线并支持预填已在账号上的手机号,否则会出现 need_bind_phone=true 却无法建联的死锁。
  • 新增客户原子换绑:新号现有有效关系数加旧号待迁移数超过十项时整次失败,新旧关系均不变。
  • 新增后台受权限控制的单项解绑、勾选批量解绑与 CSV 导入解绑;解绑任务明细持久化解绑当时的完整手机号快照。
  • 保持全局强制绑定;不新增后端访问 gate,缺关系不改变任何资源授权;换货不迁移关系,不回填历史。

Capabilities

New Capabilities

  • phone-asset-association: 已验证手机号与资产关联。

Modified Capabilities

  • 无。

Impact

影响 H5 认证契约与上线顺序、资产列表/详情/导出读侧、短信验证、CSV 导入场景族、审计脱敏与 Schema。实施不修改上下文证据文件归档并同步主 Spec含新路由索引后必须补齐 docs/verification/context-reset/ 证据,否则 scripts/context-health.sh 失败。