feat: 添加无需外部库即可从 DOCX 文件中提取文本的脚本,并创建会话索引 Markdown 文件。

This commit is contained in:
2026-02-02 15:27:08 +08:00
parent 79b9938dbb
commit 517644adea
10 changed files with 1050 additions and 0 deletions

View File

@@ -0,0 +1,186 @@
# 体系结构设计报告
**项目名称**基于SpringBoot框架的高考志愿辅助填报系统设计与实现
**学生姓名**:向黎华
**学号**229970427
**学院/班级**:软件学院 / 22软工8班
**指导教师**:彭娟
---
## 1. 引言
### 1.1 编写目的
本文档详细描述了**基于SpringBoot框架的高考志愿辅助填报系统**的软件架构。文档内容严格遵循《本科毕业设计(论文)开题报告》中确定的技术路线与设计要求,为系统的编码实现与部署提供核心技术指导。
### 1.2 参考文献
- [1] 温创新,谢莎,何雅婷. 基于微服务架构的新高考志愿填报推荐系统设计[J].科技创新与应用,2025.
- [2] 王宇轩. 融合大数据分析的高考志愿推荐系统设计与实现[D].西安工业大学,2024.
- [3] 张磊. 基于 SpringBoot 的高考志愿智能填报系统设计与实现[D].山东师范大学,2023.
## 2. 系统架构设计
### 2.1 总体架构模式
本系统采用标准的 **B/S (Browser/Server)** 架构,遵循 **前后端分离** 的开发模式。
- **前端架构**MVVM 模式,通过 View-ViewModel-Model 实现通过数据双向绑定。
- **后端架构**:经典的 MVC 三层架构 (Controller - Service - DAO)。
### 2.2 技术栈选型 (Standard)
依据任务书要求,项目采用以下技术栈:
| 分层 | 技术组件 | 版本/说明 |
| :--- | :--- | :--- |
| **前端框架** | **Vue 3.0** | 采用 Composition API 风格开发 |
| **UI 组件库** | **Ant Design Vue** | 企业级 UI 设计语言 |
| **状态管理** | **Pinia** | 替代 Vuex 的新一代状态管理库 |
| **数据可视化**| **ECharts** | 用于展示录取趋势图、就业率报表 |
| **后端框架** | **Spring Boot 2.7+** | 核心容器,简化配置 |
| **持久层** | **MyBatis-Plus** | 简化 SQL 操作,提供 ActiveRecord 模式支持 |
| **安全框架** | **Spring Security** | 实现用户认证与基于角色的权限控制 (RBAC) |
| **缓存** | **Redis** | 缓存热点院校数据与 Token提升性能 |
| **数据库** | **MySQL 8.0** | 存储所有业务数据InnoDB 引擎 |
### 2.3 逻辑架构图
```mermaid
graph TD
User((用户/考生)) --> |HTTP/JSON| Nginx[Web服务器/反向代理]
Nginx --> |Static| Vue[Vue3 前端应用]
Nginx --> |API| Gateway[Spring Boot 后端服务]
subgraph "前端层 (Vue 3 + Ant Design)"
Vue --> Module1[院校专业查询]
Vue --> Module2[智能志愿推荐]
Vue --> Module3[模拟填报]
Vue --> Store[Pinia 状态管理]
Vue --> Chart[ECharts 图表]
end
subgraph "后端业务层 (Spring Boot)"
Gateway --> Security[Spring Security 认证授权]
Security --> Controller[Web控制层]
Controller --> Svc1[院校专业管理服务]
Controller --> Svc2[分数位次管理服务]
Controller --> Svc3[志愿算法推荐服务]
Controller --> Svc4[考生档案管理服务]
Controller --> Svc5[统计分析服务]
Svc1 & Svc2 & Svc3 & Svc4 & Svc5 --> MP[MyBatis-Plus]
end
subgraph "数据存储层"
MP --> MySQL[(MySQL 数据库)]
Svc1 -.-> Redis[(Redis 缓存)]
end
```
### 2.4 核心业务时序图 (智能推荐)
```mermaid
sequenceDiagram
participant U as 考生 (User)
participant C as 推荐控制器 (Controller)
participant S as 推荐算法服务 (Service)
participant DB as 数据库 (MySQL)
participant R as 缓存 (Redis)
U->>C: 发起推荐请求 (分/位/偏好)
C->>S: 调用 recommend()
S->>R: 查询院校缓存
alt 缓存未命中
S->>DB: 读取 zr_school 基础信息
DB-->>S: 返回列表
S->>R: 更新缓存
end
S->>S: 策略过滤 (Filter Strategy)
note right of S: 过滤非偏好批次/地域
loop 核心计算
S->>DB: 查询历年同位次录取分
S->>S: 计算线差 (Score Diff)
S->>S: 判定 冲/稳/保 概率
end
S-->>C: 返回结果集 (List<Plan>)
C-->>U: 展示推荐方案
```
## 3. 功能模块划分
依据开题报告,系统后端划分为六大核心模块:
### 3.1 院校专业管理模块
- 负责 `zr_school`, `zr_major`, `zr_school_major` 表的维护。
- 实现院校基础信息录入、专业详情更新、特色专业标记。
### 3.2 分数位次管理模块
- 核心功能:历年高考分数线录入、**位次换算**(查询 `zr_one_minute`)。
- 关联历年录取数据 (`zr_school_major_score`),提供同分考生去向查询。
### 3.3 志愿填报管理模块 (核心)
- **智能推荐**:基于“位次法”和“线差法”计算录取概率(冲、稳、保)。
- **模拟填报**:考生创建志愿表,系统校验梯度合理性。
- **风险评估**:分析是否存在滑档风险。
### 3.4 考生信息管理模块
- 建立考生电子档案(包含高考分、选科、体检信息)。
- 记录志愿填报历史版本,支持回溯修改。
### 3.5 数据统计分析模块
- 生成院校录取趋势报表 (Line Chart)。
- 统计热门专业排行 (Bar Chart)。
- 分析各地区各专业的就业率分布。
### 3.6 系统管理模块
- 用户账号管理 (Admin/Student/Planner)。
- 角色权限分配 (RBAC)。
- 招生政策与通知公告发布。
## 4. 接口设计规范 (RESTful)
### 4.1 接口设计原则
- 遵循 RESTful 风格,使用标准的 HTTP 方法 (GET/POST/PUT/DELETE)。
- 统一响应格式:`{ "code": 200, "msg": "success", "data": {...} }`
- 采用 CamelCase 命名法。
### 4.2 核心接口定义
| 模块 | 接口路径 | 方法 | 描述 |
| :--- | :--- | :--- | :--- |
| **Auth** | `/api/auth/login` | POST | 用户登录 (JWT) |
| **School** | `/api/schools/{id}` | GET | 获取院校详情 |
| **School** | `/api/schools/search` | POST | 多条件筛选院校 |
| **Score** | `/api/scores/rank` | GET | 分数换算位次及同位分查询 |
| **Recommend** | `/api/volunteer/recommend` | POST | **[核心]** 获取智能推荐列表 |
| **Volunteer** | `/api/volunteer/simulate` | POST | 保存模拟志愿表 |
| **User** | `/api/user/profile` | PUT | 更新考生档案 |
### 4.3 智能推荐接口示例
**Request (POST /api/volunteer/recommend):**
```json
{
"province": "重庆",
"score": 580,
"subject": ["物理", "化学", "生物"],
"preference": {
"location": ["北京", "上海"],
"major_type": "工学"
}
}
```
**Response:**
```json
{
"code": 200,
"data": {
"rush": [ ... ], // 冲一冲列表
"steady": [ ... ], // 稳一稳列表
"protect": [ ... ] // 保一保列表
}
}
```
## 5. 部署架构
- **开发环境**JDK 1.8+, IntelliJ IDEA, Node.js 16+
- **服务器**Tomcat 9 (内置), Nginx
- **数据库连接池**Druid