Features - User Management (Phase 4.1): - Database: Add user_modules table for fine-grained module permissions - Database: Add 4 user permissions (view/create/edit/delete) to role_permissions - Backend: UserService (780 lines) - CRUD with tenant isolation - Backend: UserController + UserRoutes (648 lines) - 13 API endpoints - Backend: Batch import users from Excel - Frontend: UserListPage (412 lines) - list/filter/search/pagination - Frontend: UserFormPage (341 lines) - create/edit with module config - Frontend: UserDetailPage (393 lines) - details/tenant/module management - Frontend: 3 modal components (592 lines) - import/assign/configure - API: GET/POST/PUT/DELETE /api/admin/users/* endpoints Architecture Upgrade - Module Permission System: - Backend: Add getUserModules() method in auth.service - Backend: Login API returns modules array in user object - Frontend: AuthContext adds hasModule() method - Frontend: Navigation filters modules based on user.modules - Frontend: RouteGuard checks requiredModule instead of requiredVersion - Frontend: Remove deprecated version-based permission system - UX: Only show accessible modules in navigation (clean UI) - UX: Smart redirect after login (avoid 403 for regular users) Fixes: - Fix UTF-8 encoding corruption in ~100 docs files - Fix pageSize type conversion in userService (String to Number) - Fix authUser undefined error in TopNavigation - Fix login redirect logic with role-based access check - Update Git commit guidelines v1.2 with UTF-8 safety rules Database Changes: - CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled) - ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code) - INSERT 4 permissions + role assignments - UPDATE PUBLIC tenant with 8 module subscriptions Technical: - Backend: 5 new files (~2400 lines) - Frontend: 10 new files (~2500 lines) - Docs: 1 development record + 2 status updates + 1 guideline update - Total: ~4900 lines of code Status: User management 100% complete, module permission system operational
18 KiB
下一阶段行动计划 V2.2 - 前端架构优先版
计划周期: 2025-11-07 至 2025-12-06(4周)
核心目标: Schema隔离 + 前端统一架构 + ASL核心功能
制定时间: 2025-11-09
版本: V2.2(前端架构优先版)
最后更新: 2025-11-09
💡 V2.2版核心调整
🎯 最大变化:前端统一架构提前到Week 2!
为什么调整?
V2.1版问题:
- Week 2只做后端分层 + LLM网关
- Week 3开发ASL时,前端还是散乱的
- 开发完ASL后再重构前端 → 大量返工
V2.2版优化:
- ✅ Week 2先建立前端统一架构
- ✅ 所有模块插件化接入,一次到位
- ✅ Week 3开发ASL时,直接在统一框架下
- ✅ LLM网关推迟到Week 5(现有调用已够用)
🎯 V2.2 vs V2.1 关键差异
| 项目 | V2.1版 | V2.2版 ⭐ | 原因 |
|---|---|---|---|
| Week 2重点 | 后端分层 + LLM网关 | 前端架构 + 后端分层 ⭐⭐⭐ | 架构先行,避免返工 |
| 前端架构 | 未明确时机 | Week 2上半周完成 ⭐ | ASL在统一框架下开发 |
| LLM网关 | Week 2开发 | 推迟到Week 5 ✅ | 现有调用已work |
| CloseAI集成 | 未提及 | 已完成配置 ⭐ | 4个LLM可用 |
| ASL开发环境 | 独立开发 | 统一架构下 ✅ | 避免后期重构 |
📊 整体规划 - 四周四阶段
Week 1 Week 2 Week 3-4 Week 5+
Schema隔离 → 前端架构+后端分层 → ASL核心开发 → LLM网关+其他模块
(3详细+7空) (统一导航+插件化) (在统一框架下) (抽取统一网关)
| 阶段 | 时间 | 核心任务 | 交付成果 | 优先级 |
|---|---|---|---|---|
| 阶段1 | Week 1 | Schema隔离(3详细+7空) | 10个Schema完成 | P0 ⭐⭐⭐ |
| 阶段2 | Week 2 | 前端统一架构 + 后端分层 ⭐ | 统一导航+模块插件化 | P0 ⭐⭐⭐ |
| 阶段3 | Week 3-4 | ASL核心功能(4个LLM) | 文献筛选完整流程 | P0 ⭐⭐⭐ |
| 阶段4 | Week 5+ | LLM网关统一 + 其他模块 | LLM网关+DC/RVW | P1 ⭐⭐ |
🚀 阶段1:Schema隔离(Week 1)✅ 保持不变
时间: 2025-11-07 至 2025-11-13(7天)
策略: 3个详细迁移 + 7个空Schema预留
详细设计+迁移(3个)⭐
1. platform_schema - 平台基础(迁移users表) 2. aia_schema - AI智能问答(迁移5个表) 3. pkb_schema - 个人知识库(迁移2个表)
空Schema预留(7个)📋
4. asl_schema - AI智能文献(Week 3设计) 5. common_schema - 通用能力 6-10. dc/rvw/admin/ssa/st_schema - 其他模块
Week 1详细任务
- Day 1-2: 3个Schema详细设计 + 7个空Schema创建SQL
- Day 3: 执行迁移,验证功能
- Day 4: Prisma更新(3个详细模型)+ 补充AIA/PKB数据库文档
- Day 5: 代码适配 + 补充AIA/PKB API文档 + Week 1总结
交付物:
- ✅ 10个Schema全部创建(3详细+7空)
- ✅ AIA和PKB完整文档(数据库+API)
- ✅ 现有功能正常运行
详细参考: 见V2.1版Week 1部分(完全相同)
🎨 阶段2:前端统一架构 + 后端分层(Week 2)⭐⭐⭐
时间: 2025-11-14 至 2025-11-20(7天)
核心: 建立统一前端导航框架,所有模块插件化接入
目标: Week 3开发ASL时,直接在统一架构下
核心原则:架构先行,一次到位 ⭐⭐⭐
为什么前端架构要优先?
- ✅ 避免ASL开发完后再重构前端
- ✅ 一开始就在统一框架下开发
- ✅ 其他模块(AIA、PKB、审稿)直接接入
- ✅ 导航、布局、路由一次到位
Day 6-7(上半周):前端统一架构 ⭐⭐⭐ 核心任务
Day 6上午:前端架构设计 ⭐ 关键设计
任务:前端架构整体设计
- 梳理前端架构需求和目标
- 确定前端技术栈和工具链
- 设计模块注册机制
- 设计统一导航和布局方案
- 编写前端架构设计文档
需要解决的核心问题:
1. 技术栈选择
- UI组件库选择(Ant Design? Material-UI? 自研?)
- 路由方案(React Router配置)
- 状态管理(Redux? Zustand? 不用?)
- 构建工具(当前Vite,是否需要调整?)
2. 统一布局设计
- 顶部导航栏设计(Logo、模块切换、用户信息)
- 侧边菜单设计(模块内导航、收缩/展开)
- 面包屑设计(当前位置指示)
- 主内容区布局
3. 模块插件化机制
- 模块如何注册到主应用?
- 模块路由如何动态加载?
- 模块权限如何控制?
- 模块样式如何隔离?
4. 导航结构设计
- 一级导航:模块级(AIA、PKB、ASL、审稿等)
- 二级导航:功能级(项目管理、对话、文献筛选等)
- 导航如何响应式适配?
输出文档:
01-平台基础层/06-前端架构/04-前端架构实施方案-V2.md- 更新:
01-平台基础层/06-前端架构/01-前端总体架构设计.md - 更新:
01-平台基础层/06-前端架构/02-导航结构设计.md
参考文档:
01-平台基础层/06-前端架构/01-前端总体架构设计.md(现有设计)01-平台基础层/06-前端架构/02-导航结构设计.md(现有导航)01-平台基础层/06-前端架构/03-架构原型图.html(原型参考)
设计要点:
主要考虑:
1. 简单易维护(单人开发)
2. 模块化清晰(支持独立开发)
3. 扩展性好(新模块快速接入)
4. 用户体验佳(统一的交互风格)
Day 6下午-Day 7:前端架构实施
任务1:创建统一布局框架
- 创建
frontend/src/layouts/MainLayout.tsx- 顶部导航栏组件
- 侧边菜单组件
- 主内容区
- 面包屑导航
- 创建
frontend/src/components/TopNav.tsx - 创建
frontend/src/components/SideMenu.tsx
任务2:实现模块注册机制
- 创建
frontend/src/router/moduleRegistry.ts - 定义模块配置接口
- 实现动态路由加载
- 实现模块权限控制
任务3:整合现有模块
- 重构AIA模块接入统一导航(现有功能)
- 重构PKB模块接入统一导航(现有功能)
- 重构审稿模块接入统一导航(现有功能)
任务4:为未来模块预留入口
- ASL模块入口(占位符,显示"开发中")
- 数据清洗入口(占位符)
- 统计分析入口(占位符)
- 运营管理入口(占位符)
前端目录结构:
frontend/
├── src/
│ ├── layouts/ # 布局组件
│ │ └── MainLayout.tsx # 统一布局:顶部导航+侧边栏
│ ├── components/ # 通用组件
│ │ ├── TopNav.tsx # 顶部导航栏
│ │ ├── SideMenu.tsx # 侧边菜单
│ │ └── Breadcrumb.tsx # 面包屑
│ ├── router/ # 路由管理
│ │ ├── index.tsx # 主路由配置
│ │ └── moduleRegistry.ts # 模块注册中心
│ ├── modules/ # 模块化目录
│ │ ├── aia/ # AI智能问答(已有)
│ │ │ ├── routes.tsx # 模块路由
│ │ │ ├── pages/ # 页面组件
│ │ │ └── index.ts # 模块导出
│ │ ├── pkb/ # 个人知识库(已有)
│ │ ├── review/ # 审稿系统(已有)
│ │ ├── asl/ # AI智能文献(占位)
│ │ ├── dataClean/ # 数据清洗(占位)
│ │ ├── statistics/ # 统计分析(占位)
│ │ └── admin/ # 运营管理(占位)
│ └── App.tsx # 应用入口
验收标准:
- ✅ 统一布局创建完成
- ✅ 3个现有模块成功接入统一导航
- ✅ 模块切换流畅,路由正常
- ✅ 占位模块显示"开发中"状态
- ✅ 前端架构文档完善
Day 8-9(下半周):后端代码分层
任务:建立三层代码结构
- 创建 platform/common/modules 三层目录
- 迁移现有代码到新结构
- 建立统一错误处理
- 建立统一日志系统
后端目录结构:
backend/src/
├── platform/ # L1:平台基础层
│ ├── auth/ # 认证(JWT、Session)
│ ├── permissions/ # 权限管理(RBAC)
│ └── users/ # 用户服务
├── common/ # L2:通用能力层
│ ├── llm/ # LLM调用(保留简单实现)
│ │ ├── deepseek.ts
│ │ ├── closeai.ts # ⭐ GPT-5 + Claude-4.5
│ │ └── qwen.ts
│ ├── files/ # 文件处理
│ └── utils/ # 工具函数
└── modules/ # L3:业务模块层
├── aia/ # AI智能问答
├── pkb/ # 个人知识库
├── review/ # 审稿系统
└── asl/ # AI智能文献(准备目录)
说明:
- LLM调用暂时保留简单实现(已够用)
- Week 5再统一抽取LLM网关
- CloseAI配置已完成,可直接使用
验收标准:
- ✅ 三层目录结构清晰
- ✅ 现有代码迁移完成
- ✅ 统一错误处理和日志系统
- ✅ 现有功能无回归
Day 10(周末):Week 2验收 + Week 3准备
任务1:Week 2总体验收
- 前端统一架构验收
- 后端代码分层验收
- 编写Week 2总结报告
任务2:ASL准备工作
- 阅读ASL需求文档
- 准备CloseAI测试(4个LLM)
- 规划Week 3详细任务
Week 2交付物清单:
- ✅ 前端统一布局框架
- ✅ 模块注册和动态路由机制
- ✅ 3个现有模块整合完成
- ✅ 后端三层代码结构
- ✅ 前端架构设计文档
- ✅ ASL可以在统一框架下开始开发
📚 阶段3:ASL核心功能开发(Week 3-4)
时间: 2025-11-21 至 2025-12-04(2周)
优势: 在统一前端架构下开发,4个LLM已配置好
重点: 文献筛选核心功能
Week 3 Day 1-2:ASL详细设计
Day 1上午:4个LLM集成测试 ⭐
任务:验证4个LLM可用性
- 测试DeepSeek-V3连接
- 测试GPT-5-Pro连接(CloseAI)
- 测试Claude-4.5连接(CloseAI)
- 测试Qwen-Max连接
- 编写LLM统一调用服务
4个LLM配置(已完成):
- DeepSeek-V3 (直连) - 快速初筛 ✅
- GPT-5-Pro (CloseAI) - 精准筛选 ✅
- Claude-4.5 (CloseAI) - 冲突仲裁 ✅
- Qwen-Max (备选) - 长文本处理 ✅
参考文档:
02-通用能力层/01-LLM大模型网关/03-CloseAI集成指南.md
Day 1下午:ASL数据库设计
任务:设计asl_schema表结构
- 文献项目表(literature_projects)
- PICO配置表(pico_configs)
- 文献条目表(literature_items)
- 包含4个模型的筛选结果字段
- 共识决策字段
- 成本统计字段
- 编写数据库设计文档
输出文档:
03-业务模块/ASL-AI智能文献/02-技术设计/01-数据库设计.md
Day 2:ASL API和前端设计
任务1:API设计
- 项目管理API
- 文献导入API
- 4模型筛选API
- 结果查询API
任务2:前端页面设计
- 在
frontend/src/modules/asl/下设计页面结构 - 自动接入统一导航(已有框架)
- 设计筛选结果展示(显示4个模型意见)
输出文档:
03-业务模块/ASL-AI智能文献/02-技术设计/02-API设计规范.md03-业务模块/ASL-AI智能文献/02-技术设计/03-前端页面设计.md
Week 3 Day 3-5 + Week 4:ASL核心功能开发
功能1:文献项目管理
- 创建/编辑/删除项目
- PICO配置
- 项目列表展示
功能2:文献导入
- CSV格式解析
- 批量导入
- 数据验证
功能3:4模型智能筛选 ⭐⭐⭐
- 双模型并行筛选(DeepSeek + GPT-5)
- 结果一致性判断
- 冲突时启用Claude仲裁
- 成本统计和优化
功能4:筛选结果管理
- 结果展示(4个模型对比)
- 共识度展示
- 人工复核界面
- 导出功能
筛选策略(参考CloseAI集成指南):
// 策略1:双模型对比(推荐)⭐
async screenWithTwoModels(literature) {
const [deepseek, gpt5] = await Promise.all([
llm.chat('deepseek', prompt),
llm.chat('gpt5', prompt),
]);
if (deepseek.decision === gpt5.decision) {
return { consensus: 'high', decision: deepseek.decision };
}
// 启用Claude仲裁
const claude = await llm.chat('claude', prompt);
return resolveConflict([deepseek, gpt5, claude]);
}
Week 4交付物:
- ✅ ASL Phase 1完整功能
- ✅ 4个LLM集成完成
- ✅ 筛选结果对比展示
- ✅ 完整测试通过
🔧 阶段4:LLM网关统一 + 其他模块(Week 5+)
时间: 2025-12-05 开始
策略: 有了多个模块实践,统一抽取LLM网关
Week 5-6:LLM网关重构 ⭐
为什么Week 5再做?
- ✅ Week 3-4 ASL开发时,已有4个模型实践
- ✅ 有了具体使用场景,抽取更合理
- ✅ 避免过度设计
任务:
- 统一LLM调用接口
- 版本分级(专业版/高级版/旗舰版)
- 配额管理和限流
- Token计数和计费
- 使用记录和监控
参考:
02-通用能力层/01-LLM大模型网关/[AI对接] LLM网关快速上下文.md
Week 7+:其他模块
- 数据清洗模块(DC)
- 智能统计分析(SSA)
- 统计分析工具(ST)
- 运营管理(ADMIN)
📊 V2.2版工作量总结
| 阶段 | 任务 | V2.1工作量 | V2.2工作量 | 变化 |
|---|---|---|---|---|
| Week 1 | Schema隔离 | 2天 | 2天 | 不变 ✅ |
| Week 2 | 后端分层+LLM网关 | 2天 | 前端架构2天+后端分层1.5天 | 调整 ⭐ |
| Week 3-4 | ASL开发 | 2周 | 2周(但在统一框架下) | 优化 ✅ |
| Week 5+ | 其他模块 | - | LLM网关+其他模块 | 延后 ✅ |
总体工作量: 4周 → 4周(不变) 关键优化: 前端架构提前,避免ASL开发后重构 ⭐⭐⭐
🎯 成功标准
Week 1成功标准
- ✅ 10个Schema全部创建(3详细+7空)
- ✅ Platform/AIA/PKB数据100%迁移
- ✅ AIA和PKB文档完整
Week 2成功标准 ⭐⭐⭐
- ✅ 前端统一布局框架完成
- ✅ 3个现有模块成功接入统一导航
- ✅ 模块注册机制清晰
- ✅ 后端三层代码结构清晰
- ✅ ASL可以在统一框架下开始开发
Week 3-4成功标准
- ✅ ASL文献筛选功能完整
- ✅ 4个LLM集成成功(DeepSeek/GPT-5/Claude-4.5/Qwen)
- ✅ 双模型对比+三模型仲裁实现
- ✅ 筛选结果对比展示完善
Week 5+成功标准
- ✅ LLM网关统一调用接口
- ✅ 配额管理和计费系统
- ✅ 其他模块逐步开发
💡 关键优势总结
V2.2版的核心优势 ⭐⭐⭐
1. 架构先行,避免返工
- 前端统一架构先完成
- ASL在统一框架下开发
- 不需要开发后再重构
2. 聚焦核心价值
- Week 1: 数据架构基础 ✅
- Week 2: 前端+后端架构统一 ⭐
- Week 3-4: ASL核心功能 ⭐
- Week 5+: 优化和扩展
3. Just-in-time开发
- LLM网关:Week 5有实践再抽取
- 其他模块:按需逐步开发
- 避免过度设计
4. 4个LLM已就绪
- DeepSeek-V3 ✅
- GPT-5-Pro ✅(CloseAI)
- Claude-4.5 ✅(CloseAI)
- Qwen-Max ✅
📝 关于前端架构设计
Week 2 Day 6上午的重点 ⭐
前端架构设计会议议题:
1. 技术栈确认
- UI组件库选择
- 路由方案
- 状态管理方案
- 构建工具配置
2. 布局设计
- 顶部导航栏
- 侧边菜单
- 主内容区
- 面包屑
3. 模块化机制
- 模块注册方式
- 路由动态加载
- 权限控制
- 样式隔离
4. 导航结构
- 一级导航(模块级)
- 二级导航(功能级)
- 响应式适配
说明: 这些问题在Week 2 Day 6上午集中讨论和决策,不在本计划中详细展开。
🔗 相关文档
核心参考文档
架构设计:
LLM配置:
Schema设计:
- 数据库连接配置
- Schema隔离架构设计(待创建)
🎯 下一步行动
立即开始(如果还没开始Week 1)
- Week 1 Day 1:规划10个Schema架构
- Week 1 Day 2:编写迁移脚本
- Week 1 Day 3:执行Schema迁移
如果Week 1已完成
-
Week 2 Day 6上午:前端架构设计会议 ⭐⭐⭐
- 确定技术栈
- 设计模块注册机制
- 设计导航结构
-
Week 2 Day 6下午:开始实施前端架构
-
Week 2 Day 8:后端代码分层
制定人: AI助手
版本: V2.2(前端架构优先版)
最后更新: 2025-11-09
核心策略:
- ✅ Schema隔离(3详细+7空)- 架构基础
- ✅ 前端统一架构优先 - 避免返工 ⭐⭐⭐
- ✅ 后端代码分层 - 模块清晰
- ✅ ASL在统一框架下开发 - 高效开发
- ✅ 4个LLM已就绪(CloseAI配置完成)- 质量保证
- ✅ LLM网关延后到Week 5 - Just-in-time开发
核心理念:架构先行 + 聚焦核心 + Just-in-time = 高效务实! ⭐⭐⭐