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
327 lines
11 KiB
Markdown
327 lines
11 KiB
Markdown
# RVW V4.0 期刊配置中心 MVP 开发计划
|
||
|
||
> 文档版本: v1.0
|
||
> 创建日期: 2026-03-15
|
||
> 适用范围: RVW 多租户期刊配置中心(ADMIN 运营管理端)
|
||
> 约束前提: 严格遵循 `docs/04-开发规范/09-数据库开发规范.md`
|
||
|
||
---
|
||
|
||
## 1. 目标与范围
|
||
|
||
本计划用于落地 RVW V4.0 的「期刊配置中心」MVP,满足以下目标:
|
||
|
||
1. 在运营管理端新增独立一级模块「期刊配置中心」(类似 IIT 项目管理入口形态)。
|
||
2. 系统默认配置支持区分:
|
||
- 中文-稿约规范性
|
||
- 英文-稿约规范性
|
||
- 方法学、数据验证、临床专业评估(通用默认)
|
||
3. 期刊(如 AAA、BBB)可选择:
|
||
- 继承系统默认配置
|
||
- 在默认基础上进行覆盖
|
||
4. 期刊基础信息新增字段:`期刊语言`(中文/英文/其他)。
|
||
5. MVP 阶段功能可精简,但数据库字段一次性补齐(覆盖 P0/P1/P2 + 期刊语言)。
|
||
|
||
---
|
||
|
||
## 2. 关键输入文档
|
||
|
||
1. 需求基线
|
||
`docs/03-业务模块/RVW-稿件审查系统/00-系统设计/V3.0/RVW V4.0 期刊租户配置中心开发需求0315.md`
|
||
|
||
2. 英文稿约默认规则(系统默认 EN 基线)
|
||
`docs/03-业务模块/RVW-稿件审查系统/00-系统设计/V3.0/通用英文期刊稿约审查提示词.md`
|
||
|
||
3. 数据库规范(强制约束)
|
||
`docs/04-开发规范/09-数据库开发规范.md`
|
||
|
||
4. 既有总计划参考
|
||
`docs/03-业务模块/RVW-稿件审查系统/04-开发计划/RVW V4.0 期刊SaaS版开发计划.md`
|
||
|
||
---
|
||
|
||
## 3. 架构策略(MVP 版)
|
||
|
||
### 3.1 配置分层
|
||
|
||
- 第 1 层(系统默认层)
|
||
- Editorial: `ZH` / `EN` 双基线
|
||
- Methodology / DataForensics / Clinical: 通用基线
|
||
- 第 2 层(期刊继承层)
|
||
- 默认继承系统配置
|
||
- 第 3 层(期刊覆盖层)
|
||
- 租户填入自定义 Prompt/Template 后覆盖系统默认
|
||
|
||
### 3.2 运行时合并规则
|
||
|
||
对任一技能维度,统一采用:
|
||
|
||
`最终配置 = 期刊自定义值 ?? 系统默认值`
|
||
|
||
Editorial 额外规则:
|
||
|
||
- 若 `editorialExpertPrompt` 为空,则按 `editorialBaseStandard` 路由:
|
||
- `zh` -> 中文稿约默认 Prompt
|
||
- `en` -> 英文稿约默认 Prompt
|
||
- 若期刊未显式设置 `editorialBaseStandard`,按 `期刊语言` 映射默认值:
|
||
- 中文 -> `zh`
|
||
- 英文/其他 -> `en`
|
||
|
||
---
|
||
|
||
## 4. 数据模型设计(一次性补齐)
|
||
|
||
## 4.1 设计原则
|
||
|
||
- MVP 功能可分阶段启用,但字段一次性建完,避免重复迁移。
|
||
- 使用 `null` 表达“继承系统默认”。
|
||
- 严格使用 Prisma migration,不允许手工 DDL 改库。
|
||
|
||
## 4.2 表结构调整
|
||
|
||
### A. `platform_schema.tenants`(期刊基础信息)
|
||
|
||
新增/补齐字段(若已有同义字段,统一命名后保留兼容映射):
|
||
|
||
- `journal_language` (`ZH` | `EN` | `OTHER`) // P0
|
||
- `journal_full_name` (String) // P0
|
||
- `logo_url` (String?) // P1
|
||
- `brand_color` (String?) // P1
|
||
- `login_background_url` (String?) // P2
|
||
|
||
### B. `platform_schema.tenant_rvw_configs`(期刊审稿配置)
|
||
|
||
一次性补齐四维 Prompt + Template:
|
||
|
||
- `editorial_base_standard` (`zh` | `en`) default `en`
|
||
- `editorial_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` 三条铁律执行:
|
||
|
||
1. 所有变更通过 `npx prisma migrate dev --name xxx` 生成迁移。
|
||
2. 禁止 `prisma db push`(含任何变体)。
|
||
3. 每次迁移后,立即更新 `docs/05-部署文档/03-待部署变更清单.md`。
|
||
|
||
推荐本次迁移命名:
|
||
|
||
- `20260315_add_journal_fields_to_tenants`
|
||
- `20260315_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.sql`
|
||
- `backend/prisma/schema.prisma`
|
||
|
||
### BE-2 系统默认配置路由
|
||
- 在 Prompt 默认库中明确:
|
||
- `SYSTEM_DEFAULT_EDITORIAL_EN` 使用英文默认规则(来源于指定文档)
|
||
- `SYSTEM_DEFAULT_EDITORIAL_ZH` 使用中文默认规则
|
||
- 其余 3 个技能保留通用默认
|
||
|
||
### BE-3 管理端 API(期刊配置中心)
|
||
- 新增/扩展 API:
|
||
- `GET /api/admin/journal-configs`
|
||
- `GET /api/admin/journal-configs/:tenantId`
|
||
- `PUT /api/admin/journal-configs/:tenantId/basic-info`
|
||
- `PUT /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)
|
||
|
||
1. ADMIN 出现独立一级菜单「期刊配置中心」。
|
||
2. 可在期刊维度配置并保存 `期刊语言`。
|
||
3. 系统可明确区分中英文稿约默认规则。
|
||
4. 期刊支持“继承默认 + 局部覆盖”两种模式。
|
||
5. 数据库字段一次性补齐(P0/P1/P2 + 期刊语言)。
|
||
6. 所有迁移已入库并追加到待部署变更清单。
|
||
|
||
---
|
||
|
||
## 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. 风险与规避
|
||
|
||
1. **风险:数据库 drift**
|
||
规避:禁止 db push,迁移前后执行 status 与 SQL 审查。
|
||
|
||
2. **风险:字段多但 UI 尚未全部启用**
|
||
规避:字段先入库,前端按阶段开放;未启用字段保持可空。
|
||
|
||
3. **风险:中英文规则路由错误**
|
||
规避:加运行时日志(language/baseStandard/promptSource)与双租户回归用例。
|
||
|
||
---
|
||
|
||
## 10. 审查报告对齐结论(含 TenantType 现状)
|
||
|
||
针对以下两份审查报告:
|
||
|
||
- `docs/03-业务模块/RVW-稿件审查系统/08-技术架构建议/期刊配置中心MVP计划审查报告.md`
|
||
- `docs/03-业务模块/RVW-稿件审查系统/08-技术架构建议/ADMIN多业态租户架构演进评估 (1).md`
|
||
|
||
本计划采用如下对齐结论:
|
||
|
||
### 10.1 认可并吸收的观点
|
||
|
||
1. **前端独立模块方向正确**:在 ADMIN 左侧建立独立一级菜单“期刊配置中心”是正确演进方向。
|
||
2. **后端数据层保持统一**:继续复用 `platform_schema.tenants`,不拆分新的“期刊主租户表”。
|
||
3. **配置中心必须可运营**:Handlebars 模板能力应保留,避免后续“千刊千面”报告格式无法落地。
|
||
4. **跨表一致性要求**:涉及 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 是否硬编码、是否立刻大重构”的问题,本计划明确:
|
||
|
||
1. **不做大重构**(避免阻塞交付)
|
||
2. **必须做最小配置适配**(保证配置中心不是“假配置”)
|
||
3. **Handlebars 保留并最小启用**(保留未来扩展能力,当前成本可控)
|
||
|
||
### 11.2 最小配置适配(必须)
|
||
|
||
在现有 RVW 链路上增加一层“薄适配”即可,不推翻当前实现:
|
||
|
||
- 统一规则:`finalPrompt = tenantCustomPrompt ?? systemDefaultPrompt`
|
||
- Editorial 特殊规则:
|
||
- 租户未自定义时,按 `editorialBaseStandard` 选择 `zh/en` 默认 Prompt
|
||
- 若未显式设置 `editorialBaseStandard`,则按 `journalLanguage` 映射(`ZH -> zh`,其他 -> `en`)
|
||
- 目标:让“期刊配置中心”的保存结果立即影响审稿行为
|
||
|
||
### 11.3 Handlebars 最小启用策略
|
||
|
||
当前阶段不做复杂重构,但必须保留模板层:
|
||
|
||
1. 字段保留:四维模板字段全部入库(已在第 4 章定义)
|
||
2. 运行时策略:模板为空时走系统默认模板
|
||
3. 失败兜底:模板渲染失败时降级返回原始报告内容,防止线上中断
|
||
4. MVP 可选项:测试渲染可先后置到 P1,但预留接口与校验能力
|
||
|
||
### 11.4 为什么不建议“完全按写死先跑”
|
||
|
||
若只做 UI 不接运行时,配置中心会变成“可编辑但不生效”,风险更高:
|
||
|
||
- 运营以为已生效,实际审稿仍走旧规则
|
||
- 期刊 AAA/BBB 差异化配置无法验证
|
||
- 后续回补执行链路时会引入二次返工和信任成本
|
||
|
||
因此本计划采用“**小步接线,先真生效**”策略,而非“先写死跑通”。
|
||
|
||
---
|
||
|
||
## 12. 本计划执行前检查清单
|
||
|
||
- [ ] 已确认英文默认稿约规则文本(指定文档)
|
||
- [ ] 已确认中文默认稿约规则文本(对应文档)
|
||
- [ ] 已同步研发团队数据库铁律(09 规范)
|
||
- [ ] 已确认 TenantType 扩展策略(新增 JOURNAL)
|
||
- [ ] 已确认“先最小适配,不做大重构”的实施口径
|
||
- [ ] 已创建本次迁移命名并分配负责人
|
||
- [ ] 已约定联调样例租户(至少 JTIM + CMJ)
|
||
|