# 知识管理系统 基于 Spring Boot 3.2.5 构建的知识管理系统后端服务,提供用户管理、文件管理、AI问答、考试系统等核心功能。 ## 技术栈 - **框架**: Spring Boot 3.2.5 - **语言**: Java 17 - **数据库**: MySQL 8.0+ - **ORM**: MyBatis Plus 3.5.5 - **缓存**: Redis - **认证**: JWT - **API文档**: SpringDoc OpenAPI (Swagger) ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.8+ - MySQL 8.0+ - Redis 6.0+ ### 数据库配置 1. 创建数据库: ```sql CREATE DATABASE knowledge_management_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 导入初始化SQL脚本: ```bash mysql -u root -p knowledge_management_system < docs/sql/knowledge_management_system.sql ``` ### 运行项目 **方式一:Maven 运行** ```bash cd demo_1 mvn spring-boot:run ``` **方式二:打包运行** ```bash mvn clean package java -jar target/demo_1-0.0.1-SNAPSHOT.jar ``` **方式三:Docker Compose** ```bash docker-compose up -d ``` ### 访问地址 - **应用地址**: http://localhost:8080/api - **Swagger文档**: http://localhost:8080/api/swagger-ui.html - **API文档**: http://localhost:8080/api/v3/api-docs ## 项目结构 ``` src/main/java/top/tqx/demo_1/ ├── annotation/ # 自定义注解(限流、权限) ├── aspect/ # AOP切面(日志、限流) ├── common/ # 通用响应封装 ├── config/ # 配置类(数据源、Redis、CORS等) ├── constant/ # 常量定义 ├── controller/ # REST API控制层 ├── dto/ # 数据传输对象 ├── entity/ # 数据库实体模型 ├── enums/ # 枚举定义 ├── exception/ # 自定义异常 ├── handler/ # 全局异常处理 ├── interceptor/ # 拦截器(权限验证) ├── mapper/ # MyBatis Mapper接口 ├── service/ # 业务逻辑层 │ └── impl/ # 服务实现类 ├── util/ # 工具类 ├── vo/ # 视图对象 └── Demo1Application.java ``` ## 核心功能模块 | 模块 | Controller | 说明 | |------|------------|------| | 用户管理 | UserController | 用户增删改查、登录、权限管理 | | 角色权限 | RoleController / PermissionController | 角色管理、权限分配 | | 部门管理 | DepartmentController | 部门组织结构管理 | | 文件管理 | FileController | 文件上传、下载、权限控制 | | AI聊天 | AIChatController | 智能问答、RAG检索 | | 考试系统 | ExamController / FormalExamController | 试卷生成、考试管理 | | 题目管理 | QuestionController | 题库管理、题目统计 | | FAQ管理 | FAQController | 常见问题管理 | | 搜索功能 | SearchController | 全文检索 | | 错题管理 | WrongQuestionController | 错题收集、重做 | | 反馈管理 | FeedbackController | 用户反馈收集 | ## API接口分类 ### 认证接口 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/logout` - 用户登出 ### 用户管理 - `GET /api/users` - 获取用户列表 - `POST /api/users` - 创建用户 - `GET /api/users/{id}` - 获取用户详情 - `PUT /api/users/{id}` - 更新用户信息 - `DELETE /api/users/{id}` - 删除用户 ### 文件管理 - `POST /api/files/upload` - 文件上传 - `GET /api/files/{id}` - 获取文件信息 - `GET /api/files/{id}/download` - 文件下载 - `DELETE /api/files/{id}` - 删除文件 ### AI聊天 - `POST /api/ai/chat` - AI问答 - `POST /api/ai/stream` - 流式问答 ### 考试管理 - `POST /api/exam/generate` - 生成试卷 - `POST /api/exam/submit` - 提交答卷 - `GET /api/exam/records` - 获取考试记录 ## 配置说明 ### 环境变量 | 变量名 | 默认值 | 说明 | |--------|--------|------| | DB_USERNAME | root | 数据库用户名 | | DB_PASSWORD | 123456 | 数据库密码 | | REDIS_HOST | redis | Redis地址 | | REDIS_PORT | 6379 | Redis端口 | | JWT_SECRET | your-secret-key... | JWT密钥 | | AI_HOST | localhost | AI服务地址 | | AI_PORT | 5001 | AI服务端口 | ### 配置文件 - `application.yml` - 主配置文件 - `application-dev.yml` - 开发环境配置 - `application-prod.yml` - 生产环境配置 ## 开发指南 ### 添加新功能 1. 创建实体类 (`entity/`) 2. 创建Mapper接口 (`mapper/`) 3. 创建Service接口和实现 (`service/` 和 `service/impl/`) 4. 创建DTO和VO (`dto/` 和 `vo/`) 5. 创建Controller (`controller/`) ### 日志配置 日志文件位于 `/app/logs/file-management-system.log`,支持按天轮转,保留30天历史。 ## 部署说明 ### Docker部署 ```dockerfile # 使用官方JDK 17镜像 FROM openjdk:17-jdk-slim WORKDIR /app COPY target/demo_1-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar"] ``` ### 健康检查 ```bash curl http://localhost:8080/api/actuator/health ``` ## License MIT License ## 联系信息 如有问题请联系开发者。