支持项目编码访问单项目公示屏

需求:无需查询公示 Token,直接通过项目编码打开单项目公示页。

实现:规范化项目编码并按 code 查询,同时保留既有 Token 哈希查询;补充前后端及集成回归测试。
This commit is contained in:
2026-07-31 17:11:21 +08:00
parent 78df07e074
commit 9948c23bef
8 changed files with 108 additions and 8 deletions

View File

@@ -4,7 +4,7 @@
在已确认的产品、技术与设计基线上,交付可运行的景区排队叫号系统纵向切片,并以自动化测试验证多项目隔离、幂等叫号与隐私边界。
## Current Phase
Phase 45管理端大屏中心免登录访问
Phase 46单项目大屏支持项目编码路由
## Phases
@@ -572,3 +572,24 @@ Phase 45管理端大屏中心免登录访问
| 首次组合补丁把内部网络路由误写为 `HandleFunc`,上下文未匹配 | 1 | 读取真实路由片段后按现有 `Handle` 行重新应用,未产生部分代码改动 |
| 普通网页读取器因域名安全校验拒绝打开线上 URL | 1 | 改用只读应用内浏览器核对,不绕过安全校验 |
| 应用内浏览器两次打开线上 URL 均超时 | 2 | 按有界重试停止继续访问;保留“代码已完成、线上尚未部署验证”的明确边界 |
### Phase 46: 单项目大屏支持项目编码路由2026-07-31
- [x] 核对现有 `/display/:token` 路由与项目编码规则
- [x] 后端允许用项目编码读取公开单项目快照
- [x] 保留已有公示 Token 路由兼容
- [x] 补充编码规范化、API 路径与回归测试
- [x] 完成全量测试、类型检查和构建验证
- **Status:** complete
#### Confirmed Decisions
| Decision | Result | Why it matters |
|---|---|---|
| 单项目 URL | `/display/{项目编码}`,例如 `/display/RAFT` | 无需查找不可恢复的原始公示 Token路径可直接配置到现场屏幕 |
| 大小写 | 项目编码路由大小写不敏感,服务端统一转大写查询 | 降低手工录入错误 |
| 兼容策略 | 40128 位既有 Token 继续按哈希查询 | 不破坏已经部署的单项目公示链接 |
#### Errors Encountered
| Error | Attempt | Resolution |
|---|---:|---|
| 新增回归测试在旧实现下找不到 `normalizeDisplayProjectCode` | 1 | 作为项目编码解析缺口的失败基线,随后实现解析函数 |
| 解析函数对非法编码返回了规范化文本和 `false`,与失败契约不一致 | 1 | 非法输入统一返回空字符串和 `false`,避免调用方误用无效编码 |