Files
danyang-match/docs/superpowers/specs/2026-10-14-global-public-id-display-inventory.md
WorkBuddy 3c2b967274
CI/CD Pipeline / UI Contracts (source-structure gates) (push) Canceled after 0s
CI/CD Pipeline / E2E (live stack) (push) Canceled after 0s
CI/CD Pipeline / Backend Build & Test (push) Canceled after 0s
CI/CD Pipeline / Admin Web Build (push) Canceled after 0s
CI/CD Pipeline / Mini Program Compile Check (push) Canceled after 0s
CI/CD Pipeline / Migration Validation (push) Canceled after 0s
CI/CD Pipeline / Test Shell Guard (Phase 23 Gate) (push) Canceled after 0s
release: freeze 2026-10-15 validated release baseline
2026-10-15 09:47:31 +08:00

55 lines
7.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 全平台公开编号覆盖清单
日期:2026-10-14。状态:Task 1 盘点完成;编号实现未完成。
用户已确认择偶条件“下一步”重新编译后目视复验通过。本轮不改变该页面。
## 数据与接口覆盖矩阵
内部主键、关联字段和操作参数继续使用 UUID;以下字段为展示增量,不能作为授权凭证。
| 实体 / 关联 | 创建入口(Service) | 读取与 DTO 覆盖 | Web / 小程序 | 展示编号 | 权限要求 |
|---|---|---|---|---|---|
| users / id | AuthService;IdentityVerificationService 生成用户编号 | UserService、用户列表/详情、推荐与举报关联查询 | 用户管理、用户详情、审核、推荐;个人资料、推荐卡片 | displayNumber / YH | 维持实名、脱敏、DataScope |
| operators / id | OperatorManagementService | 操作员、分配、联系授权、审计与咨询人员查询 | 人员管理、红娘服务;红娘工作台 | displayId / HN 或 GL | 不扩大组织范围 |
| activities / id | ActivityService.createActivity / createActivityFromAdmin | ActivityService、ActivityInterestService、CheckinService | 活动管理、互选、签到;活动详情、转介确认 | displayId / HD | 单向意向保密 |
| review_tasks / id、user_id | ReviewService 及审核任务生产方 | ReviewController、ReviewTaskDetailDTO、用户关联 | ReviewView | displayId / RW;userDisplayNumber / YH | 审核领取、敏感材料权限不变 |
| reports / id、reported_user_id | ReportService | 举报列表/详情、举报用户关联 | ReportCenterView;举报页面 | displayId / JB;reportedUserDisplayNumber / YH | 案件权限与数据范围不变 |
| matchmaker_services / id、user_id、assigned_operator_id | MatchmakerService.submitServiceRequest;MatchmakerServiceService.applyService | MatchmakerManagementService、服务详情/列表 | MatchmakerManagementView;工作台、服务详情、服务进展 | displayId / FW;关联 YH、HN | 仅负责/授权服务 |
| matchmaker_recommendations / id、user_id、target_user_id | MatchmakerService.createRecommendation;MatchmakerServiceService.recommendPartner | 推荐列表、管理端及用户端推荐详情 | 红娘推荐列表;工作台、推荐进展 | displayId / TJ;userDisplayNumber、targetUserDisplayNumber / YH | 不能代用户 Like |
| matchmaker_contact_authorizations / id、operator_id、user_id | ContactAuthorizationService.request | MatchmakerContactAuthorizationMapper 与审批响应 | 联系授权审批(红娘服务下);工作台 | displayId / LX;operatorDisplayId、userDisplayNumber | 手机号仍授权后读取并审计 |
| matchmaker_assignments / id、user_id、operator_id | MatchmakerAssignmentService.create / transfer | 分配查询与红娘工作台 | 分配列表;工作台 | displayId / FP;关联 YH、HN | 分配范围不变 |
| matchmaker_followups / id、service_id、operator_id | MatchmakerServiceService.addFollowup 及其他跟进写入方 | 服务详情跟进列表 | 服务详情;服务进展 | displayId / GJ;关联 FW、HN/GL | 不读取咨询正文 |
| service_appointments / id、user_id、assigned_operator_id | ServiceAppointmentService;ReferralService.referToServiceStation | 预约运营列表与转介历史 Map | ServiceAppointmentView、ReferralManagementView;转介确认 | 预约 displayId / YY **待确认**;转介 referralDisplayId / ZF | 预约所属人员权限不变 |
| activity_registrations / id、activity_id、user_id | ActivityService.registerActivity;ReferralService.referToActivity | 活动报名、转介历史 Map | 活动参与者、转介记录;转介确认 | 关联 HD、YH;转介 referralDisplayId / ZF | 不为未展示的普通报名 ID 新造前缀 |
| MatchmakerService.ReferralRecord(非持久化 Java record) | MatchmakerService.createReferral | 返回值、通知文案;代码注释称有跟进写入,但方法未实际 insert | 服务转介与通知调用链需后续行为验证 | ZF;必须先保证可持久化追溯 | 保持“转介建议,用户自行确认”语义 |
| audit_logs / operator_id、resource_id | AuditLogService | 审计列表、资源编号解析 | AuditLogView | 人员 HN/GL;资源复用已确认编号 | 不可解析/无权限显示类型与脱敏说明 |
| organization / organization_id | 组织管理 | 活动组织列表与人员 orgMap | ActivityManagementView、OperatorManagementView | 建议显示已有机构名称,不新增机构编号 | 组织关系不授予数据权限 |
| 专项服务参与者 / user_id | ServiceProgram 相关创建方 | 参与者列表 | ServiceProgramView | 复用 YH | 数据范围不变 |
## 模板检查证据
执行 `node tests/public-id-display-coverage.cjs --self-check`:7 项 PASS。
执行 `node tests/public-id-display-coverage.cjs`:扫描 114 个 Vue/WXML 模板,31 个审查候选,退出码 1。该 FAIL 是尚未修复的公开编号差距,不能将清单完成写成全局展示 PASS。
确认可见 UUID / UUID 输入集中在:活动签到及互选、红娘推荐及联系授权、审核、举报、预约、转介、专项服务参与者、审计、小程序工作台。具体文件与行号由检查命令即时输出。
人工剔除的名称映射候选:`ContentManagementView` 的 `categoryLabel(row.categoryId)`;`OperatorManagementView` 的 `orgMap[row.organizationId]` 及其组织列有自定义名称模板。检查器保守报告,不能仅因字段含 Id 就认定实际泄露。
额外动态文案差距:`miniapp/pages/referral-confirmation/referral-confirmation.js` 将 `activityId` 作为 detail 文案;`ReferralService.getOperatorName` 在找不到操作员或异常时回退 operatorId;`MatchmakerService.createReferral` 将 referralTarget 拼入通知。需要在后续 DTO/行为测试中处理,模板扫描不能发现这些间接绑定。
编号输入覆盖:推荐用户选择、人工签到用户、互选活动搜索、咨询人员分配、Banner 的站内目标选择。推荐/签到/分配需解析展示编号或使用选项选择器;Banner 可优先按已有活动/文章名称选择并保留内部寻址,不因内部配置键新增无业务意义的编号。
## 实施前待确认的具体增量
建议预约编号 `YY20261014001`。预约与转介分别显示 `YY`、`ZF`:同一预约由红娘发起时具有预约公开号和转介公开号;活动转介使用 ZF,活动本身仍为 HD。无需变更 UUID 路由,也无需新建统一转介表;为已有预约/报名记录增加转介编号字段(仅转介记录非空)。
机构展示名称;无公开编号的审计资源依既有规格显示中文类型和脱敏说明。以上不新增其他前缀。
## 后续验证边界
本轮仅新增盘点与检查工具,未执行数据库迁移、全量后端测试、端到端页面验收。后端覆盖测试应在 Task 3 使用真实响应与创建流程验证,不写仅检查源码字符串的空泛 Java 测试。
迁移前必须验证用户实名性别缺失的处理、旧新号映射、并发与回滚。普通序号 999 可使用,超过 999 拒绝;男性最多 500 个奇号,女性最多 499 个偶号。H2 测试不能代替 PostgreSQL UPSERT 并发与 Flyway 实测。