feat(admin): Add user management and upgrade to module permission system

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
This commit is contained in:
2026-01-16 13:42:10 +08:00
parent 98d862dbd4
commit 66255368b7
560 changed files with 70424 additions and 52353 deletions

View File

@@ -1,8 +1,8 @@
# API路由总览
> **<EFBFBD><EFBFBD>嚗?* <20>𣂷<EFBFBD><F0A382B7><EFBFBD><EFBFBD>𡅅PI蝡舐<E89DA1><E88890><EFBFBD><EFBFBD>毺揣撘𤏪<E69298>靘蹂<E99D98><E8B982>交𪄳<E4BAA4><EFBFBD><E5B1B8>滩楝<E6BBA9><EFBFBD>蝒?
> **霂衣<EFBFBD>霈曇恣嚗?* 霂瑟䰻<E7919F><EFBFBD><E79285><E288AA>?`02-API霈曇恣.md`
> **<EFBFBD><EFBFBD>URL嚗?* `http://localhost:3001/api/v1`
> **目的:** 提供所有API端点的快速索引便于查找和避免路由冲突
> **详细设计:** 请查看各模块的 `02-API设计.md`
> **基础URL** `http://localhost:3001/api/v1`
> **最后更新:** 2025-11-06
---
@@ -13,9 +13,9 @@
```
/api/v{version}/{module}/{resource}/{id?}/{action?}
蝷箔<EFBFBD>嚗?
示例:
/api/v1/literature/projects # 获取文献项目列表
/api/v1/literature/projects/123 # <EFBFBD><EFBFBD>ID=123<EFBFBD><EFBFBD><EFBFBD>?
/api/v1/literature/projects/123 # 获取ID=123的项目
/api/v1/literature/projects/123/export # 导出项目
```
@@ -23,350 +23,350 @@
| 模块代码 | 路由前缀 | 说明 |
|---------|---------|------|
| 撟喳蝱<EFBFBD><EFBFBD>撅?| `/auth`, `/users`, `/admin` | 霈方<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?|
| 平台基础层 | `/auth`, `/users`, `/admin` | 认证、用户、管理 |
| LLM网关 | `/llm` | LLM调用 |
| AIA | `/chat`, `/agents` | AI智能问答 |
| ASL | `/literature` | AI智能文献 |
| PKB | `/knowledge-bases`, `/kb` | 銝芯犖<EFBFBD><EFBFBD>摨?|
| PKB | `/knowledge-bases`, `/kb` | 个人知识库 |
| DC | `/data-cleaning` | 数据清洗 |
| SSA | `/analysis` | 智能统计分析 |
| ST | `/tools` | 统计工具 |
| RVW | `/review` | 稿件审查 |
| ADMIN | `/admin` | 餈鞱𨯫蝞∠<EFBFBD>蝡?|
| ADMIN | `/admin` | 运营管理端 |
---
## <EFBFBD><EFBFBD> 霈方<E99C88>銝𡒊鍂<F0A1928A>瑞恣<E7919E><E681A3><EFBFBD>/api/v1/auth, /api/v1/users嚗?
## 🔐 认证与用户管理(/api/v1/auth, /api/v1/users
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>** <20>?撌脣<E6928C><E884A3>?
**霂衣<EFBFBD>霈曇恣嚗?* [UAM/02-API霈曇恣](../01-撟喳蝱<EFBFBD><EFBFBD>撅?01-<2D><EFBFBD>銝擧<E98A9D><E693A7>𣂷葉敹?UAM)/02-API霈曇恣.md)<EFBFBD><EFBFBD><EFBFBD>𥕦遣嚗?
**状态:** ✅ 已实现
**详细设计:** [UAM/02-API设计](../01-平台基础层/01-用户与权限中心(UAM)/02-API设计.md)(待创建)
### 认证相关
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/auth/register` | POST | <EFBFBD><EFBFBD>瘜典<EFBFBD> | <EFBFBD>?|
| `/api/v1/auth/login` | POST | <EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <EFBFBD>?|
| `/api/v1/auth/logout` | POST | <EFBFBD><EFBFBD><EFBFBD>餃枂 | <EFBFBD>?|
| `/api/v1/auth/refresh` | POST | <EFBFBD>瑟鰵Token | <EFBFBD>?|
| `/api/v1/auth/profile` | GET | <EFBFBD><EFBFBD>敶枏<EFBFBD><EFBFBD><EFBFBD>靽⊥<EFBFBD> | <EFBFBD>?|
| `/api/v1/auth/profile` | PUT | <EFBFBD>湔鰵敶枏<EFBFBD><EFBFBD><EFBFBD>靽⊥<EFBFBD> | <EFBFBD>?|
| `/api/v1/auth/register` | POST | 用户注册 | |
| `/api/v1/auth/login` | POST | 用户登录 | |
| `/api/v1/auth/logout` | POST | 用户登出 | |
| `/api/v1/auth/refresh` | POST | 刷新Token | |
| `/api/v1/auth/profile` | GET | 获取当前用户信息 | |
| `/api/v1/auth/profile` | PUT | 更新当前用户信息 | |
### 用户管理
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/users` | GET | <EFBFBD><EFBFBD><EFBFBD>𡑒”嚗<EFBFBD><EFBFBD>憿蛛<EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/users/:id` | GET | <EFBFBD><EFBFBD>霂行<EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/users/:id` | PUT | <EFBFBD>湔鰵<EFBFBD><EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/users/:id` | DELETE | <EFBFBD>𣳇膄<EFBFBD><EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/users` | GET | 用户列表(分页) | ADMIN |
| `/api/v1/users/:id` | GET | 用户详情 | ADMIN |
| `/api/v1/users/:id` | PUT | 更新用户 | ADMIN |
| `/api/v1/users/:id` | DELETE | 删除用户 | ADMIN |
---
## <EFBFBD><EFBFBD> LLM憭扳芋<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/api/v1/llm嚗?
## 🤖 LLM大模型网关(/api/v1/llm
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>** <20>?敺<><E695BA><EFBFBD><EFBFBD>P0隡睃<E99AA1>蝥改<E89DA5>
**霂衣<EFBFBD>霈曇恣嚗?* [LLM蝵穃<EFBFBD>/02-API霈曇恣](../02-<EFBFBD>𡁶鍂<EFBFBD><EFBFBD>撅?01-LLM憭扳芋<E689B3><EFBFBD><E8AEA0>?02-API霈曇恣.md)
**状态:** ❌ 待实现P0优先级
**详细设计:** [LLM网关/02-API设计](../02-通用能力层/01-LLM大模型网关/02-API设计.md)
### LLM调用
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/llm/chat` | POST | LLM撖寡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?| <20>?|
| `/api/v1/llm/chat/stream` | POST | LLM撖寡<EFBFBD><EFBFBD><EFBFBD>撘莅SE嚗?| <20>?|
| `/api/v1/llm/quota` | GET | <EFBFBD>亥砭敶枏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <EFBFBD>?|
| `/api/v1/llm/usage` | GET | <EFBFBD>亥砭雿輻鍂蝏蠘恣 | <EFBFBD>?|
| `/api/v1/llm/models` | GET | <EFBFBD><EFBFBD><EFBFBD>舐鍂璅<EFBFBD><EFBFBD>𡑒” | <EFBFBD>?|
| `/api/v1/llm/chat` | POST | LLM对话(非流式) | ✅ |
| `/api/v1/llm/chat/stream` | POST | LLM对话流式SSE | ✅ |
| `/api/v1/llm/quota` | GET | 查询当前用户配额 | |
| `/api/v1/llm/usage` | GET | 查询使用统计 | |
| `/api/v1/llm/models` | GET | 获取可用模型列表 | |
---
## <EFBFBD> AI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?api/v1/chat, /api/v1/agents嚗?
## 💬 AI智能问答(/api/v1/chat, /api/v1/agents
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>** <20>?撌脣<E6928C><E884A3>?
**霂衣<EFBFBD>霈曇恣嚗?* [AIA/02-API霈曇恣](../03-銝𡁜𦛚璅<EFBFBD>/AIA-AI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/02-API霈曇恣.md)<EFBFBD><EFBFBD><EFBFBD>𥕦遣嚗?
**状态:** ✅ 已实现
**详细设计:** [AIA/02-API设计](../03-业务模块/AIA-AI智能问答/02-API设计.md)(待创建)
### 对话管理
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/chat/conversations` | GET | 撖寡<EFBFBD><EFBFBD>𡑒” | <EFBFBD>?|
| `/api/v1/chat/conversations` | POST | <EFBFBD>𥕦遣撖寡<EFBFBD> | <EFBFBD>?|
| `/api/v1/chat/conversations/:id` | GET | 撖寡<EFBFBD>霂行<EFBFBD> | <EFBFBD>?|
| `/api/v1/chat/conversations/:id` | DELETE | <EFBFBD>𣳇膄撖寡<EFBFBD> | <EFBFBD>?|
| `/api/v1/chat/conversations/:id/messages` | GET | 撖寡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𡑒” | <EFBFBD>?|
| `/api/v1/chat/conversations/:id/messages` | POST | <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?| <20>?|
| `/api/v1/chat/conversations` | GET | 对话列表 | |
| `/api/v1/chat/conversations` | POST | 创建对话 | |
| `/api/v1/chat/conversations/:id` | GET | 对话详情 | |
| `/api/v1/chat/conversations/:id` | DELETE | 删除对话 | |
| `/api/v1/chat/conversations/:id/messages` | GET | 对话消息列表 | |
| `/api/v1/chat/conversations/:id/messages` | POST | 发送消息 | ✅ |
### <EFBFBD><EFBFBD>雿梶恣<EFBFBD>?
### 智能体管理
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/agents` | GET | <EFBFBD><EFBFBD>雿枏<EFBFBD>銵剁<EFBFBD>12銝迎<EFBFBD> | <EFBFBD>?|
| `/api/v1/agents/:id` | GET | <EFBFBD><EFBFBD>雿栞祕<EFBFBD>?| <20>?|
| `/api/v1/agents` | GET | 智能体列表12个 | |
| `/api/v1/agents/:id` | GET | 智能体详情 | ✅ |
---
## <EFBFBD><EFBFBD> AI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>讃嚗?api/v1/literature嚗?
## 📖 AI智能文献(/api/v1/literature
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>** <20>?霈曇恣銝哨<E98A9D>P0隡睃<E99AA1>蝥改<E89DA5>
**霂衣<EFBFBD>霈曇恣嚗?* [ASL/02-API霈曇恣](../03-銝𡁜𦛚璅<EFBFBD>/ASL-AI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/02-API霈曇恣.md)
**状态:** ⏳ 设计中P0优先级
**详细设计:** [ASL/02-API设计](../03-业务模块/ASL-AI智能文献/02-API设计.md)
### 项目管理
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/literature/projects` | GET | <EFBFBD><EFBFBD>讃憿寧𤌍<EFBFBD>𡑒” | <EFBFBD>?|
| `/api/v1/literature/projects` | POST | <EFBFBD>𥕦遣<EFBFBD><EFBFBD>讃憿寧𤌍 | <EFBFBD>?|
| `/api/v1/literature/projects/:id` | GET | 憿寧𤌍霂行<EFBFBD> | <EFBFBD>?|
| `/api/v1/literature/projects/:id` | PUT | <EFBFBD>湔鰵憿寧𤌍 | <EFBFBD>?|
| `/api/v1/literature/projects/:id` | DELETE | <EFBFBD>𣳇膄憿寧𤌍 | <EFBFBD>?|
| `/api/v1/literature/projects` | GET | 文献项目列表 | |
| `/api/v1/literature/projects` | POST | 创建文献项目 | |
| `/api/v1/literature/projects/:id` | GET | 项目详情 | |
| `/api/v1/literature/projects/:id` | PUT | 更新项目 | |
| `/api/v1/literature/projects/:id` | DELETE | 删除项目 | |
### 文献筛选(标题摘要初筛)⭐
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/literature/projects/:id/items/import` | POST | 撖澆<EFBFBD>CSV<EFBFBD><EFBFBD> | <EFBFBD>?|
| `/api/v1/literature/projects/:id/pico` | POST | <EFBFBD>滨蔭PICO<EFBFBD><EFBFBD><EFBFBD> | <EFBFBD>?|
| `/api/v1/literature/projects/:id/pico` | GET | <EFBFBD><EFBFBD>PICO<EFBFBD>滨蔭 | <EFBFBD>?|
| `/api/v1/literature/projects/:id/screening/title` | POST | <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <EFBFBD>?|
| `/api/v1/literature/projects/:id/screening/status` | GET | <EFBFBD>亥砭蝑偦<EFBFBD><EFBFBD>摨?| <20>?|
| `/api/v1/literature/projects/:id/screening/results` | GET | <EFBFBD><EFBFBD>蝑偦<EFBFBD><EFBFBD><EFBFBD>?| <20>?|
| `/api/v1/literature/projects/:id/screening/export` | POST | 撖澆枂Excel | <EFBFBD>?|
| `/api/v1/literature/projects/:id/items/import` | POST | 导入CSV文件 | |
| `/api/v1/literature/projects/:id/pico` | POST | 配置PICO标准 | |
| `/api/v1/literature/projects/:id/pico` | GET | 获取PICO配置 | |
| `/api/v1/literature/projects/:id/screening/title` | POST | 执行标题摘要初筛 | |
| `/api/v1/literature/projects/:id/screening/status` | GET | 查询筛选进度 | ✅ |
| `/api/v1/literature/projects/:id/screening/results` | GET | 获取筛选结果 | ✅ |
| `/api/v1/literature/projects/:id/screening/export` | POST | 导出Excel | |
### <EFBFBD><EFBFBD>讃蝑偦<EFBFBD><EFBFBD><EFBFBD><EFBFBD>憭滨<EFBFBD>嚗?
### 文献筛选(全文复筛)
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/literature/projects/:id/screening/fulltext` | POST | <EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝑偦<EFBFBD>?| <20>?|
| `/api/v1/literature/projects/:id/screening/fulltext/status` | GET | <EFBFBD>亥砭餈𥕦漲 | <EFBFBD>?|
| `/api/v1/literature/projects/:id/screening/fulltext` | POST | 执行全文筛选 | ✅ |
| `/api/v1/literature/projects/:id/screening/fulltext/status` | GET | 查询进度 | |
---
## <EFBFBD><EFBFBD> 銝芯犖<E88AAF><EFBFBD>摨橒<E691A8>/api/v1/knowledge-bases嚗?
## 📚 个人知识库(/api/v1/knowledge-bases
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>** <20>?撌脣<E6928C><E884A3>?
**霂衣<EFBFBD>霈曇恣嚗?* [PKB/02-API霈曇恣](../03-銝𡁜𦛚璅<EFBFBD>/PKB-銝芯犖<E88AAF><EFBFBD>摨?02-API霈曇恣.md)<EFBFBD><EFBFBD><EFBFBD>𥕦遣嚗?
**状态:** ✅ 已实现
**详细设计:** [PKB/02-API设计](../03-业务模块/PKB-个人知识库/02-API设计.md)(待创建)
### <EFBFBD><EFBFBD>摨梶恣<EFBFBD>?
### 知识库管理
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/knowledge-bases` | GET | <EFBFBD><EFBFBD>摨枏<EFBFBD>銵?| <20>?|
| `/api/v1/knowledge-bases` | POST | <EFBFBD>𥕦遣<EFBFBD><EFBFBD>摨?| <20>?|
| `/api/v1/knowledge-bases/:id` | GET | <EFBFBD><EFBFBD>摨栞祕<EFBFBD>?| <20>?|
| `/api/v1/knowledge-bases/:id` | PUT | <EFBFBD>湔鰵<EFBFBD><EFBFBD>摨?| <20>?|
| `/api/v1/knowledge-bases/:id` | DELETE | <EFBFBD>𣳇膄<EFBFBD><EFBFBD>摨?| <20>?|
| `/api/v1/knowledge-bases` | GET | 知识库列表 | ✅ |
| `/api/v1/knowledge-bases` | POST | 创建知识库 | ✅ |
| `/api/v1/knowledge-bases/:id` | GET | 知识库详情 | ✅ |
| `/api/v1/knowledge-bases/:id` | PUT | 更新知识库 | ✅ |
| `/api/v1/knowledge-bases/:id` | DELETE | 删除知识库 | ✅ |
### 文档管理
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/knowledge-bases/:id/documents` | GET | <EFBFBD><EFBFBD><EFBFBD>𡑒” | <EFBFBD>?|
| `/api/v1/knowledge-bases/:id/documents` | POST | 銝𠹺<EFBFBD><EFBFBD><EFBFBD> | <EFBFBD>?|
| `/api/v1/knowledge-bases/:id/documents/:docId` | GET | <EFBFBD><EFBFBD>﹝霂行<EFBFBD> | <EFBFBD>?|
| `/api/v1/knowledge-bases/:id/documents/:docId` | DELETE | <EFBFBD>𣳇膄<EFBFBD><EFBFBD> | <EFBFBD>?|
| `/api/v1/knowledge-bases/:id/documents` | GET | 文档列表 | |
| `/api/v1/knowledge-bases/:id/documents` | POST | 上传文档 | |
| `/api/v1/knowledge-bases/:id/documents/:docId` | GET | 文档详情 | |
| `/api/v1/knowledge-bases/:id/documents/:docId` | DELETE | 删除文档 | |
### RAG问答
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/knowledge-bases/:id/chat` | POST | <EFBFBD><EFBFBD>摨㯄䔮蝑?| <20>?|
| `/api/v1/knowledge-bases/:id/search` | GET | 霂凋<EFBFBD><EFBFBD>蝝?| <20>?|
| `/api/v1/knowledge-bases/:id/chat` | POST | 知识库问答 | ✅ |
| `/api/v1/knowledge-bases/:id/search` | GET | 语义检索 | ✅ |
---
## <EFBFBD><20>唳旿皜<E697BF><E79A9C><EFBFBD><EFBFBD>嚗?api/v1/data-cleaning嚗?
## 🧹 数据清洗整理(/api/v1/data-cleaning
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>** <20>?閫<><E996AB>銝哨<E98A9D>P1隡睃<E99AA1>蝥改<E89DA5>
**霂衣<EFBFBD>霈曇恣嚗?* 敺<>挽霈?
**状态:** ⏳ 规划中P1优先级
**详细设计:** 待设计
### 清洗项目
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/data-cleaning/projects` | GET | <EFBFBD><EFBFBD>憿寧𤌍<EFBFBD>𡑒” | <EFBFBD>?|
| `/api/v1/data-cleaning/projects` | POST | <EFBFBD>𥕦遣皜<EFBFBD><EFBFBD>憿寧𤌍 | <EFBFBD>?|
| `/api/v1/data-cleaning/projects/:id` | GET | 憿寧𤌍霂行<EFBFBD> | <EFBFBD>?|
| `/api/v1/data-cleaning/projects` | GET | 清洗项目列表 | |
| `/api/v1/data-cleaning/projects` | POST | 创建清洗项目 | |
| `/api/v1/data-cleaning/projects/:id` | GET | 项目详情 | |
### ETL配置
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/data-cleaning/projects/:id/etl` | POST | <EFBFBD>滨蔭ETL閫<EFBFBD><EFBFBD> | <EFBFBD>?|
| `/api/v1/data-cleaning/projects/:id/execute` | POST | <EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞餃𦛚 | <EFBFBD>?|
| `/api/v1/data-cleaning/projects/:id/etl` | POST | 配置ETL规则 | |
| `/api/v1/data-cleaning/projects/:id/execute` | POST | 执行清洗任务 | |
---
## <EFBFBD><EFBFBD> <20><EFBFBD>蝏蠘恣<E8A098><E681A3><EFBFBD>嚗?api/v1/analysis嚗?
## 📊 智能统计分析(/api/v1/analysis
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>** <20>?閫<><E996AB>銝哨<E98A9D>P2隡睃<E99AA1>蝥改<E89DA5>
**霂衣<EFBFBD>霈曇恣嚗?* 敺<>挽霈?
**状态:** ⏳ 规划中P2优先级
**详细设计:** 待设计
### 分析项目
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/analysis/projects` | GET | <EFBFBD><EFBFBD><EFBFBD>憿寧𤌍<EFBFBD>𡑒” | <EFBFBD>?|
| `/api/v1/analysis/projects` | POST | <EFBFBD>𥕦遣<EFBFBD><EFBFBD><EFBFBD>憿寧𤌍 | <EFBFBD>?|
| `/api/v1/analysis/projects/:id/execute` | POST | <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <EFBFBD>?|
| `/api/v1/analysis/projects` | GET | 分析项目列表 | |
| `/api/v1/analysis/projects` | POST | 创建分析项目 | |
| `/api/v1/analysis/projects/:id/execute` | POST | 执行分析 | |
---
## <EFBFBD>圲 蝏蠘恣<E8A098><E681A3><EFBFBD>撌亙<E6928C>嚗?api/v1/tools嚗?
## 🔧 统计分析工具(/api/v1/tools
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>** <20>?閫<><E996AB>銝哨<E98A9D>P2隡睃<E99AA1>蝥改<E89DA5>
**霂衣<EFBFBD>霈曇恣嚗?* 敺<>挽霈?
**状态:** ⏳ 规划中P2优先级
**详细设计:** 待设计
### 工具调用
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/tools` | GET | 撌亙<EFBFBD><EFBFBD>𡑒”嚗?00+嚗?| <20>?|
| `/api/v1/tools/:id` | GET | 撌亙<EFBFBD>霂行<EFBFBD> | <EFBFBD>?|
| `/api/v1/tools/:id/execute` | POST | <EFBFBD><EFBFBD>撌亙<EFBFBD> | <EFBFBD>?|
| `/api/v1/tools` | GET | 工具列表100+ | ✅ |
| `/api/v1/tools/:id` | GET | 工具详情 | |
| `/api/v1/tools/:id/execute` | POST | 执行工具 | |
---
## <EFBFBD><EFBFBD> 蝔蹂辣摰⊥䰻蝟餌<E89D9F>嚗?api/v1/review嚗?
## 📄 稿件审查系统(/api/v1/review
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>** <20>?撌脣<E6928C><E884A3><EFBFBD><E5A086><EFBFBD>蝟餌<E89D9F>嚗?
**霂衣<EFBFBD>霈曇恣嚗?* [RVW/02-API霈曇恣](../03-銝𡁜𦛚璅<EFBFBD>/RVW-蝔蹂辣摰⊥䰻蝟餌<E89D9F>/02-API霈曇恣.md)<EFBFBD><EFBFBD><EFBFBD>𥕦遣嚗?
**状态:** ✅ 已实现(独立系统)
**详细设计:** [RVW/02-API设计](../03-业务模块/RVW-稿件审查系统/02-API设计.md)(待创建)
### 审查任务
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/review/tasks` | GET | 摰⊥䰻隞餃𦛚<EFBFBD>𡑒” | <EFBFBD>?|
| `/api/v1/review/tasks` | POST | <EFBFBD>𥕦遣摰⊥䰻隞餃𦛚 | <EFBFBD>?|
| `/api/v1/review/tasks/:id` | GET | 隞餃𦛚霂行<EFBFBD> | <EFBFBD>?|
| `/api/v1/review/tasks/:id/execute` | POST | <EFBFBD><EFBFBD>摰⊥䰻 | <EFBFBD>?|
| `/api/v1/review/tasks/:id/report` | GET | <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗㇊DF嚗?| <20>?|
| `/api/v1/review/tasks` | GET | 审查任务列表 | |
| `/api/v1/review/tasks` | POST | 创建审查任务 | |
| `/api/v1/review/tasks/:id` | GET | 任务详情 | |
| `/api/v1/review/tasks/:id/execute` | POST | 执行审查 | |
| `/api/v1/review/tasks/:id/report` | GET | 生成报告PDF | ✅ |
---
## <EFBFBD><EFBFBD>儭?餈鞱𨯫蝞∠<E89D9E>蝡荔<E89DA1>/api/v1/admin嚗?
## 🛠️ 运营管理端(/api/v1/admin
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>** <20>?閫<><E996AB>銝哨<E98A9D>P1隡睃<E99AA1>蝥改<E89DA5>
**霂衣<EFBFBD>霈曇恣嚗?* [ADMIN/02-API霈曇恣](../03-銝𡁜𦛚璅<EFBFBD>/ADMIN-餈鞱𨯫蝞∠<EFBFBD>蝡?02-API霈曇恣.md)
**状态:** ⏳ 规划中P1优先级
**详细设计:** [ADMIN/02-API设计](../03-业务模块/ADMIN-运营管理端/02-API设计.md)
### <EFBFBD><EFBFBD>蝞∠<EFBFBD> 潃?
### 用户管理 ⭐
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/admin/users` | GET | <EFBFBD><EFBFBD><EFBFBD>𡑒” | <EFBFBD>?ADMIN |
| `/api/v1/admin/users/:id` | GET | <EFBFBD><EFBFBD>霂行<EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/admin/users/:id` | PUT | <EFBFBD>湔鰵<EFBFBD><EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/admin/users/:id/plan` | PUT | 靽格㺿憟烾<EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/admin/users/:id/disable` | POST | <EFBFBD><EFBFBD><EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/admin/users` | GET | 用户列表 | ADMIN |
| `/api/v1/admin/users/:id` | GET | 用户详情 | ADMIN |
| `/api/v1/admin/users/:id` | PUT | 更新用户 | ADMIN |
| `/api/v1/admin/users/:id/plan` | PUT | 修改套餐 | ADMIN |
| `/api/v1/admin/users/:id/disable` | POST | 禁用用户 | ADMIN |
### Feature Flag蝞∠<EFBFBD> 潃?
### Feature Flag管理 ⭐
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/admin/feature-flags` | GET | Flag<EFBFBD>𡑒” | <EFBFBD>?ADMIN |
| `/api/v1/admin/feature-flags` | POST | <EFBFBD>𥕦遣Flag | <EFBFBD>?ADMIN |
| `/api/v1/admin/feature-flags/:id` | PUT | <EFBFBD>湔鰵Flag | <EFBFBD>?ADMIN |
| `/api/v1/admin/users/:id/flags` | GET | <EFBFBD><EFBFBD>Flag | <EFBFBD>?ADMIN |
| `/api/v1/admin/users/:id/flags` | PUT | <EFBFBD>湔鰵<EFBFBD><EFBFBD>Flag | <EFBFBD>?ADMIN |
| `/api/v1/admin/feature-flags` | GET | Flag列表 | ADMIN |
| `/api/v1/admin/feature-flags` | POST | 创建Flag | ADMIN |
| `/api/v1/admin/feature-flags/:id` | PUT | 更新Flag | ADMIN |
| `/api/v1/admin/users/:id/flags` | GET | 用户Flag | ADMIN |
| `/api/v1/admin/users/:id/flags` | PUT | 更新用户Flag | ADMIN |
### LLM<EFBFBD>蝞∠<EFBFBD> 潃?
### LLM模型管理 ⭐
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/admin/llm/models` | GET | <EFBFBD><EFBFBD>𡑒” | <EFBFBD>?ADMIN |
| `/api/v1/admin/llm/models` | POST | 瘛餃<EFBFBD><EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/admin/llm/models/:id` | PUT | <EFBFBD>湔鰵璅<EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/admin/llm/usage` | GET | LLM雿輻鍂蝏蠘恣 | <EFBFBD>?ADMIN |
| `/api/v1/admin/llm/cost-analysis` | GET | <EFBFBD>鞉𧋦<EFBFBD><EFBFBD><EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/admin/llm/models` | GET | 模型列表 | ADMIN |
| `/api/v1/admin/llm/models` | POST | 添加模型 | ADMIN |
| `/api/v1/admin/llm/models/:id` | PUT | 更新模型 | ADMIN |
| `/api/v1/admin/llm/usage` | GET | LLM使用统计 | ADMIN |
| `/api/v1/admin/llm/cost-analysis` | GET | 成本分析 | ADMIN |
### Prompt管理
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/admin/prompts` | GET | Prompt<EFBFBD>𡑒” | <EFBFBD>?ADMIN |
| `/api/v1/admin/prompts` | POST | <EFBFBD>𥕦遣Prompt | <EFBFBD>?ADMIN |
| `/api/v1/admin/prompts/:id` | PUT | <EFBFBD>湔鰵Prompt | <EFBFBD>?ADMIN |
| `/api/v1/admin/prompts` | GET | Prompt列表 | ADMIN |
| `/api/v1/admin/prompts` | POST | 创建Prompt | ADMIN |
| `/api/v1/admin/prompts/:id` | PUT | 更新Prompt | ADMIN |
### 日志查询
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/admin/logs` | GET | <EFBFBD><EFBFBD><EFBFBD>𡑒” | <EFBFBD>?ADMIN |
| `/api/v1/admin/logs/errors` | GET | <EFBFBD>躰秤<EFBFBD><EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/admin/logs/operations` | GET | <EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <EFBFBD>?ADMIN |
| `/api/v1/admin/logs` | GET | 日志列表 | ADMIN |
| `/api/v1/admin/logs/errors` | GET | 错误日志 | ADMIN |
| `/api/v1/admin/logs/operations` | GET | 操作日志 | ADMIN |
### 数据报表
| 端点 | 方法 | 说明 | 认证 |
|------|------|------|------|
| `/api/v1/admin/reports/overview` | GET | <EFBFBD><EFBFBD><EFBFBD>唳旿 | <EFBFBD>?ADMIN |
| `/api/v1/admin/reports/users` | GET | <EFBFBD><EFBFBD>瘣餉<EFBFBD>摨?| <20>?ADMIN |
| `/api/v1/admin/reports/features` | GET | <EFBFBD><EFBFBD>雿輻鍂<EFBFBD>?| <20>?ADMIN |
| `/api/v1/admin/reports/llm` | GET | LLM蝏蠘恣 | <EFBFBD>?ADMIN |
| `/api/v1/admin/reports/overview` | GET | 总览数据 | ADMIN |
| `/api/v1/admin/reports/users` | GET | 用户活跃度 | ✅ ADMIN |
| `/api/v1/admin/reports/features` | GET | 功能使用率 | ✅ ADMIN |
| `/api/v1/admin/reports/llm` | GET | LLM统计 | ADMIN |
---
## 📊 路由统计
### <EFBFBD>㗇芋<EFBFBD><EFBFBD>霈?
### 按模块统计
| <EFBFBD> | 蝡舐<E89DA1><E88890><EFBFBD> | <20><EFBFBD>?|
| 模块 | 端点数量 | 状态 |
|------|---------|------|
| 霈方<EFBFBD>銝𡒊鍂<EFBFBD>?| 10 | <20>?撌脣<E6928C><E884A3>?|
| LLM蝵穃<EFBFBD> | 5 | <EFBFBD>?敺<><E695BA><EFBFBD>?|
| AI<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | 8 | <EFBFBD>?撌脣<E6928C><E884A3>?|
| AI<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | 15 | <EFBFBD>?霈曇恣銝?|
| 銝芯犖<EFBFBD><EFBFBD>摨?| 10 | <20>?撌脣<E6928C><E884A3>?|
| <EFBFBD>唳旿皜<EFBFBD><EFBFBD> | 5 | <EFBFBD>?閫<><E996AB>銝?|
| <EFBFBD><EFBFBD>蝏蠘恣<EFBFBD><EFBFBD><EFBFBD> | 3 | <20>?閫<><E996AB>銝?|
| 蝏蠘恣撌亙<EFBFBD> | 3 | <EFBFBD>?閫<><E996AB>銝?|
| 蝔蹂辣摰⊥䰻 | 5 | <EFBFBD>?撌脣<E6928C><E884A3>?|
| 餈鞱𨯫蝞∠<EFBFBD>蝡?| 20 | <20>?閫<><E996AB>銝?|
| 认证与用户 | 10 | ✅ 已实现 |
| LLM网关 | 5 | ❌ 待实现 |
| AI智能问答 | 8 | ✅ 已实现 |
| AI智能文献 | 15 | ⏳ 设计中 |
| 个人知识库 | 10 | ✅ 已实现 |
| 数据清洗 | 5 | ⏳ 规划中 |
| 智能统计分析 | 3 | ⏳ 规划中 |
| 统计工具 | 3 | ⏳ 规划中 |
| 稿件审查 | 5 | ✅ 已实现 |
| 运营管理端 | 20 | ⏳ 规划中 |
| **总计** | **~85** | - |
---
## <EFBFBD>𩤃<EFBFBD> 頝舐眏<E88890><EFBFBD><EFBFBD><E79289>?
## ⚠️ 路由冲突检查
### 潜在冲突
**<EFBFBD>?<3F><EFBFBD><E8B8B9><EFBFBD>嚗?*
**❌ 避免冲突:**
```
# <EFBFBD>躰秤嚗𡁏芋<EFBFBD><EFBFBD>蝘啣<EFBFBD>蝒?
# 错误:模块名称冲突
/api/v1/admin/users # 管理端的用户管理
/api/v1/users # 平台层的用户管理
# <EFBFBD>嚗𡁏<EFBFBD>蝖桀躹<EFBFBD>?
# 正确:明确区分
/api/v1/auth/profile # 当前用户信息
/api/v1/admin/users # 管理端用户CRUD
```
---
## <EFBFBD><EFBFBD> 敹恍<E695B9><E6818D><EFBFBD><EFBFBD><E69AB9>?
## 🔍 快速查找指南
### 场景1查找某个模块的所有API
1. <EFBFBD><EFBFBD><EFBFBD><EFBFBD>銵冽聢銝剜𪄳<EFBFBD>啣笆摨娍芋<EFBFBD>?
1. 在上面的表格中找到对应模块
2. 点击"详细设计"链接
3. 查看该模块的完整API文档
### 场景2设计新API端点
1. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝖桐<EFBFBD>頝舐眏銝滚<EFBFBD>蝒?
1. 查看本文档,确保路由不冲突
2. 参考[API设计规范](./02-API设计规范.md)
3. 使用[API设计模板](../_templates/API设计-模板.md)
### 场景3查看全局API架构
1. 阅读本文档(快速了解所有端点)
2. <EFBFBD><EFBFBD>[<5B><EFBFBD>霈曇恣<E69B87>冽艶<E586BD>霄(../00-蝟餌<E89D9F><E9A48C><EFBFBD>霈曇恣/08-<2D><EFBFBD>霈曇恣<E69B87>冽艶<E586BD>?md)
2. 查看[架构设计全景图](../00-系统总体设计/08-架构设计全景图.md)
---
## 🔗 相关文档
**<EFBFBD><EFBFBD>嚗?*
- [API霈曇恣閫<EFBFBD><EFBFBD>](./02-API霈曇恣閫<EFBFBD><EFBFBD>.md) 潃?敹<>
- [霈方<EFBFBD>銝擧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(./02-API霈曇恣閫<E681A3><E996AB>.md#霈方<EFBFBD>銝擧<EFBFBD><EFBFBD>?
**规范:**
- [API设计规范](./02-API设计规范.md) ⭐ 必读
- [认证与授权规范](./02-API设计规范.md#认证与授权)
**璅⊥踎嚗?*
**模板:**
- [API设计模板](../_templates/API设计-模板.md)
**数据库:**
@@ -376,7 +376,7 @@
**最后更新:** 2025-11-06
**维护人:** 技术架构师
**<EFBFBD><EFBFBD>𧋦嚗?* v1.0
**版本:** v1.0