Files
gongxue-base/docs/refactor/backend-handoff-roadmap.md
2026-06-30 18:02:51 +08:00

20 KiB
Raw Blame History

后端进度同步与前端接入路线图

更新时间2026-06-30

这份文档用于在进入 Taro 前端开发前,快速确认新 Supabase/PostgreSQL 后端已经做到哪里、还缺什么、前端应如何接入,以及后续继续开发的优先级。

当前结论

新项目已经不是简单的 PocketBase 字段平移,而是按多租户 SaaS 重新建立了后端边界:

  • 平台侧可以管理租户、SaaS 套餐、订阅、订阅账单候选预览/dry-run/批量生成、自动计费 worker、服务费、逾期催缴和用量。
  • 租户侧可以管理品牌、域名、支付账户、登录配置、私密密钥、活动、兑换码、优惠券、成员权限、审计日志、内容入口、分类树、题目集合、练习蓝图、题目、视频、分数线、单词、知识手册、资料资源和题库导出任务。
  • 学生侧已经有题库入口、分类树、题目集合、顺序/随机/全真模拟组卷、答题、错题、收藏、背单词进度、个人中心、男女预设头像、站内通知、勋章、排行榜接口(租户默认关闭)、分数线、视频、订单详情/状态轮询、优惠券领取/抵扣、权益、激活码预检查/兑换、资料下载、AI 择校推荐、积分活动任务和积分兑换的基础 API学生头像不支持上传或第三方头像落库学生写入口会拒绝头像 URL签到、积分阈值、反馈解决和积分活动可触发自动勋章发放反馈处理/奖励、勋章发放和积分兑换会写入用户站内通知;租户后台已具备反馈运营聚合报表和积分风控只读报表。
  • 销售/代理/CRM 已经有邀请码、扫码/分享事件、首绑客资保护、团队关系、统计、CRM 配置、入队、worker 推送和分佣结算基础闭环。
  • 旧题库 JSON、单词模板、知识手册嵌套模板、分数线 JSON 和视频绑定 JSON 已经进入后端 preview/import 管线,由后端负责规范化、校验、幂等、审计和租户隔离。

因此,后端现在已经具备进入 Taro 前端第一阶段联调的基础。需要注意的是,它还不是完整生产交付状态,真实云端鉴权、对象存储生产安全、支付/短信/OAuth 生产账号、真实数据 dry-run 迁移仍需要继续补齐或联调;导入后复检、模板下载、字段映射 API 和导入任务详情已可联调Taro 租户内容页已接入上传/粘贴预览、字段别名覆盖、同步/异步执行、异步轮询和复检详情第一版,租户营销中心已接入 CRM 配置/队列、分佣结算、积分任务/兑换和积分风控只读摘要第一版。

后端模块进度

模块 当前状态 已经具备 上线前还要补
多租户底座 可联调 租户、域名、品牌、设置、RLS 基础、审计、Supabase JWT/API 身份映射;npm run test:rls 已提供本地动态租户隔离验收;npm run smoke:auth:remote 已提供真实云端 Supabase access token 回归脚本 真实云端 Auth/JWKS 回归需要在预生产/生产环境执行并留档,生产 RLS 深测继续执行
平台后台 基础完成 租户、租户详情、账务资料维护、平台账号细粒度权限目录、平台员工列表/创建/编辑/启停、平台路由权限强校验、平台审计日志查询、平台审计 CSV/JSON 导出、平台审计告警规则/列表/确认/解决、platform-audit-alerts worker、审计告警外部通知渠道/事件 API、platform-audit-notifications worker、套餐、订阅、订阅账单候选预览、dry-run、批量生成、自动计费 worker、重复开票保护、服务费、人工收款、逾期标记、内部催缴台账、催缴外部通知渠道/事件 API、platform-dunning-notifications worker、用量、公共题库授权、公共题库地区/科目授权校验、SaaS 套餐/订阅 metadata 公共题库访问边界、公共题库自动同步 worker、公共题库冲突单条/批量处理 API、公共题库同步通知第一版 平台在线收款、平台审计告警升级策略和更完整运营消息
租户后台 可联调 品牌、域名、支付账户、登录配置、密钥掩码、活动、兑换码、优惠券、勋章管理/手动发放/签到/积分/反馈/活动自动发放、积分任务、积分兑换、积分风控只读报表、用户站内通知查看、成员权限、角色模板、菜单/模块/字段权限配置 API、班级/教师/学生范围权限、学生运营跟进、学习督导规则模板和 student-supervision workerTaro 工作台已接权限驱动模块入口,学生运营页已接学生创建/更新、禁用/恢复、批量导入、批量分班、备注、跟进任务、学习督导预览/生成和保存每日规则第一版,租户设置页已接角色模板和成员绑定操作台第一版,营销中心已接 CRM 配置/队列、分佣结算、优惠券规则/核销报表、积分任务/兑换操作台、积分风控摘要和用户通知查看第一版 更细的数据范围组合、成员批量运营、学习督导触达联动/效果归因、真实打款/导出/凭证和完整权限菜单
题库与练习 可联调 内容入口、任意深度分类、题目集合、顺序/随机/全真模拟蓝图、组卷快照、客观题后端判分、主观题 selfJudgedCorrect 自评、阅读理解/案例分析 subAnswers 多小题判分、答题、错题、收藏、模考报告、排行榜接口(租户默认关闭)、公共题库采纳快照、手动同步、自动同步 worker、冲突查询/单条和批量处理 API、公共题库同步通知、starter 单地区/专业版全国公共题库访问边界、JSON/试卷 payload 导出、PDF/Word 异步导出 worker、水印和资料发布路径、每日一练九宫格 metadata、PDF/Word 运营版式和 ZIP 图片素材包 长题干/公式图片混排体验、导出模板精排、导出操作台、排行榜开启前压测、防刷和预聚合
背单词 可联调 单元、单词、进度、收藏、统计、每日计划、JSON/CSV/Excel 导入、排行榜接口(租户默认关闭) 更细复习参数
知识手册 可联调 科目、章节、条目、Markdown 内容、嵌套 JSON/CSV/Excel 导入 富文本资源、版本管理、附件/PDF 关联
分数线 可联调 院校、专业、动态字段、记录、年份、趋势、后台维护、JSON/CSV/Excel 导入AI 择校推荐已可读取地区/分数线上下文 复杂筛选和更细 AI 推荐运营配置
视频解析 可联调 单题视频、批量查询、后台视频绑定、JSON/CSV/Excel 导入、会员播放权限、播放次数扣减、签名 URL、播放日志和动态水印上下文 深度防盗链、转码级水印、播放统计
资料下载 部分完成 资源台账、SVIP 权限校验、local_dev/阿里云 OSS/腾讯 COS/Supabase Storage 上传下载签名、上传确认、PDF/图片预览签名、访问审计、动态水印上下文、assets worker 复检、内置安全扫描、外部 HTTP scanner 接入层、题库导出 PDF/Word/每日一练 ZIP 可生成可信 content_assets 并走签名下载/预览 CDN 防盗链、真实 AV/内容安全服务联调、转码级水印、资料前端操作体验
会员与订单 可联调 下单、订单详情/状态轮询、优惠券领取/抵扣、零元订单自动开通、手工确认权限保护、激活码预检查/兑换、微信支付、支付宝、微信/支付宝发起退款、微信/支付宝退款查询确认、微信/支付宝退款通知 webhook、支付/退款补偿 worker、权益发放、资金对账批次/明细/异常查询 API、微信/支付宝官方账单下载 worker、对账差错工单和事件轨迹 财务复核报表、异常订单运营台和真实生产账单格式验收
登录认证 可联调 短信 mock、阿里云/腾讯云短信 adapter、迁移期 session、Supabase Auth JWT、微信小程序登录、微信网页登录、QQ 登录、手机号绑定/换绑、OAuth 配置表 真实生产账号和回调域名联调
销售/代理/CRM 可联调 邀请码、首绑保护、团队关系、销售统计、CRM 配置/队列、钉钉/飞书/企微 worker、分佣规则、成员分佣比例、订单/激活码归因、结算生成、审核和打款状态Taro 营销中心已接第一版操作台 小程序码真实生成、CRM 分配策略、结算导出、真实打款、凭证、财务复核和销售转化看板
内容导入 可联调 题目、单词、知识手册、分数线、视频 JSON/CSV/Excel preview/import、issue、job/detail、审计、幂等、executionMode=async、imports worker、导入后复检、模板下载、字段映射 API、字段映射覆盖白名单校验、PocketBase JSON dry-run 报告Taro 租户内容页已接上传/粘贴预览、模板文件下载、字段别名编辑、同步/异步执行、异步轮询和复检详情第一版 真实数据 dry-run 执行验收、抽样校验和导入性能压测
数据看板 可联调 租户 dashboard 聚合接口收益、注册、学习、内容、激活码、反馈、趋势、24h 活跃、套餐销量和运营动态 预聚合 worker、缓存、慢 SQL 监控和销售转化看板
AI 择校推荐 可联调 ai_recommendation_reports、SVIP 门禁、学生输入 schema、地区/分数线上下文、local_rules 稳定 JSON、报告列表/详情和 Taro 学生端基础页 真实 AI provider、prompt 版本管理、租户后台配置、报告 PDF 渲染和人工复核流程
Taro 前端 地基已建 apps/taro 已有 Taro 4 React 工程、H5 三入口、租户解析、统一 API client、Supabase Auth client 初始化;学生端、租户后台和平台后台均已有第一批真实 API 页面;学生端已接地区选择、刷题答题卡、后端权威断点续练、本地进度恢复、模拟倒计时、主观题后端自评、阅读理解/案例分析多小题作答、错题/收藏复习、题目反馈、视频解析、练习/模考报告、收银台、订单详情、售后入口和男女预设头像选择第一版;平台后台已接关键写操作、租户详情、账务资料编辑、平台员工列表/创建/编辑/禁用恢复、平台审计查询和 CSV 导出、开放审计告警展示/确认/解决、审计告警外部通知渠道/事件状态摘要、订阅账单候选预览/dry-run/批量生成、自动计费生成结果查看、逾期预览、催缴记录和催缴外部通知摘要第一版,租户工作台已接权限驱动模块入口,租户学生运营页已接创建/更新、禁用/恢复、批量导入、批量分班、备注、跟进任务、学习督导预览/生成和保存每日规则第一版,租户内容页已接公共题库采纳/同步、冲突查看、单条/批量采纳平台或保留本地、导入问题、字段模板预览/下载、上传/粘贴预览、字段别名覆盖、同步/异步导入、异步轮询和复检详情第一版;租户设置页已接角色模板和成员绑定操作台第一版;租户营销中心已接 CRM 配置保存、队列筛选、分佣规则、成员比例、订单明细、结算生成/审核/标记线下打款、积分任务/兑换和积分风控摘要第一版 长题干/公式图片混排体验、更细数据范围 UI、学习督导触达联动、平台审计告警升级策略、平台催缴通知配置操作台细节、小程序兼容验证和端到端测试

前端接入建议

建议新建 apps/taro,不要在旧 React Web 上继续堆大量兼容。旧项目继续作为样式、页面和交互参照,真正的新业务调用以 apps/api 为准。

前端第一阶段应该先做能跑完整学生链路的页面:

  1. 租户启动

    • GET /api/tenant/resolve
    • 读取品牌、主题、功能开关、域名/小程序启动参数。
    • 后续 H5 用域名解析,小程序用租户配置或启动参数解析。
  2. 首页与内容入口

    • GET /api/catalog/content-entries
    • 展示题库、背单词、知识手册、分数线、资料、会员入口。
    • 前端不再依赖旧 PocketBase 树字段作为长期模型。
  3. 题库练习

    • GET /api/catalog/content-nodesGET /api/catalog/question-collectionsGET /api/catalog/practice-blueprints
    • POST /api/learning/practice-sessions 生成顺序、随机、全真模拟题目快照。
    • POST /api/learning/answers、错题、收藏接口完成刷题闭环;主观题自评传 selfJudgedCorrect,客观题仍以后端答案判分为准。
  4. 背单词和知识手册

    • 背单词走 vocabulary units/words/progress/favorites。
    • 知识手册走 handbook subjects/chapters/entries。
    • 页面只做展示、搜索、筛选、学习状态提交,最终权限和数据范围以后端为准。
  5. 个人中心

    • GET /api/profile/me
    • 接会员权益、订单详情/状态轮询、优惠券、激活码预检查/兑换、错题本、收藏夹、学习统计、男女预设头像、勋章、积分活动任务、积分兑换和站内通知;学生头像只展示 avatarPreset 默认资源,不接上传或微信/QQ 头像;排行榜只在租户显式开启后进入独立页面或活动页。
  6. 资料、视频和支付

    • 资料下载、PDF 预览、视频播放必须先请求后端签名或权限检查。
    • 支付和登录在前端可以先接 mock/迁移期能力,生产再替换真实 provider。

后续开发 TODO

P0上云测试和前端主链路前必须处理

  • 生产鉴权API 已支持 Supabase Auth JWT、HS256 本地测试和 JWKS/RS256 集成回归;npm run test:rls 已补本地运行时 RLS 深测;npm run smoke:auth:remote 已补真实云端 Auth/JWKS smoke 命令。继续在预生产/生产执行真实 token 回归和生产数据库 RLS 验收,并在生产关闭 x-user-idx-platform-admin-key 兼容入口。生产配置 JWKS 时必须同时配置 AUTH_JWT_ISSUER
  • 对象存储:上传/下载签名已接入阿里云 OSS、腾讯云 COS、Supabase Storage上传确认、PDF/图片预览签名、动态水印上下文、assets worker 复检、内置安全扫描、外部 HTTP scanner 接入层和题库导出 PDF/Word/每日一练 ZIP worker 已完成,继续补视频播放防盗链、真实 AV/内容安全服务联调和转码/CDN 级水印。
  • 真实数据 dry-run导出 PocketBase 用户、题库、单词、知识手册、分数线、订单、权益,先跑 npm run pb:import:dry-run -- --profile=production --json --fail-on-warnings,确认 migrationReadiness 的必需集合和关键字段覆盖率通过,再跑迁移和校验报告。
  • 生产环境配置:.env.examplenpm run readiness:production / npm run readiness:production:db 已补;继续补数据库迁移流程、备份恢复、日志、告警和 API 容器部署说明。
  • Taro scaffoldapps/taro 地基已建立;学生端、租户后台、平台后台第一批 H5 页面已接真实 API学生端已接地区选择、错题/收藏复习、阅读理解/案例分析多小题作答、题目反馈、视频解析、练习/模考报告、收银台、订单详情、售后入口、积分任务/兑换/积分明细、个人中心消息摘要和独立消息中心第一版;平台后台关键写操作、租户详情、账务资料编辑、平台员工列表/创建/编辑/禁用恢复、最近平台审计查询/CSV 导出、开放审计告警展示/确认/解决、审计告警外部通知渠道/事件状态摘要、订阅账单候选/dry-run/批量生成、自动计费生成结果查看、逾期预览、催缴记录和催缴外部通知摘要第一版已接入,租户工作台已接权限驱动模块入口,租户学生运营页已接学生创建/更新、禁用/恢复、批量导入、批量分班、备注和跟进任务第一版,租户内容页已接公共题库采纳/同步、冲突查看、单条/批量采纳平台或保留本地、导入问题、字段模板预览/下载、上传/粘贴预览、字段别名覆盖、同步/异步导入、异步轮询和复检详情第一版,租户设置页已接角色模板创建/编辑/停用、成员绑定模板和权限可见性配置第一版,租户营销中心已接 CRM 配置/队列、分佣结算、优惠券规则/核销报表、积分任务/兑换操作台、积分风控摘要和用户通知查看第一版;下一步补公式图片混排、更细数据范围 UI、平台审计告警升级策略、平台催缴通知配置操作台细节和小程序兼容验证。

P1商用收费和运营能力

  • 资金对账已支持手工/API 账单导入比对、微信/支付宝官方账单下载任务、异常查询和差错工单处理;继续补真实生产账单格式验收、财务复核报表和异常订单运营台。
  • XPay 或其它实际支付网关 adapter。
  • 阿里云/腾讯云短信、微信小程序登录、微信网页登录、QQ 登录真实账号联调。
  • 公共题库/地区题库自动同步 worker 已具备单批执行能力,租户后台已有同步通知、单条/批量冲突采纳平台或保留本地操作;公共题库可见、采纳、同步、冲突处理会统一校验 SaaS 套餐、有效订阅、订阅 metadata、grant 地区和科目范围。继续补生产定时调度、失败告警,以及存储、学生数、题量、视频播放量等更多套餐用量限制和超额计费策略。
  • 导入模板、字段映射、导入任务详情和复检 API 已可用Taro 租户内容页已接模板下载、字段别名覆盖、导入执行、异步 job 轮询和复检结果面板第一版。前端继续补真实导入目标选择体验和大数据量导入验收。
  • 视频深度防盗链、转码级水印和播放统计。
  • 数据看板 API收益、注册趋势、答题次数、收入趋势、题型分布、题目总量、套餐销量、24h 活跃。

P2企业级体验和增长闭环

  • 租户自定义角色模板基础 API、Taro 权限配置 UI、成员绑定模板和工作台权限驱动入口第一版已完成继续补班级/教师/学生组合范围 UI、成员批量运营和更完整平台级审计报表。
  • 三套默认主题、租户主题预览、Logo/图标/分享图配置。
  • CRM worker钉钉、飞书、企微机器人发送、签名、失败重试已落地Taro 营销中心已能配置 CRM 和查看队列;继续补轮询/定向分配、富卡片、失败告警和死信运营台。
  • 销售/代理分佣基础闭环已接 Taro 第一版;继续补销售团队看板、客资跟进效果、结算导出、真实打款、凭证和财务复核。
  • AI 择校推荐:local_rules JSON 报告地基已完成;继续补真实 AI provider、prompt 版本、租户后台配置、PDF 报告生成和人工复核。
  • 性能压测、慢 SQL 审查、备份恢复演练、灰度发布和回滚预案。

后端完成判定

后端进入“可支撑前端全面联调”的最低标准:

  • npm run check:refactor 在本地通过。
  • npm run test:rls 在本地通过,且新增租户表的 RLS 动态用例已补齐或有明确豁免说明。
  • npm run smoke:auth:remote 在预生产/生产 API 上通过,真实 Supabase JWT 能映射学生、租户管理员和平台管理员,坏 token/错租户上下文被拒绝。
  • 使用真实 PocketBase 导出数据完成一次 production dry-run产出问题清单和修复后的二次导入报告。
  • 核心学生链路 API 可以在 Taro H5 和小程序双端跑通:登录、首页、题库、练习、错题、收藏、单词、手册、会员、个人中心;排行榜按租户开关可选接入,默认不在学生端请求。
  • 租户隔离、后台角色权限、资源访问权限、订单权益和内容导入至少有集成测试覆盖。

后端进入“商用生产交付”的最低标准:

  • JWT/RLS、短信、登录、支付、对象存储、CRM webhook 都使用真实 provider 或生产可用 adapter。
  • 支付 webhook、导入任务、CRM 推送、资源签名都有幂等和审计。
  • 有生产环境变量模板、生产就绪检查脚本、部署脚本、备份恢复方案、日志告警、错误追踪和基础压测报告。