Deliver the RVW V4.0 journal configuration center across backend, frontend, migration, and docs with zh/en editorial baseline support and tenant-level prompt/template overrides. Unify tenant login to /:tenantCode/login and auto-enable RVW module when tenant type is JOURNAL to prevent post-login access gaps. Made-with: Cursor
11 KiB
RVW V4.0 期刊配置中心 MVP 开发计划
文档版本: v1.0
创建日期: 2026-03-15
适用范围: RVW 多租户期刊配置中心(ADMIN 运营管理端)
约束前提: 严格遵循docs/04-开发规范/09-数据库开发规范.md
1. 目标与范围
本计划用于落地 RVW V4.0 的「期刊配置中心」MVP,满足以下目标:
- 在运营管理端新增独立一级模块「期刊配置中心」(类似 IIT 项目管理入口形态)。
- 系统默认配置支持区分:
- 中文-稿约规范性
- 英文-稿约规范性
- 方法学、数据验证、临床专业评估(通用默认)
- 期刊(如 AAA、BBB)可选择:
- 继承系统默认配置
- 在默认基础上进行覆盖
- 期刊基础信息新增字段:
期刊语言(中文/英文/其他)。 - MVP 阶段功能可精简,但数据库字段一次性补齐(覆盖 P0/P1/P2 + 期刊语言)。
2. 关键输入文档
-
需求基线
docs/03-业务模块/RVW-稿件审查系统/00-系统设计/V3.0/RVW V4.0 期刊租户配置中心开发需求0315.md -
英文稿约默认规则(系统默认 EN 基线)
docs/03-业务模块/RVW-稿件审查系统/00-系统设计/V3.0/通用英文期刊稿约审查提示词.md -
数据库规范(强制约束)
docs/04-开发规范/09-数据库开发规范.md -
既有总计划参考
docs/03-业务模块/RVW-稿件审查系统/04-开发计划/RVW V4.0 期刊SaaS版开发计划.md
3. 架构策略(MVP 版)
3.1 配置分层
- 第 1 层(系统默认层)
- Editorial:
ZH/EN双基线 - Methodology / DataForensics / Clinical: 通用基线
- Editorial:
- 第 2 层(期刊继承层)
- 默认继承系统配置
- 第 3 层(期刊覆盖层)
- 租户填入自定义 Prompt/Template 后覆盖系统默认
3.2 运行时合并规则
对任一技能维度,统一采用:
最终配置 = 期刊自定义值 ?? 系统默认值
Editorial 额外规则:
- 若
editorialExpertPrompt为空,则按editorialBaseStandard路由:zh-> 中文稿约默认 Prompten-> 英文稿约默认 Prompt
- 若期刊未显式设置
editorialBaseStandard,按期刊语言映射默认值:- 中文 ->
zh - 英文/其他 ->
en
- 中文 ->
4. 数据模型设计(一次性补齐)
4.1 设计原则
- MVP 功能可分阶段启用,但字段一次性建完,避免重复迁移。
- 使用
null表达“继承系统默认”。 - 严格使用 Prisma migration,不允许手工 DDL 改库。
4.2 表结构调整
A. platform_schema.tenants(期刊基础信息)
新增/补齐字段(若已有同义字段,统一命名后保留兼容映射):
journal_language(ZH|EN|OTHER) // P0journal_full_name(String) // P0logo_url(String?) // P1brand_color(String?) // P1login_background_url(String?) // P2
B. platform_schema.tenant_rvw_configs(期刊审稿配置)
一次性补齐四维 Prompt + Template:
editorial_base_standard(zh|en) defaulteneditorial_expert_prompt(Text?)editorial_handlebars_template(Text?)methodology_expert_prompt(Text?)methodology_handlebars_template(Text?)data_forensics_expert_prompt(Text?)data_forensics_handlebars_template(Text?)clinical_expert_prompt(Text?)clinical_handlebars_template(Text?)
兼容说明:历史结构化字段(如
editorialRules/dataForensicsLevel/finerWeights)如需保留,先保留读兼容;MVP 写入统一走 Prompt/Template 字段。
5. 数据库实施规范(必须执行)
严格按 09-数据库开发规范.md 三条铁律执行:
- 所有变更通过
npx prisma migrate dev --name xxx生成迁移。 - 禁止
prisma db push(含任何变体)。 - 每次迁移后,立即更新
docs/05-部署文档/03-待部署变更清单.md。
推荐本次迁移命名:
20260315_add_journal_fields_to_tenants20260315_expand_tenant_rvw_configs_for_all_prompt_templates
Shadow DB 失败时,按规范第 10 章降级流程处理并 migrate resolve --applied 标记。
6. 可执行任务清单
6.1 后端任务
BE-1 Schema 与迁移
- 修改
backend/prisma/schema.prisma - 生成并审查迁移 SQL
- 更新 Prisma Client
交付物:
backend/prisma/migrations/*/migration.sqlbackend/prisma/schema.prisma
BE-2 系统默认配置路由
- 在 Prompt 默认库中明确:
SYSTEM_DEFAULT_EDITORIAL_EN使用英文默认规则(来源于指定文档)SYSTEM_DEFAULT_EDITORIAL_ZH使用中文默认规则- 其余 3 个技能保留通用默认
BE-3 管理端 API(期刊配置中心)
- 新增/扩展 API:
GET /api/admin/journal-configsGET /api/admin/journal-configs/:tenantIdPUT /api/admin/journal-configs/:tenantId/basic-infoPUT /api/admin/journal-configs/:tenantId/rvw-config
- 权限:
authenticate + requirePermission('ops:user-ops')
BE-4 RVW 执行链路接线
- 在 Worker/Skill 装配处接入期刊配置
- 按
??规则完成 4 维配置合并 - Editorial 增加
zh/en基线路由
BE-5 安全校验
slug正则校验(小写字母/数字/连字符)journalLanguage、editorialBaseStandard枚举校验- 日志记录配置来源(system/custom)
6.2 前端任务
FE-1 新增左侧一级模块
- ADMIN 左侧导航新增
期刊配置中心 - 路由挂载与权限控制
FE-2 列表页
- 期刊列表(名称、slug、语言、状态、更新时间、操作)
- 支持搜索/筛选/分页
FE-3 详情配置页
- 基础信息区:
- 期刊全称
- 访问路径 slug
- 期刊语言(中文/英文/其他)
- Logo/主色/背景图字段(先存储,MVP 可不渲染)
- 审稿配置区(4 Skills):
- 继承/自定义切换
- Editorial 继承态支持
zh/en基线选择 - 每个维度 Prompt + Handlebars Template 文本框
FE-4 API 类型对齐
- 更新 TypeScript DTO 与后端一致
null语义统一为“继承默认”
6.3 联调任务
INT-1 中英文默认稿约验证
- JTIM 配置为
en继承,触发英文稿约规则 - CMJ 配置为
zh继承,触发中文稿约规则
INT-2 继承与覆盖验证
- AAA 继承默认
- BBB 在临床维度自定义 Prompt
- 对比两者结果差异应符合预期
INT-3 兼容性验证
- 历史任务查询不受影响
- 现有租户登录/访问链路不回归
7. 验收标准(DoD)
- ADMIN 出现独立一级菜单「期刊配置中心」。
- 可在期刊维度配置并保存
期刊语言。 - 系统可明确区分中英文稿约默认规则。
- 期刊支持“继承默认 + 局部覆盖”两种模式。
- 数据库字段一次性补齐(P0/P1/P2 + 期刊语言)。
- 所有迁移已入库并追加到待部署变更清单。
8. 排期建议(MVP)
- Day 1: BE-1 + BE-2(Schema/迁移/默认配置)
- Day 2: BE-3 + FE-1/FE-2(管理端骨架)
- Day 3: FE-3 + FE-4(配置页面联通)
- Day 4: BE-4 + 联调(INT-1/2/3)
- Day 5: 验收、文档补充、部署清单复核
9. 风险与规避
-
风险:数据库 drift
规避:禁止 db push,迁移前后执行 status 与 SQL 审查。 -
风险:字段多但 UI 尚未全部启用
规避:字段先入库,前端按阶段开放;未启用字段保持可空。 -
风险:中英文规则路由错误
规避:加运行时日志(language/baseStandard/promptSource)与双租户回归用例。
10. 审查报告对齐结论(含 TenantType 现状)
针对以下两份审查报告:
docs/03-业务模块/RVW-稿件审查系统/08-技术架构建议/期刊配置中心MVP计划审查报告.mddocs/03-业务模块/RVW-稿件审查系统/08-技术架构建议/ADMIN多业态租户架构演进评估 (1).md
本计划采用如下对齐结论:
10.1 认可并吸收的观点
- 前端独立模块方向正确:在 ADMIN 左侧建立独立一级菜单“期刊配置中心”是正确演进方向。
- 后端数据层保持统一:继续复用
platform_schema.tenants,不拆分新的“期刊主租户表”。 - 配置中心必须可运营:Handlebars 模板能力应保留,避免后续“千刊千面”报告格式无法落地。
- 跨表一致性要求:涉及 tenants 与 tenant_rvw_configs 同步修改的场景,应使用事务保证原子性。
10.2 需要修正的审查结论(以代码现状为准)
两份报告中“系统当前没有 TenantType”的表述不准确。当前系统已存在 TenantType:
- 后端
backend/prisma/schema.prisma中已有enum TenantType与tenants.type - 当前枚举值:
HOSPITAL/PHARMA/INTERNAL/PUBLIC
因此,本项目不需要“从 0 引入 TenantType 机制”,而是需要在现有机制上评估扩展:
- 方案 A(推荐):新增
JOURNAL枚举值,用于期刊配置中心过滤与治理 - 方案 B(兼容):暂不新增枚举,短期用
INTERNAL或约定标签过渡(不推荐长期使用)
本计划采用:方案 A(新增 JOURNAL)。
11. 最低成本实施策略(先跑通,不做大重构)
11.1 决策原则
针对“当前 Prompt 是否硬编码、是否立刻大重构”的问题,本计划明确:
- 不做大重构(避免阻塞交付)
- 必须做最小配置适配(保证配置中心不是“假配置”)
- Handlebars 保留并最小启用(保留未来扩展能力,当前成本可控)
11.2 最小配置适配(必须)
在现有 RVW 链路上增加一层“薄适配”即可,不推翻当前实现:
- 统一规则:
finalPrompt = tenantCustomPrompt ?? systemDefaultPrompt - Editorial 特殊规则:
- 租户未自定义时,按
editorialBaseStandard选择zh/en默认 Prompt - 若未显式设置
editorialBaseStandard,则按journalLanguage映射(ZH -> zh,其他 ->en)
- 租户未自定义时,按
- 目标:让“期刊配置中心”的保存结果立即影响审稿行为
11.3 Handlebars 最小启用策略
当前阶段不做复杂重构,但必须保留模板层:
- 字段保留:四维模板字段全部入库(已在第 4 章定义)
- 运行时策略:模板为空时走系统默认模板
- 失败兜底:模板渲染失败时降级返回原始报告内容,防止线上中断
- MVP 可选项:测试渲染可先后置到 P1,但预留接口与校验能力
11.4 为什么不建议“完全按写死先跑”
若只做 UI 不接运行时,配置中心会变成“可编辑但不生效”,风险更高:
- 运营以为已生效,实际审稿仍走旧规则
- 期刊 AAA/BBB 差异化配置无法验证
- 后续回补执行链路时会引入二次返工和信任成本
因此本计划采用“小步接线,先真生效”策略,而非“先写死跑通”。
12. 本计划执行前检查清单
- 已确认英文默认稿约规则文本(指定文档)
- 已确认中文默认稿约规则文本(对应文档)
- 已同步研发团队数据库铁律(09 规范)
- 已确认 TenantType 扩展策略(新增 JOURNAL)
- 已确认“先最小适配,不做大重构”的实施口径
- 已创建本次迁移命名并分配负责人
- 已约定联调样例租户(至少 JTIM + CMJ)