# 知识管理系统功能模块划分图

## 系统级功能结构图

```mermaid
flowchart TB
    subgraph TOP["知识管理系统"]
        subgraph Front["前台用户端"]
            F1["用户认证"]
            F2["文件管理"]
            F3["题库管理"]
            F4["AI对话"]
            F5["个人中心"]
        end

        subgraph Back["后台管理端"]
            B1["用户管理"]
            B2["部门管理"]
            B3["权限管理"]
            B4["文件审核"]
            B5["日志管理"]
            B6["系统配置"]
        end
    end
```

---

## 详细功能模块划分

### 第一层：系统层

| 模块名称 | 说明 |
|---------|------|
| 知识管理系统 | 整体系统名称 |

---

### 第二层：前端/后端层

| 分类 | 说明 |
|------|------|
| 前台用户端 | 普通用户操作界面 |
| 后台管理端 | 管理员操作界面 |

---

### 第三层：功能模块层

#### 前台用户端

| 模块 | 功能列表 | 控制器 |
|------|---------|--------|
| 用户认证 | 登录、注册、Token验证 | AuthController |
| 文件管理 | 文件上传、文件查询、文件下载、RAG问答 | FileController |
| 题库管理 | 题目查询、答题练习 | QuestionController |
| AI对话 | 流式问答、会话管理、引用查看 | AIChatController |
| 个人中心 | 个人信息管理 | UserController |

#### 后台管理端

| 模块 | 功能列表 | 控制器 |
|------|---------|--------|
| 用户管理 | 用户CRUD、用户列表、用户详情 | UserController |
| 部门管理 | 部门CRUD、部门列表、部门详情 | DepartmentController |
| 权限管理 | 角色CRUD、权限分配、权限列表 | RoleController |
| 文件审核 | 待审核列表、审核通过、审核拒绝 | FileController |
| 日志管理 | 操作日志查询、日志详情 | LogController |
| 系统配置 | 知识库配置、系统参数 | - |

---

## 模块调用关系图

```mermaid
flowchart LR
    subgraph User["用户层"]
        U1["普通用户"]
        U2["部门管理员"]
        U3["系统管理员"]
    end

    subgraph Front["前台功能"]
        F_AUTH["用户认证"]
        F_FILE["文件管理"]
        F_QUESTION["题库管理"]
        F_AI["AI对话"]
    end

    subgraph Back["后台功能"]
        B_USER["用户管理"]
        B_DEPT["部门管理"]
        B_ROLE["权限管理"]
        B_FILE["文件审核"]
        B_LOG["日志管理"]
    end

    subgraph Service["服务层"]
        S_AUTH["AuthService"]
        S_FILE["FileService"]
        S_USER["UserService"]
        S_DEPT["DepartmentService"]
        S_ROLE["RoleService"]
        S_CHAT["ChatService"]
        S_AI["AiChatService"]
    end

    subgraph Data["数据层"]
        DB[("MySQL")]
        KB[("知识库")]
    end

    U1 --> F_AUTH
    U1 --> F_FILE
    U1 --> F_QUESTION
    U1 --> F_AI

    U2 --> F_AUTH
    U2 --> F_FILE
    U2 --> B_DEPT
    U2 --> B_FILE

    U3 --> F_AUTH
    U3 --> B_USER
    U3 --> B_DEPT
    U3 --> B_ROLE
    U3 --> B_FILE
    U3 --> B_LOG

    F_AUTH --> S_AUTH
    F_FILE --> S_FILE
    F_AI --> S_AI
    F_AI --> S_CHAT

    B_USER --> S_USER
    B_DEPT --> S_DEPT
    B_ROLE --> S_ROLE
    B_FILE --> S_FILE
    B_LOG --> S_FILE

    S_AUTH --> DB
    S_FILE --> DB
    S_USER --> DB
    S_DEPT --> DB
    S_ROLE --> DB
    S_AI --> KB
    S_CHAT --> DB
```

---

## 功能菜单树

```
知识管理系统
│
├── 前台用户端
│   ├── 用户认证
│   │   ├── 用户登录
│   │   ├── Token验证
│   │   └── 退出登录
│   │
│   ├── 文件管理
│   │   ├── 文件上传
│   │   ├── 文件查询
│   │   ├── 文件详情
│   │   ├── 文件更新
│   │   ├── 文件删除
│   │   └── RAG问答
│   │
│   ├── 题库管理
│   │   ├── 题目查询
│   │   ├── 题目详情
│   │   └── 答题练习
│   │
│   ├── AI对话
│   │   ├── 流式问答
│   │   ├── 会话列表
│   │   ├── 会话详情
│   │   ├── 引用查看
│   │   ├── 会话删除
│   │   └── 问答中断
│   │
│   └── 个人中心
│       ├── 个人信息
│       └── 修改密码
│
└── 后台管理端
    ├── 用户管理
    │   ├── 用户列表
    │   ├── 用户详情
    │   ├── 添加用户
    │   ├── 编辑用户
    │   └── 删除用户
    │
    ├── 部门管理
    │   ├── 部门列表
    │   ├── 部门详情
    │   ├── 添加部门
    │   ├── 编辑部门
    │   └── 删除部门
    │
    ├── 权限管理
    │   ├── 角色列表
    │   ├── 角色详情
    │   ├── 添加角色
    │   ├── 编辑角色
    │   ├── 删除角色
    │   ├── 权限列表
    │   └── 权限分配
    │
    ├── 文件审核
    │   ├── 待审核列表
    │   ├── 审核通过
    │   └── 审核拒绝
    │
    ├── 日志管理
    │   ├── 日志列表
    │   └── 日志详情
    │
    └── 系统配置
        ├── 知识库配置
        └── 参数设置
```

---

## 接口权限矩阵

| 功能模块 | 普通用户 | 部门管理员 | 系统管理员 |
|---------|:-------:|:----------:|:----------:|
| **用户认证** | | | |
| 登录 | ✅ | ✅ | ✅ |
| 注册 | ✅ | ✅ | ✅ |
| **文件管理** | | | |
| 上传文件 | ✅ | ✅ | ✅ |
| 查询文件 | ✅ | ✅ | ✅ |
| 删除文件 | ✅ | ✅ | ✅ |
| RAG问答 | ✅ | ✅ | ✅ |
| **题库管理** | | | |
| 查询题目 | ✅ | ✅ | ✅ |
| 答题练习 | ✅ | ✅ | ✅ |
| **AI对话** | | | |
| 流式问答 | ✅ | ✅ | ✅ |
| 会话管理 | ✅ | ✅ | ✅ |
| **用户管理** | | | |
| 用户列表 | ❌ | ❌ | ✅ |
| 用户详情 | ❌ | ❌ | ✅ |
| 添加用户 | ❌ | ❌ | ✅ |
| 编辑用户 | ❌ | ❌ | ✅ |
| 删除用户 | ❌ | ❌ | ✅ |
| **部门管理** | | | |
| 部门列表 | ❌ | ✅ | ✅ |
| 部门详情 | ❌ | ✅ | ✅ |
| 添加部门 | ❌ | ❌ | ✅ |
| 编辑部门 | ❌ | ❌ | ✅ |
| 删除部门 | ❌ | ❌ | ✅ |
| **权限管理** | | | |
| 角色列表 | ❌ | ❌ | ✅ |
| 权限分配 | ❌ | ❌ | ✅ |
| **文件审核** | | | |
| 待审核列表 | ❌ | ✅ | ✅ |
| 审核通过 | ❌ | ✅ | ✅ |
| 审核拒绝 | ❌ | ✅ | ✅ |
| **日志管理** | | | |
| 日志列表 | ❌ | ❌ | ✅ |
| 日志详情 | ❌ | ❌ | ✅ |

---

## 技术架构图

```mermaid
flowchart TB
    subgraph Client["客户端层"]
        WEB["Web浏览器"]
        APP["移动App"]
        API["第三方系统"]
    end

    subgraph Gateway["网关层"]
        GATEWAY["Spring Cloud Gateway"]
        AUTH["认证中心"]
    end

    subgraph Service["业务服务层"]
        USER_SVC["用户服务"]
        FILE_SVC["文件服务"]
        AI_SVC["AI服务"]
        CHAT_SVC["对话服务"]
        QUESTION_SVC["题库服务"]
    end

    subgraph Data["数据层"]
        MYSQL["MySQL数据库"]
        REDIS["Redis缓存"]
        MINIO["MinIO对象存储"]
        ES["Elasticsearch"]
    end

    subgraph External["外部服务"]
        LLM["大模型服务"]
        RAG["RAG服务"]
    end

    WEB --> GATEWAY
    APP --> GATEWAY
    API --> GATEWAY

    GATEWAY --> AUTH
    AUTH --> USER_SVC

    GATEWAY --> USER_SVC
    GATEWAY --> FILE_SVC
    GATEWAY --> AI_SVC
    GATEWAY --> CHAT_SVC
    GATEWAY --> QUESTION_SVC

    USER_SVC --> MYSQL
    USER_SVC --> REDIS
    FILE_SVC --> MYSQL
    FILE_SVC --> MINIO
    AI_SVC --> LLM
    AI_SVC --> RAG
    CHAT_SVC --> MYSQL
    CHAT_SVC --> ES
    QUESTION_SVC --> MYSQL
```
