派洞察 - 管理员模块
🎯 派洞察——科研文献智能 RAG 知识库系统
🛡️ 管理员模块
模块定位:管理员模块是系统的核心管理模块,负责处理系统管理、用户管理、知识库管理和系统监控等高级功能。
🎯 核心目标
- ✅ 系统管理:提供系统级别的配置和管理功能
- ✅ 用户管控:管理所有用户账户,包括创建、修改、权限分配等
- ✅ 知识库维护:管理知识库文档,包括添加、删除、分类等
- ✅ 系统监控:实时监控系统状态和用户活动
- ✅ 安全保障:确保系统运行的安全性和稳定性
📊 一、功能需求
👥 用户管理
📝 功能描述:管理员可以查看、创建、修改和删除用户账户,分配组织标签和管理权限。
🔧 管理功能:
- 查看所有用户列表和详细信息
- 创建新的管理员用户
- 为用户分配组织标签
- 管理用户权限和状态
📚 知识库管理
📖 功能描述:管理员可以管理知识库文档,包括添加新文档、删除旧文档等维护操作。
🔧 管理功能:
- 添加新的知识库文档
- 删除不需要的文档
- 管理文档描述和分类
📊 系统监控
📈 功能描述:实时监控系统的运行状态,包括资源使用情况和用户活动。
🔧 监控内容:
- CPU、内存、磁盘使用率
- 活跃用户数
- 文档总数和对话总数
- 用户活动日志
🏷️ 组织标签管理
🆔 功能描述:管理员可以创建、修改、删除组织标签,构建组织标签树结构。
🔧 管理功能:
- 创建新的组织标签
- 更新现有标签信息
- 删除不需要的标签
- 获取标签树结构
💬 对话历史管理
📝 功能描述:管理员可以查看和查询所有用户的对话历史,支持按用户和时间范围筛选。
🔧 查询功能:
- 查看所有用户的对话历史
- 按指定用户筛选对话
- 按时间范围筛选对话
- 导出对话记录
🛠️ 二、技术方案
🔐 身份认证与授权
🛡️ 管理员验证:所有管理员接口都需要验证用户的管理员身份,确保只有管理员才能访问。
🔑 JWT认证:使用JWT token进行身份认证,从请求头中提取并验证token。
🎯 权限控制:基于角色的访问控制(RBAC),只有ADMIN角色的用户才能访问管理员接口。
💾 数据持久化
🗄️ MySQL:存储用户信息、组织标签、知识库文档信息等结构化数据。
⚡ Redis:缓存用户会话信息、对话历史、系统状态等实时数据。
🚀 Spring Data JPA:提供数据库操作的ORM支持,简化数据访问层开发。
🧰 辅助工具
🔤 Apache Commons Lang3:提供字符串处理、集合操作等工具方法。
📝 Jackson:JSON序列化和反序列化,处理API请求响应数据。
📊 LogUtils:统一的日志记录工具,记录业务操作和性能监控。
🔍 系统监控
📈 性能监控:使用LogUtils.PerformanceMonitor监控系统接口性能。
📝 业务日志:记录所有管理员操作的详细日志,便于审计和问题追踪。
⚠️ 错误处理:统一的异常处理机制,确保系统稳定性。
📝 三、关键流程
📋 1. 获取所有用户列表
🔄 流程步骤
- 🔍 提取Token:从Authorization头中提取Bearer token
- ✅ 验证管理员:验证当前用户是否为管理员
- 📊 查询用户:调用userRepository.findAll()获取所有用户
- 🛡️ 数据脱敏:移除用户密码等敏感信息
- 📤 返回结果:返回用户列表数据
接口设计
请求URL
1 | GET /api/v1/admin/users |
请求头
1 | Authorization: Bearer JWT_TOKEN |
成功响应
1 | { |
失败响应
1 | { |
📚 2. 添加知识库文档
🔄 流程步骤
- 📤 接收请求:接收文件和描述信息
- ✅ 验证管理员:验证当前用户的管理员身份
- 📁 文件处理:处理上传的文档文件
- 💾 存储文档:将文档信息保存到知识库
- 📝 记录日志:记录添加文档的操作日志
- 📤 返回结果:返回操作成功信息
接口设计
请求URL
1 | POST /api/v1/admin/knowledge/add |
请求参数
1 | file: MultipartFile // 文档文件 |
成功响应
1 | { |
失败响应
1 | { |
🗑️ 3. 删除知识库文档
🔄 流程步骤
- 📋 接收参数:接收文档ID参数
- ✅ 验证管理员:验证当前用户的管理员身份
- 🔍 查找文档:验证文档是否存在
- 🗑️ 删除文档:从知识库中删除指定文档
- 📝 记录日志:记录删除文档的操作日志
- 📤 返回结果:返回删除成功信息
接口设计
请求URL
1 | DELETE /api/v1/admin/knowledge/{documentId} |
路径参数
1 | documentId: String // 文档唯一标识 |
成功响应
1 | { |
失败响应
1 | { |
📊 4. 获取系统状态
🔄 流程步骤
- ✅ 验证管理员:验证当前用户的管理员身份
- 📈 收集数据:收集系统各项状态指标
- 📊 计算指标:计算CPU、内存、磁盘使用率等
- 📤 返回结果:返回系统状态信息
接口设计
请求URL
1 | GET /api/v1/admin/system/status |
成功响应
1 | { |
失败响应
1 | { |
📋 5. 获取用户活动日志
🔄 流程步骤
- ✅ 验证管理员:验证当前用户的管理员身份
- 🔍 参数解析:解析查询参数(用户名、时间范围等)
- 📊 查询日志:从数据库或缓存中获取用户活动数据
- ⏰ 时间过滤:根据时间范围筛选活动记录
- 📤 返回结果:返回用户活动日志列表
接口设计
请求URL
1 | GET /api/v1/admin/user-activities |
请求参数
1 | username: String (可选) // 指定用户名 |
成功响应
1 | { |
👤 6. 创建管理员用户
🔄 流程步骤
- ✅ 验证管理员:验证当前用户的管理员身份
- 📋 参数验证:验证新管理员用户名和密码
- 🔍 重复检查:检查用户名是否已存在
- 🔐 密码加密:使用BCrypt加密新用户密码
- 🎭 角色分配:为新用户分配ADMIN角色
- 🏷️ 创建标签:创建私有组织标签
- 💾 保存用户:将新管理员信息保存到数据库
- 📤 返回结果:返回创建成功信息
接口设计
请求URL
1 | POST /api/v1/admin/users/create-admin |
请求体
1 | { |
成功响应
1 | { |
失败响应
1 | { |
🏷️ 7. 创建组织标签
🔄 流程步骤
- ✅ 验证管理员:验证当前用户的管理员身份
- 📋 参数验证:验证标签ID、名称等必填参数
- 🔍 重复检查:检查标签ID是否已存在
- 👪 父标签验证:验证父标签是否存在(如果有)
- 💾 保存标签:将新标签信息保存到数据库
- 📤 返回结果:返回创建成功的标签信息
接口设计
请求URL
1 | POST /api/v1/admin/org-tags |
请求体
1 | { |
成功响应
1 | { |
📋 8. 获取所有组织标签
🔄 流程步骤
- ✅ 验证管理员:验证当前用户的管理员身份
- 📊 查询标签:从数据库获取所有组织标签
- 📤 返回结果:返回标签列表
接口设计
请求URL
1 | GET /api/v1/admin/org-tags |
成功响应
1 | { |
🔗 9. 为用户分配组织标签
🔄 流程步骤
- ✅ 验证管理员:验证当前用户的管理员身份
- 📋 参数验证:验证用户ID和标签列表
- 🔍 用户验证:验证目标用户是否存在
- 🏷️ 标签验证:验证所有标签是否存在
- 🔗 分配标签:将标签分配给用户
- 📝 记录日志:记录标签分配操作
- 📤 返回结果:返回分配成功信息
接口设计
请求URL
1 | PUT /api/v1/admin/users/{userId}/org-tags |
路径参数
1 | userId: Long // 用户ID |
请求体
1 | { |
成功响应
1 | { |
🌳 10. 获取组织标签树结构
🔄 流程步骤
- ✅ 验证管理员:验证当前用户的管理员身份
- 📊 构建树形:从数据库获取标签并构建树形结构
- 🔄 层级处理:处理父子标签关系
- 📤 返回结果:返回树形结构的标签数据
接口设计
请求URL
1 | GET /api/v1/admin/org-tags/tree |
成功响应
1 | { |
✏️ 11. 更新组织标签
🔄 流程步骤
- ✅ 验证管理员:验证当前用户的管理员身份
- 📋 参数验证:验证更新参数
- 🔍 标签验证:验证目标标签是否存在
- 👪 父标签验证:验证新的父标签(如果有)
- ✏️ 更新信息:更新标签的名称、描述等信息
- 📝 记录日志:记录标签更新操作
- 📤 返回结果:返回更新后的标签信息
接口设计
请求URL
1 | PUT /api/v1/admin/org-tags/{tagId} |
路径参数
1 | tagId: String // 标签ID |
请求体
1 | { |
成功响应
1 | { |
🗑️ 12. 删除组织标签
🔄 流程步骤
- ✅ 验证管理员:验证当前用户的管理员身份
- 🔍 标签验证:验证目标标签是否存在
- ⚠️ 依赖检查:检查是否有子标签或用户关联
- 🗑️ 删除标签:从数据库中删除标签
- 📝 记录日志:记录标签删除操作
- 📤 返回结果:返回删除成功信息
接口设计
请求URL
1 | DELETE /api/v1/admin/org-tags/{tagId} |
路径参数
1 | tagId: String // 要删除的标签ID |
成功响应
1 | { |
失败响应
1 | { |
📋 13. 获取用户列表(分页)
🔄 流程步骤
- ✅ 验证管理员:验证当前用户的管理员身份
- 📋 参数解析:解析分页参数和筛选条件
- 🔍 条件查询:根据关键词、组织标签、状态等条件查询用户
- 📊 分页处理:执行分页查询
- 📤 返回结果:返回分页的用户数据
接口设计
请求URL
1 | GET /api/v1/admin/users/list |
请求参数
1 | keyword: String (可选) // 搜索关键词 |
成功响应
1 | { |
💬 14. 管理员查询所有对话历史
🔄 流程步骤
- ✅ 验证管理员:验证当前用户的管理员身份
- 📋 参数解析:解析查询参数(用户ID、时间范围等)
- 🔍 用户验证:如果指定用户ID,验证用户是否存在
- 📊 查询对话:从Redis中查询所有对话历史
- ⏰ 时间过滤:根据时间范围筛选对话记录
- 📤 返回结果:返回格式化的对话历史数据
接口设计
请求URL
1 | GET /api/v1/admin/conversation |
请求参数
1 | userid: String (可选) // 指定用户ID |
成功响应
1 | { |
失败响应
1 | { |
🗃️ 四、库表设计
👤 1. 用户表
与用户管理模块共用,详见用户管理模块文档
🏷️ 2. 组织标签表
与用户管理模块共用,详见用户管理模块文档
📊 3. 系统日志表
字段设计
1 | | 🔑 **字段** | 📋 **类型** | 📝 **描述** | |
建表语句
1 | CREATE TABLE system_logs ( |
📚 4. 知识库文档表
字段设计
1 | | 🔑 **字段** | 📋 **类型** | 📝 **描述** | |
建表语句
1 | CREATE TABLE knowledge_documents ( |

