修复正式考试批题错误

This commit is contained in:
2026-06-11 23:38:54 +08:00
parent a8e28e513d
commit aec860f85f
6 changed files with 523 additions and 247 deletions

193
README.md Normal file
View File

@@ -0,0 +1,193 @@
# Knowledge Management System
基于 Spring Boot 3.2.5 的知识管理系统提供用户管理、考试系统、文件管理、AI聊天等核心功能。
## 技术栈
- **框架**: Spring Boot 3.2.5
- **语言**: Java 17
- **数据库**: MySQL 8.0+
- **缓存**: Redis 6.0+
- **ORM**: MyBatis Plus 3.5.5
- **认证**: JWT
- **API文档**: SpringDoc OpenAPI 2.3.0
- **JSON处理**: FastJSON 2.0.43
## 功能模块
| 模块 | 描述 |
| :--- | :--- |
| **用户管理** | 用户注册、登录、信息管理 |
| **角色权限** | 角色管理、权限分配 |
| **考试系统** | 试卷生成、考试管理、成绩批阅 |
| **题目管理** | 题目CRUD、统计分析 |
| **文件管理** | 文件上传、下载、权限控制 |
| **AI聊天** | 基于RAG的智能问答 |
| **搜索功能** | 全文搜索 |
| **反馈管理** | 用户反馈收集与处理 |
| **FAQ管理** | 常见问题管理 |
| **错题管理** | 错题收集与重做 |
## 快速开始
### 环境要求
- JDK 17+
- Maven 3.8+
- MySQL 8.0+
- Redis 6.0+
### 数据库配置
1. 创建数据库:
```sql
CREATE DATABASE IF NOT EXISTS knowledge_management_system
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_unicode_ci;
```
2. 执行数据库初始化脚本:
```bash
mysql -u root -p knowledge_management_system < docs/sql/knowledge_management_system.sql
```
### 运行方式
#### 开发环境
```bash
# 克隆项目
git clone <repository-url>
cd demo
# 编译运行
mvn spring-boot:run
```
#### 生产环境
```bash
# 打包
mvn clean package
# 运行
java -jar target/demo_1-0.0.1-SNAPSHOT.jar
```
#### Docker 部署
```bash
# 构建镜像
docker build -t knowledge-management-system .
# 运行容器
docker run -d -p 8080:8080 \
-e DB_USERNAME=root \
-e DB_PASSWORD=yourpassword \
-e REDIS_HOST=redis \
knowledge-management-system
```
### 配置说明
主要配置项(可通过环境变量覆盖):
| 环境变量 | 默认值 | 说明 |
| :--- | :--- | :--- |
| `DB_USERNAME` | root | 数据库用户名 |
| `DB_PASSWORD` | 123456 | 数据库密码 |
| `REDIS_HOST` | redis | Redis 主机 |
| `REDIS_PORT` | 6379 | Redis 端口 |
| `JWT_SECRET` | your-secret-key... | JWT 密钥 |
| `SWAGGER_ENABLED` | true | 是否启用 Swagger |
| `CORS_ALLOWED_ORIGINS` | * | 允许的跨域来源 |
## API 文档
启动服务后访问:
- **Swagger UI**: http://localhost:8080/api/swagger-ui.html
- **OpenAPI JSON**: http://localhost:8080/api/v3/api-docs
## 项目结构
```
├── src/main/java/top/tqx/demo_1/
│ ├── controller/ # REST API 控制层
│ ├── service/ # 业务逻辑层
│ ├── mapper/ # 数据访问层
│ ├── entity/ # 数据库实体
│ ├── dto/ # 数据传输对象
│ ├── vo/ # 视图对象
│ ├── config/ # 配置类
│ ├── interceptor/ # 拦截器
│ ├── aspect/ # AOP切面
│ ├── exception/ # 异常处理
│ ├── util/ # 工具类
│ └── Demo1Application.java
├── src/main/resources/
│ ├── application.yml # 主配置文件
│ ├── application-dev.yml # 开发环境配置
│ └── application-prod.yml # 生产环境配置
├── docs/ # 文档
│ ├── sql/ # 数据库脚本
│ └── api/ # API文档
├── uploads/ # 文件上传目录
├── logs/ # 日志目录
└── pom.xml # Maven 配置
```
## 核心功能说明
### 1. 用户认证
- JWT Token 认证
- 密码加密存储 (BCrypt)
- 权限拦截器
### 2. 考试系统
- 智能试卷生成
- 考试流程管理
- AI 自动批阅
- 成绩统计分析
### 3. 文件管理
- 大文件上传支持
- 文件版本控制
- 访问权限控制
### 4. AI 集成
- RAG 知识库检索
- 流式问答响应
- 引用来源追踪
## 安全特性
- JWT 令牌认证
- 接口限流
- 权限校验
- SQL 注入防护
- CORS 跨域配置
## 日志管理
- 控制台日志
- 文件日志(按天分割)
- 最大保留 30 天
## 开发规范
- 代码风格Google Java Style
- 异常处理:统一异常处理
- 日志记录:使用 SLF4J
## 许可证
MIT License
## 联系方式
如有问题或建议,请提交 Issue 或联系开发团队。