Files
danyang-match/docs/Phase-matchmaker-dual-client-Completion-Report-2026-10-12.md
T
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

12 KiB
Raw Blame History

红娘双端最小联动闭环阶段报告

日期:2026-10-12 阶段:第一阶段最小联动闭环 结论:PARTIAL

Docker 验证(2026-10-12)

  • 使用已有 Compose 项目 danyang 启动,复用了原有 PostgreSQL、Redis、SeaweedFS 数据卷;未删除旧容器或数据。
  • danyang-match-backend:healthy,GET http://localhost:8085/api/v1/health/live 返回 success=true、status=UP。
  • Flyway:成功校验 57 个迁移,数据库版本为 057,无待执行迁移。
  • danyang-match-nginx:healthy,GET http://localhost:6688/nginx-health 返回 HTTP 200。
  • 管理端和后端镜像均重新构建成功。

本次完成

  • 固化 Web 与小程序端整合设计:docs/superpowers/specs/2026-10-12-matchmaker-dual-client-integration-design.md。
  • 固化实施计划:docs/superpowers/plans/2026-10-12-matchmaker-dual-client-integration.md。
  • 注册并实现红娘小程序服务对象详情页。
  • 支持查看授权范围内的服务对象摘要、服务状态和服务历史。
  • 支持新增红娘服务跟进记录,提交时使用现有请求层幂等键。
  • 修正红娘工作台对小程序统一请求层返回值的读取方式,使工作台统计、分配和联系授权数据可以正确装载。
  • Web 红娘管理页增加服务详情和跟进摘要查看入口。
  • 后端已有详情、跟进端点和 ServiceAssignmentPolicy 已核对,无需重复新增接口。

修改文件

  • docs/superpowers/specs/2026-10-12-matchmaker-dual-client-integration-design.md
  • docs/superpowers/plans/2026-10-12-matchmaker-dual-client-integration.md
  • docs/Phase-matchmaker-dual-client-Completion-Report-2026-10-12.md
  • miniapp/app.json
  • miniapp/pages/matchmaker-workbench/matchmaker-workbench.js
  • miniapp/pages/matchmaker-service-detail/matchmaker-service-detail.js
  • miniapp/pages/matchmaker-service-detail/matchmaker-service-detail.wxml
  • miniapp/pages/matchmaker-service-detail/matchmaker-service-detail.wxss
  • miniapp/pages/matchmaker-service-detail/matchmaker-service-detail.json
  • admin-web/src/modules/matchmaker/MatchmakerManagementView.vue

验证结果

检查项 结果
小程序 JavaScript 语法 PASS
小程序 TypeScript 类型检查 PASS
小程序页面注册和敏感字段守卫 PASS
管理端 Vite 构建 PASS
git diff --check PASS
后端红娘自动化测试 NOT_VERIFIED:当前 Windows 环境未提供可用 Maven,仓库 mvnw 为 Unix 脚本
微信开发者工具 WXML/WXSS 真机/编译验收 NOT_VERIFIED
Web 与后端真实环境联调 NOT_VERIFIED

Docker 测试复核:

  • 核心红娘行为测试组(动作禁止、联系方式禁用、权限守卫、字段隐私等)执行成功,退出码 0。
  • 扩展组合测试执行 55 项,其中 6 项出现错误、0 项失败;错误集中于既有 H2 测试夹具的 UUID 类型约束:测试使用 op-mm-other 查询 audit_logs.operator_id,导致审计断言查询发生数据类型转换错误。该结果不证明完整测试通过,也未将其归因于本次双端改动。

当前剩余风险

  1. 尚未使用真实账号在 Web 和小程序执行分配、查看、服务记录、撤销和越权完整链路;当前完成的是服务启动和自动化测试验证。
  2. 小程序页面中的服务类型显示目前沿用后端值,后续应统一中文状态字典,但不影响第一阶段数据联动。
  3. 当前采用页面显示和写操作后的重新拉取,实时 WebSocket 通知属于下一阶段。
  4. 联系授权审批岗位、授权期限和用户确认细节仍按安全默认行为保持开放,未新增联系方式权限。

第二阶段增量(服务转介回应)

本轮按用户授权进入下一阶段,选择依赖最少的“服务转介回应”子阶段:红娘在运营端发起转介后,普通用户在小程序查看本人转介记录,并由本人确认。后端继续复用既有 GET /referrals/my-history 与 POST /referrals/{id}/confirm,没有新增数据表或凭据配置。

本轮完成

  • 新增小程序页面 pages/referral-confirmation/,展示服务站/公益活动转介、待确认与已确认状态。
  • 确认操作仅调用用户身份接口,复用既有幂等键;成功后重新拉取服务端状态。
  • 在善缘公益服务页增加“待确认服务”入口,并注册统一路由常量。
  • 页面不提供红娘代确认、拒绝(后端尚无拒绝契约)或联系方式展示。

本轮验证

检查项 结果
转介页面契约测试(2项) PASS
新增 JavaScript 语法检查 PASS
小程序 JSON 解析 PASS
小程序 TypeScript 类型检查 PASS
管理端 Vite 构建 PASS(存在既有 CSS URL 警告)
git diff --check PASS
微信凭据服务端最小检查 PASS;未保存令牌
微信开发者工具 WXML/WXSS/真实 wx.login NOT_VERIFIED;当前工具环境无开发者工具/真机能力

第二阶段状态

结论:PARTIAL。代码契约与构建检查通过;真实小程序编译、登录及跨端真实账号联调仍待在微信开发者工具或真机完成。后端当前没有“拒绝转介”接口,本轮未在前端伪造该能力。

真机反馈修复(红娘端入口)

真机验收发现首屏只能进入用户端。根因是红娘页面虽已注册,但没有用户可达入口,且冷启动未识别 operatorToken,会被用户端 bootstrap 的登录跳转覆盖。

本次修复:

  • 用户登录页增加“红娘工作人员入口”,进入独立账号密码登录页。
  • 用户“我的”页增加同一入口;已有工作人员会话直接进入工作台。
  • App.onLaunch 增加工作人员会话/红娘深链分流,避免用户端登录态覆盖。
  • 新增入口契约与启动分流测试。

修复验证:入口契约 PASS、启动分流 PASS、TypeScript 类型检查 PASS、git diff --check PASS。请在微信开发者工具重新编译并从“红娘工作人员入口”验证登录及工作台页面。

红娘登录 401 修复(2026-10-12)

真机控制台显示请求 POST /api/v1/operator/auth/login 返回 401。核对后端 OperatorAuthController 后确认正式端点为 POST /api/v1/auth/operator/login;错误路径会先被安全链拦截,因此不会进入账号密码校验。

  • 已将小程序红娘登录请求改为 ${API_BASE_URL}/auth/operator/login。
  • 新增登录端点契约测试,锁定前端路径与后端控制器一致。
  • 复验结果:登录契约 PASS、入口/启动测试 PASS、后端真实登录检查 PASS、语法检查 PASS。

候选建议增量(第二阶段继续)

  • 红娘工作台的“查看推荐”改为进入专用用户推荐页,不再误跳普通缘分页。
  • 新增用户端红娘推荐页:读取本人推荐、标记已读、由用户本人执行 Like/Pass。
  • 兼容后端当前直接返回数组的推荐响应,避免前端按分页对象读取导致列表为空。
  • Like/Pass 继续复用用户 matchStore,红娘端没有代操作入口。

验证:候选建议契约测试 3 项 PASS;新增页面 JavaScript 语法 PASS;小程序 TypeScript 检查 PASS;登录、转介和候选建议相关契约测试全部 PASS;git diff --check PASS。

本增量仍需在微信开发者工具/真机用真实用户账号验证推荐数据、详情、Like/Pass 和 Mutual 跳转。

受控联系审批队列修复(2026-10-13)

开发者工具验收后继续复核发现,管理端“联系授权审批”误读红娘本人 /my 列表,审批人只能看到自己发起的申请。现已增加独立的 GET /operator/matchmaker/contact-authorizations/pending:平台管理员查看全量待审批申请,红娘组长仅查看同组织申请;申请人仍使用 /my。

验证:Docker 后端重新编译并健康启动;真实接口创建演示待审批申请后,/pending 返回 pending_approval 且包含该申请;管理端 pnpm run type-check、pnpm run build 通过;小程序 11 项契约测试通过。

下一阶段

在修复或隔离 H2 审计夹具问题并完成真实账号联调后,再实施服务申请回应、候选建议、活动任务、风险转介和未读通知。当前不将本阶段标记为 PASS,也不自动进入下一阶段。

下一阶段增量:用户确认服务方案(2026-10-12)

按产品确认口径,本轮仅增加“用户确认后恢复服务中”:用户本人对 waiting_user 服务单确认后,状态变更为 in_service;不新增拒绝、撤回或红娘代确认。

修改

  • 新增用户端 POST /api/v1/matchmaker/services/{id}/confirm,只接受当前用户且仅更新 waiting_user 状态。
  • 新增 matchmakerService.confirmService 及服务进度页确认按钮;成功后重新读取服务端状态,提交期间加锁。
  • 新增小程序契约测试,覆盖路由、状态迁移和用户端入口限制。

验证

检查项 结果
小程序契约回归(候选建议、转介、服务确认) PASS,7 项
JavaScript 语法检查 PASS
管理端 Vite 构建 PASS(保留既有 CSS URL 与 chunk 大小警告)
Docker 后端重建、强制重建部署 PASS,backend healthy
真实 HTTP:本人 waiting_user → in_service PASS
真实 HTTP:非本人确认 PASS,返回 CONFLICT,状态未被改变
微信开发者工具/真机页面编译 NOT_VERIFIED

本轮仍使用模拟微信登录和演示数据;Mock Provider 重启后会重置 code 到用户的内存映射,验收时必须使用同一容器生命周期内的登录会话。

下一阶段增量:红娘工作台活动/服务站转介任务展示(2026-10-12)

按“活动任务/转介闭环”最小增量,红娘小程序工作台复用既有 GET /api/v1/referrals/operator/history,展示本人发起的公益活动或服务站转介、用户确认状态和时间。该页面只读,不提供红娘代报名、代确认或敏感联系方式;无数据时保持空状态。

修改

  • 工作台并行读取本人转介历史,并将类型与确认状态转换为中文展示。
  • 分配对象无关联服务单时显示对象摘要和联系组长提示,避免点击无效跳转。
  • 保持后端 PostgreSQL 转介记录为事实来源,不新增表和演示数据。

验证

检查项 结果
小程序契约回归(全量 tests/miniapp) PASS,11 项
小程序 JavaScript 语法检查 PASS,114 个文件
管理端 Vite 构建 PASS(存在既有 CSS URL 与 chunk 大小警告)
git diff --check PASS(仅 Windows 换行提示)
Docker 演示红娘登录 PASS,demo_wanghongniang / demo123
GET /referrals/operator/history PASS,当前模拟数据为空数组
GET /operator/matchmaker/assignments/my PASS,返回 2 条本人有效分配对象
GET /operator/matchmaker/dashboard PASS
微信开发者工具/真机 WXML、WXSS 和页面联动 NOT_VERIFIED

本阶段状态

结论:PARTIAL。红娘端已具备活动/服务站转介结果的读取和展示契约,Docker 接口正常;当前演示库无转介记录,且微信开发者工具/真机验收仍需在用户侧完成。下一步可在有真实转介记录后复验工作台展示,再进入未读通知或服务申请回应等后续范围。

开发者工具人工验收补充(2026-10-13)

用户已在微信开发者工具完成红娘端登录及页面联动验收,反馈“暂无问题”。本次验收覆盖红娘入口、账号密码登录、工作台、服务对象详情、服务记录和转介任务展示。

检查项 结果
微信开发者工具红娘端登录 PASS
红娘工作台进入与数据展示 PASS
服务对象详情与服务记录 PASS
活动/服务站转介任务展示 PASS

据此,前述“微信开发者工具/真机页面联动”风险项已关闭为 PASS;真实生产账号、真实 PostgreSQL 数据和真机网络环境仍不等同于本次开发者工具验收。

候选建议进展增量(2026-10-13)

  • 红娘工作台新增“推荐进展”只读区,读取 /operator/matchmaker/recommendations。
  • 展示候选建议状态和推荐理由;红娘端不提供 Like/Pass,用户决定权保持在用户端。
  • 小程序全量契约测试、启动分流测试、工作台 JavaScript 语法检查和 git diff --check 均通过。

本增量待用户在微信开发者工具确认推荐进展区的显示效果;确认后再进入下一项业务。