petstore-docs/qa-reports/phase0-store-onboarding-staff-invitation-2026-08-02.md

2.9 KiB
Raw Blame History

Phase 0 门店开通与员工邀请验收记录

日期2026-08-02
状态Code Complete / Ready for Release待生产迁移与微信真机验收
生产数据库与服务器:本批未触碰

1. 自动验证

检查 结果
Backend tests PASS193 tests0 failure/error/skip
Backend package PASS
Admin production build PASS
H5 build PASS
mp-weixin build + app-json verification PASS
Ontology validation/drift PASS258 条65/65 HTTP、15/15 JPA、0 drift
Release shell syntax PASSbackend/deploy/*.sh

2. 自动化覆盖

  • token 原文与数据库 hash 分离、手机号脱敏;
  • 邀请手机号不匹配不创建账号;
  • 接受成功创建 staff、消费邀请、写低敏 AuditLog
  • 开通必填项缺失不能完成,单人门店可完成;
  • 已完成开通的门店不能再清空名称、电话或地址;
  • 老板微信核验注册不产生可登录密码,并同时写入 store_registered BusinessEvent 与 AuditLog
  • Audit metadata 拒绝 token/手机号;
  • 门店/角色/删除状态变化会立即让旧 session 失效;
  • Nginx Petstore 专用 access log 只记录 $uri,不记录携带报告/邀请 token 的 query
  • 第六个迁移包含 token hash、状态机与六项回执不变量。

3. 三角色真机验收(发布前必做)

Boss

  • 新微信手机号创建门店,无手填手机号/明文密码;自动登录后进入开通清单。
  • 缺地址时不能完成;补齐资料、确认容量和服务后可完成;单人门店无需先邀请员工。
  • 创建 3/7/14/30 天邀请,创建后只显示一次原始口令;可分享小程序卡片。
  • 邀请列表只有脱敏手机号pending 可撤销accepted 不能撤销。

Staff

  • 从卡片进入看到正确门店、姓名、脱敏手机号与有效期。
  • 不匹配微信手机号被拒绝且不创建账号;匹配手机号成功加入并直接获得 staff session。
  • 邀请重复打开幂等登录同一 staff过期/撤销邀请有明确提示。
  • 被老板删除后,已有页面下一次受保护请求立即 401 并要求重新登录。

Customer / 权限反例

  • customer 不能查看/创建/撤销门店邀请,也不能完成开通。
  • 已有 customer 手机号接受员工邀请明确返回账号冲突,不静默改变角色。
  • legacy 永久邀请码查询/注册、直接创建员工、旧老板/门店注册入口均返回明确停用码且无写入。

4. 发布门禁

  • 按固定顺序执行第六个迁移 20260802_create_store_onboarding.sql,六项验证均为 0。
  • 以最终生产配置运行 JPA validate + 24 项只读不变量预检。
  • 微信体验版双微信账号完成 Boss → 分享 → Staff 接受全链路;证据不包含完整手机号或 token。
  • 旧版本回滚已确认忽略新增表/列;不执行 down migration。