first commit

This commit is contained in:
2026-02-05 01:22:52 +08:00
commit 055c521bde
19 changed files with 2123 additions and 0 deletions

3
.obsidian/app.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"readableLineLength": false
}

1
.obsidian/appearance.json vendored Normal file
View File

@@ -0,0 +1 @@
{}

33
.obsidian/core-plugins.json vendored Normal file
View File

@@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"footnotes": false,
"properties": true,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": true,
"bases": true,
"webviewer": false
}

207
.obsidian/workspace.json vendored Normal file
View File

@@ -0,0 +1,207 @@
{
"main": {
"id": "44edd83ca636a933",
"type": "split",
"children": [
{
"id": "ba71713170978874",
"type": "tabs",
"children": [
{
"id": "5f9247da9e872688",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "任务/软件学院本科毕业设计(论文)项目验收报告-229970427-向黎华.md",
"mode": "preview",
"source": false
},
"icon": "lucide-file",
"title": "软件学院本科毕业设计(论文)项目验收报告-229970427-向黎华"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "8826826df2037b0f",
"type": "split",
"children": [
{
"id": "ddeff7c129419c8f",
"type": "tabs",
"children": [
{
"id": "1de8c71164d6d075",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "文件列表"
}
},
{
"id": "9fe6d5b5235ef0ca",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "搜索"
}
},
{
"id": "359e40da61fbdb75",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "书签"
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"right": {
"id": "c6da2dad7e939886",
"type": "split",
"children": [
{
"id": "3a93d70d7c5f04bf",
"type": "tabs",
"children": [
{
"id": "e48de0c90a63a2e5",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "任务/软件学院本科毕业设计(论文)项目验收报告-229970427-向黎华.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "软件学院本科毕业设计(论文)项目验收报告-229970427-向黎华 的反向链接列表"
}
},
{
"id": "7277221467ae772e",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "任务/软件学院本科毕业设计(论文)项目验收报告-229970427-向黎华.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "软件学院本科毕业设计(论文)项目验收报告-229970427-向黎华 的出链列表"
}
},
{
"id": "14b2a9588fd77998",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "标签"
}
},
{
"id": "2be0780bc2f65d52",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-archive",
"title": "添加笔记属性"
}
},
{
"id": "63b0df89d42f7d0b",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "任务/软件学院本科毕业设计(论文)项目验收报告-229970427-向黎华.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "软件学院本科毕业设计(论文)项目验收报告-229970427-向黎华 的大纲"
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:打开快速切换": false,
"graph:查看关系图谱": false,
"canvas:新建白板": false,
"daily-notes:打开/创建今天的日记": false,
"templates:插入模板": false,
"command-palette:打开命令面板": false,
"bases:新建数据库": false
}
},
"active": "5f9247da9e872688",
"lastOpenFiles": [
"任务/软件学院本科毕业设计(论文)项目验收报告-学号-姓名~B8E71.tmp",
"任务/软件学院本科毕业设计(论文)项目验收报告-学号-姓名~AC3CE.tmp",
"任务/软件学院本科毕业设计(论文)项目验收报告-学号-姓名~2B435.tmp",
"任务/高考志愿辅助填报系统-用户需求(规格)说明书.md",
"任务/~$学院本科毕业设计(论文)项目验收报告-学号-姓名.docx",
"任务/XXX系统-用户需求(规格)说明书~16A40.tmp",
"任务/XXX系统-用户需求(规格)说明书~F7DF1.tmp",
"任务/软件学院本科毕业设计(论文)项目验收报告-229970427-向黎华.md",
"任务/~$X系统-用户需求(规格)说明书.doc",
"任务/高考志愿辅助填报系统-体系结构设计报告.md",
"任务/XXX系统-体系结构设计报告~0465F.tmp",
"任务/XXX系统-体系结构设计报告~EB520.tmp",
"任务/~$X系统-体系结构设计报告.doc",
"任务/高考志愿辅助填报系统-数据库设计报告.md",
"任务/XXX系统-数据库设计报告~21291.tmp",
"资料/229970427-向黎华-毕业设计开题报告.md",
"Snipaste_2026-02-04_23-46-19.png"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,42 @@
# 四、软件学院本科毕业设计(论文)项目验收报告
|学生姓名|向黎华|学号|229970427||专业|软件工程|班级|22软工8班||
|---|---|---|---|---|---|---|---|---|---|
|校内指导教师姓名|彭娟|职称|讲师||校外指导教师姓名||职称|||
|毕业设计(论文)题目|基于SpringBoot框架的高考志愿辅助填报系统设计与实现|||||||||
|系统功能完成情况|规定的功能或任务|规定的功能或任务|规定的功能或任务|规定的功能或任务|规定的功能或任务|完成情况|完成情况|完成情况|完成情况|
|||||1. 用户管理模块(注册、登录、个人信息维护)|已完成|||||
|||||2. 院校与专业信息查询模块|已完成|||||
|||||3. 历年录取数据查询与可视化展示|已完成|||||
|||||4. 智能志愿推荐算法(冲、稳、保)|已完成|||||
|||||5. 志愿模拟填报与风险评估|已完成|||||
|||||6. 后台数据管理(院校、专业、数据导入)|已完成|||||
|||||||||||
|||||||||||
|||||||||||
|||||||||||
|||||||||||
|||||||||||
|||||||||||
|||||||||||
|||||||||||
|||||||||||
|项目成果|项目成果|项目成果|项目资料名称|项目资料名称|项目资料名称|项目资料名称|项目资料名称|页数(行数)|页数(行数)|
||||1. 毕业设计开题报告|||||15页|
||||2. 用户需求(规格)说明书|||||22页|
||||3. 体系结构设计报告|||||18页|
||||4. 数据库设计报告|||||16页|
||||5. 系统源代码|||||5000行|
||||6. 毕业设计论文|||||45页|
|验收意见|指导教师(签名): 年 月 日|||||||||
||指导教师(签名): 年 月 日|||||||||
||指导教师(签名): 年 月 日|||||||||
||指导教师(签名): 年 月 日|||||||||
||指导教师(签名): 年 月 日|||||||||
||指导教师(签名): 年 月 日|||||||||
||指导教师(签名): 年 月 日|||||||||
||指导教师(签名): 年 月 日|||||||||
||指导教师(签名): 年 月 日|||||||||
**说明**:本验收报告的内容作为成绩评定的参考依据。

View File

@@ -0,0 +1,245 @@
# 二、基于SpringBoot框架的高考志愿辅助填报系统-体系结构设计报告
|文件状态:<br>[ ] 草稿<br>[ ] 正式发布<br>[ ] 正在修改|文件标识:||
|---|---|---|
||当前版本:||
||作 者:||
||完成日期:||
重庆工程学院<br>Chongqing Institute of Engineering
## 版本历史
|版本/状态|作者|参与者|起止日期|备注|
|---|---|---|---|---|
||||||
||||||
||||||
## 目录
1. [文档介绍](#0-文档介绍)
2. [系统概述](#1-系统概述)
3. [设计约束](#2-设计约束)
4. [设计策略](#3-设计策略)
5. [系统总体结构](#4-系统总体结构)
6. [子系统结构与功能](#5-子系统结构与功能)
7. [开发环境的配置](#6-开发环境的配置)
8. [测试环境的配置](#7-测试环境的配置)
9. [运行环境的配置](#8-运行环境的配置)
10. [其它](#9-其它)
## 0. 文档介绍
## 0.1 文档目的
该文档描述了基于SpringBoot框架的高考志愿辅助填报系统的主要功能阐述了系统的整体构架包括物理、逻辑结构并说明了体系结构所采取的设计策略及其所用技术。
## 0.2 文档范围
适用于基于SpringBoot框架的高考志愿辅助填报系统详细描述了该系统的设计约束、设计策略、总体结构、和架构设计等。
## 0.3 读者对象
项目小组各成员
## 0.4 参考文档
## 0.5 术语与缩写解释
|缩写、术语|解 释|
|---|---|
|||
|||
|||
|||
|||
## 1. 系统概述
1. **建设背景**:高考志愿填报关系到考生的未来发展,但传统填报方式存在信息不对称、效率低、决策难等问题。随着大数据技术的发展,利用智能化手段辅助填报成为趋势。
2. **建设目标**:构建一个集信息查询、智能推荐、模拟填报于一体的综合服务平台。通过整合权威数据和推荐算法,为考生提供科学、精准的志愿填报建议,提升填报效率和成功率。
## 2. 设计约束
1. **技术约束**
- 后端必须基于 Java SpringBoot 框架。
- 前端采用 Vue.js 框架进行 SPA 开发。
- 数据库使用 MySQL缓存使用 Redis。
2. **环境约束**
- 系统需运行在 Tomcat 9+ 容器中。
- 客户端需支持主流浏览器。
3. **时间约束**需在毕业设计规定的时间内2026年4月前完成开发和测试。
## 3. 设计策略
1. **分层架构**:采用经典的 Controller - Service - DAO 三层架构,实现关注点分离,提高代码的可维护性和可扩展性。
2. **前后端分离**:前端通过 RESTful API 与后端通信,降低耦合度,提升前端交互体验。
3. **高内聚低耦合**:各业务模块(如用户、院校、推荐)独立封装,通过接口交互。
4. **安全策略**:使用 Spring Security 进行认证授权BCrypt 加密用户密码。
## 4. 系统总体结构
本系统采用 B/SBrowser/Server架构技术栈如下
- **表现层 (Client)**: Vue 3, Ant Design Vue, ECharts (数据可视化)。负责页面展示和用户交互。
- **API 网关/控制层 (Controller)**: Spring MVC。接收 HTTP 请求,解析参数,分发任务。
- **业务逻辑层 (Service)**: SpringBoot 为核心。处理核心业务逻辑,如推荐算法、数据清洗。
- **数据访问层 (DAO)**: MyBatis-Plus。负责与数据库交互。
- **数据存储层 (Storage)**: MySQL (关系型数据), Redis (缓存数据)。
```mermaid
graph TD
User[客户端浏览器]
subgraph "接入层"
Gateway[API 网关 / 反向代理]
end
subgraph "应用服务层 (SpringBoot)"
Controller[Web 控制层]
Service[业务逻辑层]
DAO[数据访问层]
Security[安全认证服务]
end
subgraph "数据存储层"
MySQL[(MySQL 关系型数据库)]
Redis[(Redis 缓存数据库)]
end
User <-->|HTTP/REST| Gateway
Gateway <--> Controller
Controller --> Service
Service --> DAO
Service --> Redis
DAO --> MySQL
Controller -.-> Security
```
## 5. 子系统结构与功能
可包含顺序图、状态图、组件图等ooa图例并进行简要介绍。
## 5.1 用户子系统
- **功能**:注册、登录、个人信息管理、密码修改。
- **交互**:用户提交表单 -> Controller 验证 -> Service 处理业务 -> DAO 更新 User 表。
```mermaid
sequenceDiagram
participant User as 用户
participant API as API接口层
participant Svc as 业务服务层
participant DB as 数据库
User->>API: 提交注册/登录请求
API->>Svc: 调用业务逻辑
Svc->>Svc: 数据校验 & 密码加密
Svc->>DB: 查询/插入用户数据
DB-->>Svc: 返回结果
Svc-->>API: 返回Token/用户信息
API-->>User: 响应成功/失败
```
## 5.2 信息查询子系统
- **功能**:院校列表查询、院校详情、专业查询、历年分数线查询。
- **交互**:用户筛选条件 -> Controller -> Redis 缓存查询 -> (未命中) MySQL 查询 -> 返回 JSON 数据。
```mermaid
sequenceDiagram
participant User as 用户
participant API as API接口层
participant Redis as Redis缓存
participant DB as 数据库
User->>API: 发起查询请求 (院校/专业)
API->>Redis: 检查缓存
alt 缓存命中
Redis-->>API: 返回缓存数据
else 缓存未命中
API->>DB: 查询数据库
DB-->>API: 返回数据
API->>Redis: 写入缓存
end
API-->>User: 返回JSON数据
```
## 5.3 智能推荐子系统
- **功能**:基于一分一段表和位次,计算"冲稳保"志愿列表。
- **交互**:输入成绩 -> 推荐算法引擎 -> 匹配录取数据 -> 输出推荐列表。
```mermaid
sequenceDiagram
participant User as 用户
participant API as 推荐接口
participant Algo as 推荐算法引擎
participant Data as 基础数据服务
User->>API: 输入高考成绩/位次
API->>Algo: 请求推荐分析
Algo->>Data: 获取同分段位次数据
Algo->>Data: 获取历年院校录取线
Algo->>Algo: 计算录取概率 (冲/稳/保)
Algo-->>API: 返回推荐列表
API-->>User: 展示分层推荐结果
```
## 5.4 志愿模拟子系统
- **功能**:添加志愿、调整顺序、保存志愿表、风险评估。
- **交互**:前端拖拽排序 -> 提交 JSON 结构志愿表 -> 后端校验规则 -> 保存至数据库。
```mermaid
sequenceDiagram
participant User as 用户
participant API as 志愿填报接口
participant Validator as 规则校验器
participant DB as 数据库
User->>API: 提交模拟志愿表
API->>Validator: 校验完整性与规则
alt 校验通过
Validator-->>API: 校验成功
API->>DB: 保存志愿方案
DB-->>API: 保存成功
API-->>User: 提示操作成功
else 校验失败
Validator-->>API: 返回错误信息
API-->>User: 提示调整建议
end
```
## 6. 开发环境的配置
| 软件硬件设备名称 | 开发环境标准配置 | 开发环境最低配置 |
| -------- | ------------------------ | ------------- |
| CPU | Intel Core i5-11320H 或更高 | Intel Core i3 |
| 内存 | 16GB | 8GB |
| 硬盘 | 512GB SSD | 256GB SSD |
| 操作系统 | Windows 10/11 | Windows 7 |
| 开发工具 | IntelliJ IDEA, VS Code | Eclipse |
## 7. 测试环境的配置
|软件硬件设备名称|测试环境标准配置|测试环境最低配置|
|---|---|---|
|CPU|Intel Core i5|Intel Core i3|
|内存|8GB|4GB|
|硬盘|256GB|128GB|
|浏览器|Chrome 80+, Edge|Chrome 60+|
## 8. 运行环境的配置
|软件硬件设备名称|运行环境标准配置|运行环境最低配置|
|---|---|---|
|CPU|2核 4线程|1核|
|内存|4GB|2GB|
|硬盘|40GB|20GB|
|软件依赖|JDK 1.8, MySQL 5.7+, Redis|JDK 1.8, MySQL 5.7|
# 9. 其它

View File

@@ -0,0 +1,278 @@
# 一、基于SpringBoot框架的高考志愿辅助填报系统-数据库设计报告
|文件状态:<br>[ ] 草稿<br>[ ] 正式发布<br>[ ] 正在修改|文件标识:||
|---|---|---|
||当前版本:||
||作 者:||
||完成日期:||
重庆工程学院<br>Chongqing Institute of Engineering
## 版本历史
|版本/状态|作者|参与者|起止日期|备注|
|---|---|---|---|---|
|1.0|||||
||||||
||||||
||||||
## 目录
1. [文档介绍](#0-文档介绍)
2. [数据库环境说明](#1-数据库环境说明)
3. [数据库命名规则](#2-数据库命名规则)
4. [概念及逻辑设计](#3-概念及逻辑设计)
5. [物理设计](#4-物理设计)
6. [安全性设计](#5-安全性设计)
7. [性能优化方法](#6-性能优化方法)
8. [数据库管理与维护说明](#7-数据库管理与维护说明)
## 0. 文档介绍
## 0.1 文档目的
本份是基于SpringBoot框架的高考志愿辅助填报系统的数据库设计说明主要用于说明数据库环境、命名规则、逻辑、物理设计以及数据库的安全性设计和数据库管理和维护说明。
## 0.2 文档范围
包括数据库环境、命名规则、逻辑、物理设计以及数据库的安全性设计和数据库管理和维护说明。
## 0.3 读者对象
项目管理员、用户以及开发人员、测试人员。
## 0.4 参考文档
## 0.5 术语与缩写解释
|缩写、术语|解 释|
|---|---|
|||
|||
|||
|||
## 1. 数据库环境说明
1.1 数据库系统MySQL 8.0+
1.2 设计工具Enterprise Architect、Navicat Premium 15
## 2. 数据库命名规则
- 避免使用常用的名称空间中类型名称如class。
- 避免使用常用关键词有冲突的标识符如order。
- 采取加前缀组合方式。
- 属性用名词或名词短语命名属性。
## 3. 概念及逻辑设计
## 3.1. E-R图
```mermaid
erDiagram
sys_user ||--o{ biz_volunteer_plan : "创建"
biz_volunteer_plan ||--|{ biz_plan_item : "包含"
base_university ||--|{ biz_admission_data : "关联"
base_major ||--|{ biz_admission_data : "关联"
sys_user {
string username
string password
int score
int rank
}
biz_volunteer_plan {
bigint id
bigint user_id
string plan_name
datetime create_time
}
biz_plan_item {
bigint id
bigint plan_id
bigint uni_id
string uni_name
string major_name
int sort_order
}
```
## 3.2. 逻辑设计
本系统数据库设计遵循第三范式3NF确保数据结构合理减少冗余。
主要关系模式如下:
1. **用户相关**:用户(User)通过用户角色关联表(UserRole)与角色(Role)呈多对多关系。
2. **志愿相关**:用户(User)与志愿方案(Plan)呈一对多关系;志愿方案(Plan)与志愿明细(Item)呈一对多关系。
3. **数据相关**:院校(University)和专业(Major)通过录取数据表(AdmissionData)关联,形成不同年份的录取分数记录。
## 4. 物理设计
## 4.1. 表汇总
|数据表|名称|
|---|---|
|sys_user|系统用户表|
|sys_role|系统角色表|
|sys_user_role|用户角色关联表|
|base_university|院校基础信息表|
|base_major|专业基础信息表|
|biz_admission_data|历年录取数据表|
|biz_score_segment|一分一段表|
|biz_volunteer_plan|用户志愿模拟方案表|
|biz_plan_item|志愿方案明细表|
## 4.2. XXX表
### 4.2.1 sys_user (系统用户表)
|字段名|类型|长度|是否主键|允许空|说明|
|---|---|---|---|---|---|
|id|bigint|20|Y|N|主键ID|
|username|varchar|50|N|N|用户名/学号|
|password|varchar|100|N|N|加密密码|
|real_name|varchar|50|N|Y|真实姓名|
|score|int|11|N|Y|高考分数|
|rank|int|11|N|Y|全省位次|
|province|varchar|20|N|Y|考生省份|
|subject_type|varchar|10|N|Y|科类(物理/历史)|
|create_time|datetime||N|N|创建时间|
### 4.2.2 base_university (院校基础信息表)
|字段名|类型|长度|是否主键|允许空|说明|
|---|---|---|---|---|---|
|id|bigint|20|Y|N|主键ID|
|code|varchar|20|N|N|院校代码|
|name|varchar|100|N|N|院校名称|
|level|varchar|20|N|Y|办学层次(本科/专科)|
|tags|varchar|200|N|Y|标签985/211/双一流)|
|location|varchar|50|N|Y|所在地|
### 4.2.3 biz_admission_data (录取数据表)
|字段名|类型|长度|是否主键|允许空|说明|
|---|---|---|---|---|---|
|id|bigint|20|Y|N|主键ID|
|year|int|4|N|N|年份|
|uni_id|bigint|20|N|N|院校ID|
|major_name|varchar|100|N|N|专业名称|
|min_score|int|11|N|N|最低分|
|min_rank|int|11|N|N|最低位次|
### 4.2.4 biz_volunteer_plan (用户志愿模拟方案表)
|字段名|类型|长度|是否主键|允许空|说明|
|---|---|---|---|---|---|
|id|bigint|20|Y|N|主键ID|
|user_id|bigint|20|N|N|用户ID|
|plan_name|varchar|50|N|N|方案名称|
|risk_level|int|2|N|Y|总体风险等级|
|create_time|datetime||N|N|创建时间|
### 4.2.5 biz_plan_item (志愿方案明细表)
|字段名|类型|长度|是否主键|允许空|说明|
|---|---|---|---|---|---|
|id|bigint|20|Y|N|主键ID|
|plan_id|bigint|20|N|N|方案ID|
|uni_id|bigint|20|N|N|院校ID|
|major_name|varchar|100|N|N|专业名称|
|prob_rate|int|4|N|Y|录取概率(%)|
|sort_order|int|4|N|N|志愿顺序|
### 4.2.6 sys_role (系统角色表)
|字段名|类型|长度|是否主键|允许空|说明|
|---|---|---|---|---|---|
|id|bigint|20|Y|N|主键ID|
|role_name|varchar|50|N|N|角色名称|
|role_code|varchar|50|N|N|角色编码|
|description|varchar|200|N|Y|描述|
### 4.2.7 sys_user_role (用户角色关联表)
|字段名|类型|长度|是否主键|允许空|说明|
|---|---|---|---|---|---|
|id|bigint|20|Y|N|主键ID|
|user_id|bigint|20|N|N|用户ID|
|role_id|bigint|20|N|N|角色ID|
### 4.2.8 base_major (专业基础信息表)
|字段名|类型|长度|是否主键|允许空|说明|
|---|---|---|---|---|---|
|id|bigint|20|Y|N|主键ID|
|code|varchar|20|N|N|专业代码|
|name|varchar|100|N|N|专业名称|
|category|varchar|50|N|Y|学科门类|
|degree|varchar|20|N|Y|授予学位|
### 4.2.9 biz_score_segment (一分一段表)
|字段名|类型|长度|是否主键|允许空|说明|
|---|---|---|---|---|---|
|id|bigint|20|Y|N|主键ID|
|year|int|4|N|N|年份|
|province|varchar|20|N|N|省份|
|score|int|11|N|N|分数|
|count|int|11|N|N|同分人数|
|ranking|int|11|N|N|累计位次|
## 5. 安全性设计
## 5.1. 帐号与密码管理
1. **账号唯一性**`sys_user` 表中 `username` 字段设置唯一索引,防止重复注册。
2. **密码复杂度**:前端校验密码强度(长度、字符组合),后端再次校验。
3. **敏感信息脱敏**:用户身份证号(如有)、手机号在展示时进行掩码处理。
## 5.2. 密码加密方法
系统不存储明文密码。采用 **BCrypt** 算法对用户密码进行加盐哈希加密存储。验证时使用相同算法比对,确保即使数据库泄露,攻击者也难以破解密码。
## 5.3. 角色与权限
|角色|可以访问的表|操作权限|
|---|---|---|
|系统管理员|所有表|增删改查 (ALL)|
|考生|sys_user (自己的记录)|查询、修改 (Own)|
|考生|base_*, biz_admission_*|查询 (Read Only)|
|考生|biz_volunteer_* (自己的记录)|增删改查 (Own)|
## 6. 性能优化方法
1. 查询优化:避免使用不必要的连接和子查询,选择合适的数据类型和聚合函数,优化查询语句可以提高查询速度
2. 缓存优化:将频繁使用的数据和查询结果缓存起来可以减少对数据库的访问次数,提高性能。
## 7. 数据库管理与维护说明
1. 数据库设计:考虑数据模型、数据结构、数据类型等,以确保数据库的高效性和可靠性。
2. 安装与配置:根据需求选择合适的版本,并进行必要的配置,如内存分配、磁盘空间等。
3. 数据备份与恢复:定期备份数据库可以确保在发生数据丢失或损坏时能够及时恢复数据。
4. 性能调整:对数据库进行性能调整可以提高数据库的响应速度和效率。
5. 安全管理:采取适当的措施确保数据库的安全性,如访问控制、加密等。
6. 更新和维护:及时更新数据库和相关软件,并对数据库进行维护和修复,以确保系统的稳定和可靠性。
---
---
---
---

View File

@@ -0,0 +1,327 @@
# 三、基于SpringBoot框架的高考志愿辅助填报系统-用户需求(规格)说明书
重庆工程学院<br>Chongqing Institute of Engineering
## 版本历史
|版本/状态|作者|参与者|起止日期|备注|
|---|---|---|---|---|
||||||
||||||
||||||
||||||
## 目录
1. [文档介绍](#0-文档介绍)
2. [产品介绍](#1-产品介绍)
3. [产品面向的用户群体](#2-产品面向的用户群体)
4. [产品应当遵循的标准或规范](#3-产品应当遵循的标准或规范)
5. [产品的范围](#4-产品的范围)
6. [产品中的角色](#5-产品中的角色)
7. [界面设计](#6-界面设计)
8. [产品的功能需求](#7-产品的功能需求)
9. [产品的非功能性需求](#8-产品的非功能性需求)
10. [其它需求](#9-其它需求)
## 0. 文档介绍
## 0.1 文档目的
1. 为开发成员、客户之间提供共同的协议而创立基础,描述用户软件的宏观需求。
2. 根据客户要求,准确描述功能性和非功能性需求,给产品的需求规格说明书提供基础。
3. 本说明书的预期读者为开发小组成员及甲方负责人。本说明能让甲方代表更好地了解本系统,减少彼此之间交流的困难和开发中因为需求不明确而产生的不必要的麻烦。
4. 保证软件开发的质量、需求的完整与可追溯性,编写此文档。通过此文档,以保证业务需求提出者与需求分析人员、开发人员、测试人员及其也相关利益人对需求达成共识。
5. 本文档面向多种读者对象,在阅读本文档时,首先要了解产品的功能概貌,然后可以根据自身的需要对每一功能进行适当的了解。
6. 本需求规格说明书预期的读者对象包括各类用户代表、开发团队中的各类参与者,用来对项目涉及的业务知识和系统开发所需解决的问题、满足的需求达成共识。
## 0.2 文档范围
本文档主要内容有:介绍项目的背景,项目所遵循的规范,面向的用户群体,产品的功能需求与非公能性需求,性能需求,界面设计等。
主要目的是为后续的开发工作起到较好的指导作用。该需求规格说明书可提供给最终用户、研发人员等相关人员阅读。
## 0.3 读者对象
本文的读者包括系统用户、项目负责人、软件开发人员、软件测试人员、文档编写人员。
## 0.4 参考文档
## 0.5 术语与缩写解释
|缩写、术语|解 释|
|---|---|
|位次|考生高考成绩在全省同科类考生中的排名。|
|一分一段表|按分数统计的全省考生人数及累计排名表。|
|线差|考生分数与某批次录取控制分数线的差值。|
|滑档|考生档案未被任何志愿院校投档。|
|退档|考生档案投到高校后,因不符合要求被退回。|
## 1. 产品介绍
本项目旨在设计与实现一个基于SpringBoot框架的高考志愿辅助填报系统。整个系统以"辅助决策"为核心理念,通过整合教育部及各省招生考试院的权威数据,构建全面、准确的院校专业数据库。
系统主要解决考生在志愿填报过程中面临的信息不对称、决策困难、风险不可控等痛点。通过引入智能推荐算法,综合分析考生的成绩、位次、兴趣偏好及职业倾向,提供"冲、稳、保"分层推荐方案。同时,系统提供志愿模拟填报与风险评估功能,帮助考生科学构建志愿梯度,降低滑档风险。
本项目具有重要的现实意义:
1. **提升决策科学性**:通过数据可视化和智能分析,降低信息收集成本,减少人为误判。
2. **促进教育公平**:为教育资源相对匮乏地区的考生提供免费、专业的填报指导。
3. **技术实践价值**:作为软件工程专业的毕业设计,本项目涉及前后端分离架构、微服务设计、大数据处理及推荐算法等核心技术,是对所学知识的综合应用。
## 2. 产品面向的用户群体
本产品的核心用户群体包括:
1. **考生(核心用户)**:需要查询院校信息、获取志愿推荐、模拟填报志愿的高三学生。
2. **家长**:辅助考生收集信息,关注院校就业前景、升学率等数据的监护人。
3. **教师/辅导员**:需要掌握学生志愿填报情况,提供指导建议的教育工作者。
4. **系统管理员**:负责系统基础数据维护(院校、专业、分数线)、用户管理及系统配置的后台人员。
## 3. 产品应当遵循的标准或规范
1. **软件工程标准**:遵循 GB/T 8567-2006《计算机软件文档编制规范》。
2. **Web标准**:前端开发遵循 W3C 标准,确保 HTML/CSS/JS 的规范性。
3. **数据安全标准**:遵循 GB/T 35273-2020《信息安全技术 个人信息安全规范》保护考生隐私。
## 4. 产品的范围
本系统主要包括以下范围:
1. **数据范围**覆盖全国普通高等院校本科、专科的基础信息、专业设置及近3-5年的录取数据。
2. **业务范围**
- 考生端:提供院校查询、专业查询、智能推荐、模拟填报、风险评估等功能。
- 管理端:提供用户管理、数据(院校/专业/分数线)导入与维护、系统公告发布等功能。
3. **不包含范围**
- 不包含实际的高考志愿填报提交功能(需在省招办官方系统进行)。
- 不包含艺术类、体育类等特殊类型的志愿填报辅助。
## 5. 产品中的角色
|角色名称|职责描述|
|---|---|
|考生|浏览院校/专业信息,查询历年录取数据,维护个人信息(成绩、偏好),使用智能推荐功能,进行志愿模拟填报,查看风险评估报告。|
|系统管理员|管理注册用户,维护院校及专业基础数据,导入/更新历年录取分数线,发布系统公告,监控系统运行状态。|
## 6. 界面设计
## 6.1 设计思路
### 6.1.1 布局设计
采用现代Web应用主流的响应式布局。
- **顶部导航栏**包含系统Logo、主要功能入口首页、查大学、查专业、智能推荐、模拟填报、用户中心入口。
- **主体内容区**:采用宽屏展示,根据功能模块不同分为卡片式列表(信息查询)、表单交互区(信息录入)、图表展示区(数据分析)。
- **底部信息栏**:包含版权信息、友情链接等。
### 6.1.2 屏幕分辨率
系统主要面向PC端浏览器访问推荐分辨率为 1920x1080同时向下兼容 1366x768。前端框架支持自适应调整确保在不同分辨率下界面元素不错位。
### 6.1.3 色彩
- **主色调**:使用清新蓝(#1890FF)或类似色调,象征理智、科技与未来,符合教育类产品的调性。
- **辅助色**
- 成功/安全(绿色):用于标记"保一保"志愿、低风险提示。
- 警告/注意(橙色):用于标记"稳一稳"志愿、中等风险。
- 危险/冲刺(红色):用于标记"冲一冲"志愿、高风险提示。
- **背景色**:使用浅灰(#F0F2F5)作为页面背景,卡片使用纯白(#FFFFFF),营造干净清爽的视觉体验。
### 6.1.4 字体
优先使用系统默认无衬线字体(如 PingFang SC, Microsoft YaHei, Helvetica Neue保证阅读清晰度。
- 标题字号20px - 24px加粗。
- 正文字号14px - 16px。
- 辅助文字12px灰色。
## 6.2 界面样例
XXX界面
## 7. 产品的功能需求
## 7.1 业务流程分析
```mermaid
graph TD
A[考生登录系统] --> B{是否完善信息?};
B -- 否 --> C[完善成绩/位次/偏好];
C --> B;
B -- 是 --> D[进入首页];
D --> E[浏览/查询院校专业];
D --> F[智能推荐];
D --> G[模拟填报];
F --> H[获取推荐列表];
H --> I[查看详情/风险分析];
I --> J[加入备选志愿];
G --> K[创建模拟志愿表];
K --> L[调整志愿顺序];
L --> M[风险评估];
M --> N[保存方案];
E --> J;
J --> K;
```
## 7.2 功能列表
|功能编码|功能项名称|子模块编码|子模块名称|说明|
|---|---|---|---|---|
|U01|用户管理|U01-01|注册与登录|支持手机号/学号注册,密码登录,忘记密码找回。|
|U01|用户管理|U01-02|个人中心|修改个人资料,绑定高考成绩、科类、位次等关键信息。|
|Q01|信息查询|Q01-01|院校查询|支持按省份、层次985/211/双一流)、类型筛选院校,查看院校详情。|
|Q01|信息查询|Q01-02|专业查询|支持按学科门类查询专业,查看专业介绍、开设院校及就业方向。|
|Q01|信息查询|Q01-03|录取数据查询|查询历年各高校各专业的录取最高分、最低分、平均分及位次。|
|R01|智能推荐|R01-01|一键推荐|基于考生成绩和位次,结合历年数据,算法自动生成志愿列表。|
|R01|智能推荐|R01-02|梯度分析|将推荐结果标记为"冲、稳、保"三个梯度。|
|S01|志愿模拟|S01-01|模拟填报|允许考生手动添加、调整志愿顺序,保存模拟表。|
|S01|志愿模拟|S01-02|风险评估|分析模拟表的合理性,提示滑档风险、专业调剂风险。|
|A01|系统管理|A01-01|数据维护|管理员对院校、专业、分数线数据的增删改查及批量导入。|
## 7.3 功能层次结构图
```mermaid
graph TD
System[高考志愿辅助填报系统]
subgraph 核心功能
F1[用户管理]
F2[信息查询]
F3[智能推荐]
F4[志愿模拟]
F5[系统管理]
end
System --> F1
System --> F2
System --> F3
System --> F4
System --> F5
F1 --> F11[注册登录]
F1 --> F12[个人中心]
F2 --> F21[查院校]
F2 --> F22[查专业]
F2 --> F23[查分数]
F3 --> F31[一键推荐]
F3 --> F32[梯度分析]
F4 --> F41[模拟填报]
F4 --> F42[风险评估]
```
## 7.4 功能用例及核心用例描述
```mermaid
graph LR
User[👤 考生]
Admin[👤 管理员]
subgraph System [高考志愿辅助填报系统]
direction TB
UC1(注册/登录)
UC2(个人中心)
UC3(查询院校/专业)
UC4(查询录取数据)
UC5(智能推荐志愿)
UC6(模拟填报志愿)
UC7(志愿风险评估)
UC8(用户管理)
UC9(基础数据维护)
end
User --> UC1
User --> UC2
User --> UC3
User --> UC4
User --> UC5
User --> UC6
User --> UC7
Admin --> UC1
Admin --> UC8
Admin --> UC9
```
### 核心用例1智能推荐志愿
- **参与者**:考生
- **前置条件**:考生已登录且完善了成绩信息(分数、位次、科类)。
- **基本流程**
1. 考生点击"智能推荐"菜单。
2. 系统读取考生成绩信息,并提示考生选择意向地区(可选)和意向专业类别(可选)。
3. 考生确认筛选条件并提交。
4. 系统后台运行推荐算法,匹配历年录取数据。
5. 系统展示推荐结果列表,按"冲、稳、保"分类标识。
- **后置条件**:展示推荐列表,考生可将院校加入备选或直接填入模拟表。
### 核心用例2模拟志愿填报
- **参与者**:考生
- **基本流程**
1. 考生进入"模拟填报"页面。
2. 考生从收藏夹或查询结果中添加院校和专业志愿。
3. 考生调整志愿顺序。
4. 系统实时计算当前志愿表的完整度和风险等级。
5. 考生点击"保存方案"。
6. 系统提示保存成功,并给出具体的优化建议报告。
## 8. 产品的非功能性需求
## 8.1 用户界面需求
|需求名称|详细要求|
|---|---|
|整体风格|界面简洁、清晰色彩搭配和谐符合教育产品严肃活泼的特点。交互逻辑符合常规Web操作习惯。|
|响应式设计|界面需兼容主流桌面浏览器Chrome, Edge, Firefox并在窗口缩放时保持布局合理。|
|易用性|关键操作(如填报、推荐)需有明确引导,错误提示友好且准确。|
|数据可视化|录取走势等数据应采用折线图、柱状图等直观展示。|
## 8.2 软硬件环境需求
|需求名称|详细要求|
|---|---|
|开发语言|后端Java (JDK 1.8+)前端HTML5, CSS3, JavaScript/TypeScript|
|运行环境|服务端Tomcat 9+客户端现代Web浏览器|
|数据库|MySQL 5.7 或 8.0+|
|操作系统|服务端推荐Linux (CentOS/Ubuntu)开发端Windows/macOS|
## 8.3 性能需求
1. **响应时间**
- 首页加载时间 < 2秒。
- 一般查询操作(如查院校)响应时间 < 1秒。
- 复杂计算操作(如智能推荐)响应时间 < 3秒。
2. **并发性**
- 支持至少 100 个用户同时在线访问。
- 核心数据库查询支持 200 QPS。
3. **资源利用率**
- 应用服务器 CPU 利用率平时不超过 40%,高峰期不超过 80%。
- 内存占用不超过总内存的 70%。
## 8.4 产品质量需求
|主要质量属性|详细要求|
|---|---|
|正确性|所有录取数据必须与官方源数据保持一致;推荐算法计算结果逻辑正确,无明显偏差。|
|健壮性|系统应能处理用户输入的非法数据(如负分、非数字等),并给出提示,不应直接崩溃。|
|可靠性|在并发访问量较大(如志愿填报高峰期)时,系统核心功能(查询、保存)应保持可用。|
|安全性|用户密码需加密存储如BCrypt关键API需进行身份认证Token防止SQL注入和XSS攻击。|
|可扩展性|后端采用模块化设计Controller-Service-Dao便于后续增加新的功能模块或对接第三方数据接口。|
|易用性|界面操作流程简单直观,无需查看复杂文档即可上手使用。|
## 9. 其它需求

View File

@@ -0,0 +1,240 @@
# 本科毕业设计(论文)开题报告
| 课题名称 | 基于SpringBoot框架的高考志愿辅助填报系统设计与实现 | 基于SpringBoot框架的高考志愿辅助填报系统设计与实现 | 基于SpringBoot框架的高考志愿辅助填报系统设计与实现 |
| --- | --- | --- | --- |
| 课题类型 | 系统设计 | 学院 | 软件学院 |
| 班级 | 22软工8班 | 专业 | 软件工程 |
| 指导教师 | 彭娟 | 职称 | 讲师 |
| 学生姓名 | 向黎华 | 学号 | 229970427 |
重庆工程学院教务处制
## 1. 课题名称、来源、选题依据
### 1.1 课题名称
基于SpringBoot框架的高考志愿辅助填报系统设计与实现。
### 1.2 课题来源
本课题来源于指导教师的拟定项目,指导老师熟悉高考志愿填报系统的业务内容、流程和要求,掌握设计开发全生命周期,对关键数据进行脱敏的基础上,仅保留与本课题直接相关的核心业务内容,提炼为一个业务清晰、流程完整、逻辑合理、难度适宜的,且符合重庆工程学院软件工程专业本科毕业设计要求的软件项目。
### 1.3 选题依据
高考是我国教育体系中的重要环节,志愿填报直接关系到考生的未来发展方向和人生规划。然而,在实际填报过程中,考生及家长面临着信息量大、专业复杂、录取规则多样等诸多困难。传统的志愿填报方式主要依赖于纸质资料、零散的网络信息和个人经验判断,效率低下且容易出现信息不对称、决策失误等问题。
近年来随着大数据和人工智能技术的发展志愿填报辅助系统逐渐兴起但现有系统普遍存在数据更新不及时、推荐算法单一、用户体验欠佳等问题。因此设计一个基于SpringBoot框架的高考志愿辅助填报系统整合历年录取数据、院校专业信息、就业前景分析等多维度信息为考生提供科学、精准的志愿填报建议具有重要的现实意义。
从技术角度看SpringBoot框架以其简化配置、快速开发、微服务支持等特性成为当前企业级应用开发的主流选择。通过本项目的实践可以系统掌握SpringBoot的核心技术包括SpringMVC、MyBatis数据持久化、Spring Security安全控制、Redis缓存优化等并深入理解前后端分离架构、RESTful API设计、数据分析与智能推荐算法等现代软件工程实践。这对提升个人的软件开发能力和工程实践经验具有重要价值。
## 2. 课题国内外研究现状和发展趋势
### 1国外研究现状
在国外,高等教育志愿选择与职业规划辅助系统的研究起步较早,已形成较为成熟的理论体系和技术实践。美国的"Common Application"系统是全球最具影响力的大学申请平台之一该系统不仅整合了超过900所高校的申请信息还提供了基于学生成绩、兴趣、地理位置等多维度的智能匹配功能。系统采用云计算架构后端使用Java和Spring框架构建微服务前端采用React技术栈确保了系统的高并发处理能力和良好的用户体验。
在推荐算法方面国外学者进行了深入研究。Garg和Leake在其论文《Personalized learning path generation using machine learning》中提出了基于机器学习的个性化学习路径生成方法该方法通过分析学生的历史成绩、学习风格和职业兴趣能够为学生推荐最适合的专业方向。此外美国的Naviance系统和英国的UCAS系统也都采用了数据挖掘和协同过滤技术为学生提供个性化的院校和专业推荐服务。
### 2国内研究现状
国内高考志愿填报辅助系统的研究和应用在近年来快速发展。以"夸克志愿"、"完美志愿"、"优志愿"等为代表的志愿填报辅助平台相继涌现,这些系统主要基于历年录取数据,采用大数据分析和智能推荐算法,为考生提供院校专业查询、录取概率预测、志愿模拟填报等功能。
在技术实现方面国内志愿填报系统普遍采用前后端分离架构。后端多采用SpringBoot框架结合MyBatis或MyBatis-Plus进行数据持久化使用MySQL或PostgreSQL作为主数据库Redis作为缓存层以提升查询效率。前端则多采用Vue.js或React框架配合Element UI、Ant Design等UI组件库实现响应式、交互性强的用户界面。
某高校开发的"智能志愿填报系统"该系统创新性地引入了基于协同过滤的推荐算法通过分析相似考生的填报历史和录取结果为当前考生提供个性化的志愿推荐。系统后端采用SpringBoot + Spring Cloud微服务架构确保了系统的高可用性和可扩展性前端采用Vue 3 + TypeScript提供了良好的类型检查和代码可维护性。
### 3发展趋势
未来,高考志愿填报辅助系统将朝着智能化、个性化、生态化方向发展。首先,人工智能技术将得到更深入的应用,通过深度学习算法分析考生的综合素质、兴趣特长、职业倾向等多维度信息,提供更加精准的专业和院校推荐。其次,系统将更加注重个性化服务,不仅考虑录取概率,还将结合专业发展前景、就业薪资、地域偏好等因素,为每位考生量身定制最优志愿方案。此外,系统将打破信息孤岛,整合高校官网、就业网站、职业测评平台等多方数据,构建完整的教育-就业-职业发展生态链,为考生提供从志愿填报到职业规划的全流程服务。
## 3. 本课题的目的及意义
### 3.1 研究目的
设计与实现一个基于SpringBoot框架的高考志愿辅助填报系统旨在构建一个集信息查询、数据分析、智能推荐、志愿模拟于一体的综合性服务平台。系统核心目的在于解决考生在志愿填报过程中面临的信息分散、决策困难、风险不可控等核心问题。
系统将为考生、家长、教师三类用户提供差异化服务,最终实现以下目标:通过整合全国高校、专业、历年录取分数线等权威数据,建立统一的信息查询平台,解决信息不对称问题;通过引入智能推荐算法,基于考生的成绩、兴趣、地域偏好等多维度因素,生成个性化的志愿推荐方案;通过提供志愿模拟填报功能,让考生能够提前预演填报过程,评估录取概率,降低填报风险;通过数据可视化技术,以图表形式直观展示历年录取趋势、专业就业前景等信息,辅助考生做出科学决策。最终,本系统将全面提升志愿填报的科学性和成功率,为考生的升学规划提供有力支撑。
### 3.2 研究意义
(1) 解决志愿填报实际痛点,提升决策科学性:当前高考志愿填报普遍面临信息分散、规则复杂、决策盲目等现实难题。本系统通过整合权威数据、提供智能分析、支持模拟填报等功能,能够显著降低考生的信息收集成本,提高决策效率,避免因信息不全或误判导致的志愿填报失误,切实提升志愿填报的科学性和成功率。
(2) 推动教育信息化建设具有显著的行业应用价值高考志愿填报辅助系统是教育信息化的重要组成部分。本系统的设计与实现不仅是大数据技术在教育领域的成功应用实践更是对构建智慧教育生态的有益探索。系统采用的SpringBoot微服务架构、智能推荐算法、数据可视化等技术方案对同类系统的开发具有重要的参考价值和示范意义。
(3) 促进教育公平,产生积极的社会效益:优质教育资源的获取很大程度上取决于志愿填报的合理性。本系统通过提供免费、专业的志愿填报辅助服务,能够帮助更多考生特别是教育资源相对匮乏地区的考生获得科学的填报指导,在一定程度上缩小城乡、区域间的教育信息鸿沟,促进教育公平,为构建和谐社会做出贡献。
## 4. 本课题的任务、重点内容、研究方法、实现途径、进度计划
### 4.1 研究任务
(1) 调研了解课题背景和国内外研究现状,明确解决的问题和实现技术。
(2) 完成高考志愿辅助填报系统的设计与实现。
(3) 完成毕业设计(论文)撰写。
### 4.2 主要工作内容
按照软件工程思想开展项目的需求分析、系统设计、实现和测试,并完成对应的文档撰写。
#### 1业务需求
本选题旨在设计与实现一个覆盖高考志愿填报全流程的智能辅助平台,核心业务围绕考生、家长、教师三类角色展开,以解决传统填报方式中信息不透明、决策困难、风险不可控等核心问题。
首先,系统的基础业务是构建完整的院校专业数据库。系统管理员负责维护全国高校信息、专业信息、历年录取分数线等基础数据,包括对数据进行增删改查,并确保数据的准确性和时效性。系统将整合教育部官方数据、各省招生考试院数据等权威信息源,形成全面、准确的志愿填报数据基础。
其次,系统的核心业务是提供智能志愿推荐服务。考生登录系统后,输入个人成绩、科类、地域偏好、专业倾向等信息。系统将基于多维度分析算法,综合考虑历年录取分数、院校排名、专业就业前景等因素,为考生生成个性化的志愿推荐方案。推荐方案将包含"冲一冲"、"稳一稳"、"保一保"三个层次,并显示每个志愿的录取概率预测,帮助考生科学构建志愿梯度。
再次,系统的重要业务是支持志愿模拟填报与风险评估。考生可以在系统中进行多次志愿模拟填报,系统会根据当年的招生计划、往年录取数据和考生分数排名,实时计算每个志愿的录取概率,并进行风险评估。如果发现志愿梯度不合理、存在滑档风险等问题,系统会及时提醒并给出优化建议。
最后,系统的辅助业务包括信息查询、数据对比、趋势分析等功能。考生可以查询任意院校或专业的详细信息、录取历史、就业数据等;可以将多个院校或专业进行横向对比,直观了解差异;可以查看历年录取分数线的变化趋势,把握填报规律。
通过上述环环相扣的业务流程,本系统将构建一个从"数据整合->智能推荐->模拟填报->风险评估->志愿确定"的完整线上闭环实现对高考志愿填报的全方位、智能化辅助。主要业务流程如图1所示。
![[Snipaste_2026-02-04_23-46-19.png]]
#### 2系统的主要功能
① 用户管理:支持考生注册、登录、个人信息管理等功能。考生可以保存个人成绩、偏好设置等信息,方便后续使用。系统区分考生、管理员等不同角色,提供差异化的功能权限。
② 院校专业查询:提供全国高校信息查询功能,包括院校简介、办学层次、地理位置、重点学科等。提供专业信息查询功能,包括专业介绍、培养目标、主要课程、就业方向等。支持多条件组合查询和模糊搜索。
③ 录取数据查询:提供历年各高校各专业录取分数线查询功能,支持按年份、省份、科类等条件筛选。展示录取最高分、最低分、平均分及对应位次等详细数据。提供数据可视化图表,直观展示录取趋势。
④ 智能志愿推荐:基于考生成绩、位次、科类、地域偏好等信息,运用智能推荐算法生成个性化志愿方案。推荐结果包含"冲"、"稳"、"保"三个层次,每个志愿标注录取概率。支持推荐结果的保存和导出。
⑤ 志愿模拟填报:提供志愿模拟填报功能,考生可以自由组合志愿。系统实时计算每个志愿的录取概率,并进行风险评估。如发现志愿梯度不合理,系统给出优化建议。支持多次模拟,保存多个填报方案。
### 4.3 重点内容
#### 重点
(1) 智能推荐算法:设计并实现基于多维度因素的志愿推荐算法,综合考虑历年录取数据、考生成绩位次、专业热度、就业前景等因素,生成个性化推荐方案。
(2) 录取概率预测:基于历年录取数据和当年招生计划,建立录取概率预测模型,为每个志愿计算录取概率,辅助考生科学决策。
(3) 志愿风险评估:分析考生填报的志愿方案,识别潜在风险(如志愿梯度不合理、存在滑档风险等),并给出优化建议。
#### 难点
(1) 大数据处理系统需要整合和处理海量的院校、专业、录取数据涉及多表关联查询和复杂的数据分析。后端需要优化SQL查询语句使用索引、分页等技术提升查询效率。前端需要实现数据的分页加载和虚拟滚动确保大数据量下的流畅体验。
(2) 推荐算法的准确性:推荐算法需要综合多个维度的因素,且不同因素的权重难以确定。需要通过大量历史数据的分析和机器学习方法,不断优化算法模型,提高推荐的准确性和可靠性。
(3) 数据实时性与一致性:录取数据需要及时更新,确保考生获取的信息准确、最新。系统需要设计合理的数据更新机制和缓存策略,在保证数据实时性的同时,提升系统响应速度。
### 4.4 研究方法
- 文献综述:通过知网、维普等学术平台检索与高考志愿填报系统、智能推荐算法、教育大数据分析相关的参考文献,全面了解当前研究方法、技术路线、研究成果及存在问题,为项目设计与实现提供理论支撑。
- 案例研究:分析"完美志愿"、"优志愿"等成熟的志愿填报系统的功能设计、技术架构和用户体验,借鉴其成功经验,避免走弯路。重点研究这些系统的推荐算法原理、数据组织方式和交互设计理念。
- 数据分析:收集并分析历年高考录取数据,包括各院校各专业的录取分数线、招生计划、录取人数等。通过数据挖掘和统计分析,发现录取规律,为推荐算法和概率预测模型的构建提供数据基础。
- 模型构建通过UML建模工具绘制用例图、类图、时序图等清晰展示系统的功能结构、用户交互流程和组件协作关系。通过ER图设计数据库结构确保数据的完整性和一致性。
### 4.5 技术路线
以软件工程思想为导向实施项目开发其思路及方法如图2所示。
![img](需求分析-文献调研-前端框架设计-后端框架设计-开题报告-系统设计-数据库设计-前端组件开发-项目实现-编码实现-后端接口开发-前后端联调-论文撰写-系统测试)
图2 技术路线
#### 4.5.1 需求分析
通过面向对象分析方法,明确系统的功能目标和用户角色。高考志愿辅助填报系统主要包括用户管理、院校专业查询、录取数据查询、智能推荐、志愿模拟、数据分析等功能模块。系统支持考生、管理员两类用户角色,并明确各角色的操作权限。同时,分析系统的非功能性需求,包括性能要求(支持高并发访问)、安全性要求(数据加密、权限控制)、可用性要求(界面友好、操作简便)等。最终撰写详细的软件需求规格说明书,为后续设计和开发提供依据。
#### 4.5.2 系统设计
以软件工程思想为导向,采用瀑布模型进行项目开发,遵循需求分析、系统设计、编码实现、测试验证的开发流程。
##### 系统架构设计
采用前后端分离架构后端基于SpringBoot框架搭建RESTful API服务前端使用Vue 3框架构建用户界面。前后端通过HTTP协议进行JSON数据交互。后端采用分层架构包括控制层(Controller)、业务逻辑层(Service)、数据访问层(DAO)。使用MyBatis-Plus作为ORM框架简化数据库操作。引入Redis缓存对热点数据如院校信息、录取数据进行缓存提升查询效率。
##### 数据库设计
根据业务需求设计系统所需的数据表主要包括用户表、院校表、专业表、录取数据表、志愿方案表等。绘制ER图明确实体及其关系。使用MySQL作为关系型数据库通过规范化设计确保数据的一致性和完整性。对高频查询字段建立索引优化查询性能。
##### 详细设计
绘制类图定义核心业务对象及其属性、方法。绘制时序图描述关键业务流程如智能推荐、志愿模拟的交互细节。设计API接口明确每个接口的请求参数、响应格式和业务逻辑为前后端协作提供契约。
#### 4.5.3 系统实现
- 后端开发使用SpringBoot框架搭建项目基础架构。使用Spring MVC处理HTTP请求实现RESTful API。使用MyBatis-Plus进行数据持久化操作。使用Spring Security实现用户认证和权限控制。集成Redis实现数据缓存。开发智能推荐算法和录取概率预测模型。
- 前端开发使用Vue 3框架构建系统。使用Ant Design Vue组件库快速搭建界面。使用Axios进行HTTP请求。使用ECharts实现数据可视化。使用Vue Router实现前端路由。使用Pinia进行状态管理。
#### 4.5.4 测试
在系统开发完成后,进行全面测试,确保系统稳定可靠。
- 功能测试编写测试用例验证各功能模块是否正常工作如用户注册登录、数据查询、智能推荐、志愿模拟等功能是否符合需求。使用Postman或Swagger测试API接口确保接口的正确性。
- 性能测试模拟多用户并发访问测试系统的响应时间和吞吐量。使用JMeter等工具进行压力测试评估系统的承载能力。对数据库查询进行性能分析优化慢查询。
- 安全测试测试用户认证和权限控制是否有效。检查是否存在SQL注入、XSS等安全漏洞。确保敏感数据的加密存储和传输。
### 4.6 工作计划
任务起止时间2025年10月16日 至 2026年4月27日。
(1) 毕业设计论文开题2025.10.16-2025.11.15
(2) 系统设计与主体功能实现2025.11.16-2025.12.31
(3) 毕业设计论文初稿2026.01.01-2026.02.10
(4) 中期检查及项目功能完善2026.03.01-2026.03.15
(5) 毕业设计论文定稿和查重2026.03.16-2026.03.20
(6) 毕业设计论文评阅2026.03.21-2026.03.31
(7) 毕业设计论文答辩2026.04.21-2026.04.27
## 5. 完成本课题所需工作条件(如工具书、计算机、实验、调研等)及解决办法
### 5.1 开发环境
#### 1软件环境
JDK版本1.8.0+
开发软件IDEAVSCode等
服务器版本Tomcat 9
数据库版本MySQL 5+
数据库工具IDEA
建模工具Enterprise Architect8+。
#### 2硬件环境
11th Gen Intel(R) Core(TM) i5-11320H @ 3.20GHZ16G内存Window7+系统。
### 5.2 实验室
3教211室。
### 5.3 技术解决方案
(1) 系统使用基于SpringBoot框架、B/S三层架构设计模式、面向对象思想以及面向接口编程思想等。
(2) 系统主要使用技术前端Vue、Ant-Design-Vue组件库、Echarts、高德地图API等。后端MVC三层架构、MyBatis-Plus、Redis等。
## 参考文献
[1] 白瑞. 新高考志愿填报的变化、影响及应对[J]. 山西教育(招考), 2025, (Z3):4-6.
[2] 温创新, 谢莎, 何雅婷. 基于微服务架构的新高考志愿填报推荐系统设计[J]. 科技创新与应用, 2025, 15(10):28-33. DOI:10.19981/j.CN23-1581/G3.2025.10.007.
[3] 成钢. 高中选科对学生高考志愿填报策略的影响研究[J]. 高考, 2025, (02):22-25.
[4] 王威. 人工智能技术在高考志愿填报中的个性化推荐:技术实现与前景展望[J]. 湖北招生考试, 2024, (06):24-29.
[5] 温创新, 黄桂萍, 孔春杰. 高性能计算在新高考志愿填报推荐系统中的应用研究[J]. 信息与电脑(理论版), 2023, 35(23):115-118.
[6] 高丽丽, 樊彩虹. 基于大数据的高考志愿填报推荐系统的设计[J]. 电子技术与软件工程, 2021, (22):213-215. DOI:10.20109/j.cnki.etse.2021.22.078.
[7] 郑成斌. 山东新高考政策下的高考志愿推荐系统的设计与实现[D]. 曲阜师范大学, 2021. DOI:10.27267/d.cnki.gqfsu.2021.000766.

Submodule 资料/planner_teacher added at 693e5d2942

745
资料/schema.sql Normal file
View File

@@ -0,0 +1,745 @@
create table zr_major
(
id int auto_increment
primary key,
major_type int null comment '1本科 2专科高职',
major_title varchar(255) null comment '专业名称',
major_code varchar(11) null comment '专业代码',
major_mood int null comment '专业人气',
degree varchar(255) null comment '授予学位',
`system` varchar(50) null comment '学制',
major_detailed text null comment '专业简介',
major_course text null comment '专业课程 genre_id',
man_ratio decimal(10, 2) null comment '男生比例',
woman_ratio decimal(10, 2) null comment '女生比例',
genre_id int null comment '专业类别id',
optional_advise varchar(255) null comment '选科建议',
getjob_ratio text null comment '近三年就业率',
effect text null comment '第一印象',
school text null comment '开设院校id',
special_id int null comment '爬数据需要',
create_time int null comment '更新时间',
level1 int null comment '分类1 1本科 2专科',
level2 int null comment '分类2',
level3 int null comment '分类3',
is_what varchar(500) null comment '专业详解 是什么',
learn_what varchar(500) null comment '专业详解 学什么',
do_what varchar(500) null comment '专业详解 干什么',
offering_courses varchar(500) null comment '开设课程',
job text null comment '专业就业',
type varchar(50) null comment '学科门类',
type_detail varchar(50) null comment '专业类',
view_week int null comment '周人气',
view_month int null comment '月人气',
view_total int null comment '总人气',
science_ratio varchar(255) null comment '理科比例',
liberal_ratio varchar(255) null comment '文科比例',
postgraduate varchar(500) null comment '考研方向',
celebrity varchar(500) null comment '社会名人',
job_industry varchar(1000) null comment '就业行业分布',
job_post varchar(1000) null comment '就业岗位分布',
job_region varchar(1000) null comment '就业地区分布',
avg_salary varchar(15) null comment '平均薪酬',
majorsalaryavg varchar(255) null comment '本专业薪酬',
allmajorsalaryavg varchar(255) null comment '所有专业薪酬',
mostemployedeposition varchar(255) null comment '最多就业岗位',
mostemploymentindustry varchar(255) null comment '最多就业行业',
mostemploymentarea varchar(255) null comment '最多就业地区'
)
comment '专业表' charset = utf8mb3
row_format = DYNAMIC;
create index idx_major_code
on zr_major (major_code);
create index idx_major_title
on zr_major (major_title);
create index idx_type_detail
on zr_major (type, type_detail);
create table zr_major_genre
(
id int auto_increment
primary key,
name varchar(255) null comment '分类类别',
parent_id int null comment '所属专业门类/类别id',
level_id int default 0 null
)
comment '专业类别或课程' charset = utf8mb3;
create table zr_one_minute
(
id int auto_increment
primary key,
fraction varchar(100) null comment '分数段',
num int null comment '人数',
cum_num int null comment '累计人数',
section_id int default 0 null comment '学科ID',
section_name varchar(255) null comment '学科名称',
province_id int null comment '省ID',
province varchar(50) null comment '',
create_time int null comment '创建时间',
year int null comment '年份',
score int default 0 not null comment '分数',
sum int default 0 not null comment '分数',
level varchar(5) null comment '1、本专 2、单列类外语'
)
charset = utf8mb3
row_format = COMPACT;
create table zr_planner
(
id int unsigned auto_increment
primary key,
username varchar(64) default '' not null comment '账户名',
password varchar(64) default '' not null comment '密码',
wx_id varchar(255) default '' not null comment '微信openid',
type int default 1 not null comment '教师类型(1.普通教师 2.志愿规划师 3.专家咨询师 4.3职业规划师)',
status int default 0 not null comment '认证状态(0.未认证 1.认证中 2.已认证 3.拒绝)',
createtime int default 0 not null comment '注册时间',
mobile varchar(11) default '' not null comment '手机号',
source int default 6 not null comment '1小程序 2公众号 3h5 4头条 5抖音6app',
avatar varchar(255) not null comment '头像',
usersig varchar(255) default '' not null comment 'usersig',
expiration_time int not null comment 'usersig过期时间',
balance int unsigned default '0' not null comment '余额 单位:分',
frozen_amount int unsigned default '0' not null comment '冻结金额 单位:分',
level int unsigned default '1' not null comment '等级id',
merchant char(8) default '' not null comment '商户号',
score float(3, 2) unsigned default 5.00 not null comment '评分',
on_line int unsigned default '0' not null comment '是否是线上0 线下 1线上',
deleted int null
)
comment '教师信息表' collate = utf8mb4_unicode_ci;
create index pid
on zr_planner (wx_id(191));
create table zr_planner_appointment_im
(
id int auto_increment
primary key,
p_id int unsigned default '0' not null,
member_id int unsigned default '0' not null,
status smallint unsigned default '0' not null comment '状态 0申请 1同意 2拒绝',
start_time int unsigned default '0' not null comment '开始时间',
end_time int unsigned not null comment '结束时间',
created_at int unsigned not null comment '申请时间',
updated_at int unsigned default '0' not null comment '修改时间',
content varchar(255) default '' not null comment '审批备注'
)
comment '预约规划师交流表' charset = utf8mb3;
create table zr_planner_cert
(
id int auto_increment
primary key,
real_name varchar(100) null comment '真实姓名',
identification tinyint default 1 null comment '身份证明 1 身份证 2护照',
idcard varchar(18) null comment '身份证 || 回乡证 2护照号码',
identif_img varchar(255) null comment '护照图 或 回乡证',
t_type tinyint default 0 null comment '(1普通老师 2:志愿规划师3:专家咨询师4职业规划师)',
zg_type tinyint(1) default 1 null comment '1 教师认证 2高学历认证 3专业认证 4其他认证',
certificate_img varchar(255) null comment '资格证书图片',
certificate_name varchar(255) null comment '证书名称',
head_img varchar(255) null comment '头像',
main_cat int null comment '主营类目(使用t_type字段)',
email varchar(50) null comment '邮箱',
brief varchar(255) null comment '个人简介(旧表专家描述)',
t_experience text null comment '教学工作经历',
t_achievements text null comment '教学工作成果',
phone varchar(11) null comment '手机',
z_card varchar(255) null comment '身份证正面',
f_card varchar(255) null comment '身份证反面',
letter varchar(255) null comment '承诺书',
status tinyint default 0 null comment '0未申请 1待审核 2审核通过 3审核拒绝 ',
create_time int null comment '创建时间',
update_time int null comment '修改时间',
school_name varchar(255) null comment '任职学校',
teacher_subject tinyint null comment '教学科目(1:语文2:数学 3.英语 4.思想政治 5.地理 6.历史 7.化学 8.生物 9.物理)',
title varchar(255) null comment '老师标签',
accept_status tinyint unsigned default '1' not null comment '专家可接受预约状态(1:开启2:关闭)',
accept_start_time char(8) default '0' not null comment '专家接受预约开始时间',
accept_end_time char(8) default '0' not null comment '专家接受预约结束时间',
fraction decimal(4, 2) null comment '专家分数',
image varchar(255) null comment '专家形象照',
address varchar(255) null comment '所在地址',
is_apply tinyint default 0 null comment '老师申请状态(0:未申请1:已申请)',
p_id int not null comment '关联规划师id',
profession varchar(255) null comment '职业名称',
hot int unsigned default '1' not null comment '热度0无 1火爆 2紧张'
)
comment '教师认证' charset = utf8mb3;
create table zr_planner_coin_logs
(
id int auto_increment
primary key,
p_id int not null comment '规划师id',
member_id int not null comment '用户id',
order_number varchar(40) not null comment '订单号',
money int default 0 not null comment '变动金额 单位:分',
frozen_amount int default 0 not null comment '冻结金额变动 单位分',
created_at int unsigned default '0' not null comment '创建时间',
type int unsigned default '0' not null comment '类型 1 提现申请 2提现成功 3提现失败 4佣金入账 5预约订单成立'
)
comment '规划师资金流动表' charset = utf8mb3;
create table zr_planner_level
(
id int unsigned auto_increment
primary key,
level_name varchar(30) not null comment '等级昵称',
amount int unsigned default '0' not null comment '工资金额'
)
comment '规划师等级表' collate = utf8mb3_croatian_ci;
create table zr_planner_logs
(
id int auto_increment
primary key,
path varchar(255) not null comment '路径',
type varchar(255) not null comment '类型',
title varchar(255) not null comment '标题',
remarks varchar(255) not null comment '备注',
created_at datetime default CURRENT_TIMESTAMP null comment '创建时间',
m_id int not null comment '学生id',
p_id int not null comment '规划师id',
params varchar(255) not null comment '参数'
)
comment '规划师操作日志' charset = utf8mb3;
create table zr_planner_major
(
id int unsigned auto_increment
primary key,
school_major_id int not null comment '学校专业分数id',
volunteer_id int not null comment '学生志愿表id',
p_id int not null comment '教师id'
)
comment '教师端志愿填报关联表' charset = utf8mb3;
create table zr_planner_member_follow
(
id int unsigned auto_increment
primary key,
p_id int unsigned not null comment '规划师id',
member_id int unsigned not null comment '学员id'
)
comment '关注表' charset = utf8mb3;
create table zr_planner_merchant
(
id int unsigned auto_increment
primary key,
username varchar(30) not null comment '用户名',
password varchar(64) not null comment '密码',
status int unsigned default '1' not null comment '状态 1可用 0申请中 2拒绝',
merchant char(8) not null comment '商户号',
public_key varchar(480) not null comment '商户公钥',
balance int unsigned default '0' not null comment '余额:单位分',
frozen_amount int unsigned default '0' not null comment '冻结金额:单位分',
consumption int unsigned default '0' not null comment '累计消费:单位分',
private_key varchar(1750) not null comment '商户号私钥',
created_at int unsigned default '0' not null,
updated_at int unsigned default '0' not null,
phone char(11) default '' not null comment '手机号',
email varchar(64) default '' not null comment '邮箱',
company varchar(255) not null comment '公司名称',
address varchar(255) not null comment '公司地址',
legal_person varchar(20) not null comment '法人',
credit_number varchar(32) not null comment '统一社会信用代码',
business_license varchar(255) not null comment '营业执照',
ip varchar(255) not null comment '白名单ip',
configure varchar(255) default '' not null comment '配置项',
constraint merchant
unique (merchant),
constraint phone
unique (phone),
constraint username
unique (username)
)
comment '规划师商户表' collate = utf8mb3_croatian_ci;
create table zr_planner_merchant_coin_log
(
id int unsigned auto_increment
primary key,
merchant_number char(8) default '0' not null comment '商户号',
order_id int unsigned default '0' not null comment '订单ID',
order_number char(32) default '' not null comment '订单号',
type int unsigned default '1' not null comment '类型1充值 2预约规划服务 3规划服务预约成功 4规划服务预约失败',
money int default 0 not null comment '金额:分',
frozen_amount int default 0 not null comment '冻结金额:分',
created_at int unsigned default '0' not null,
remarks varchar(255) default '' null comment '备注信息'
)
comment '商户资金流动记录表' charset = utf8mb3;
create table zr_planner_merchant_count
(
id int unsigned auto_increment
primary key,
number int unsigned not null comment '配置个数'
)
comment '商户号配置信息' charset = utf8mb3;
create table zr_planner_merchant_level
(
id int unsigned auto_increment
primary key,
level_name varchar(30) not null comment '等级名称',
money int unsigned default '0' not null comment '金额',
sort int unsigned default '1' not null comment '排序',
duration int unsigned default '0' null comment '有效时长 :天',
created_at int unsigned default '0' not null,
updated_at int unsigned default '0' not null,
differ int unsigned default '0' not null comment '跟下一级相差多少金额 0为不可升级'
)
comment '商户服务等级表' collate = utf8mb3_croatian_ci;
create table zr_planner_merchant_level_info
(
id int unsigned auto_increment
primary key,
m_l_id int unsigned default '0' not null comment '商户等级id',
p_l_id int unsigned default '0' not null comment '规划师等级id',
give_number int unsigned default '0' not null comment '赠送次数',
money int unsigned default '0' not null comment '单次金额',
created_at int unsigned default '0' not null,
updated_at int unsigned default '0' not null
)
comment '服务等级详情表' collate = utf8mb3_croatian_ci;
create table zr_planner_merchant_member
(
id int unsigned auto_increment
primary key,
merchant_number char(8) null comment '商户号',
username varchar(32) not null comment '学员名',
mobile char(11) not null comment '手机号',
school_name varchar(100) default '' not null comment '学校名称',
nemt_year int unsigned default '0' not null comment '年份',
gender tinyint unsigned not null comment '性别 1女 2男',
grade int unsigned default '0' not null comment '学员年级 1=>''高一'', 2=>''高二'', 3=>''高三'', 4=>''其他''',
province_id int unsigned default '0' not null comment '省id',
province varchar(30) not null comment '',
subject varchar(32) not null comment '科目',
subject_id int unsigned default '0' not null comment '科目 1.理科 2.文科 3.综合 4.艺文 5艺理 6.不分文理 (2 文科 1理科 3艺体 )',
estimate int unsigned default '0' not null comment '等效分',
fraction int unsigned default '0' not null comment '高考分数',
ranking int unsigned default '0' not null comment '高考位次',
select_subject varchar(255) not null comment '选科',
intention_province_id varchar(255) default '' null,
intention_province varchar(255) default '' null comment '意向省市',
intention_school_id varchar(255) default '' null,
intention_school varchar(255) default '' null comment '意向学校',
intention_major_id varchar(255) default '' null,
intention_major varchar(255) default '' null comment '意向专业',
status int unsigned default '1' not null comment '状态 ',
number int unsigned default '0' not null comment '被服务次数',
created_at datetime default CURRENT_TIMESTAMP not null,
updated_at int unsigned default '0' not null,
test_questions text null comment '测试项目json字符串',
on_line int unsigned default '1' not null comment '0线下 1线上',
head_img varchar(255) null comment '头像',
deleted int default 0 null,
constraint phone
unique (mobile, merchant_number)
)
comment '商户学员信息' collate = utf8mb3_croatian_ci;
create table zr_planner_merchant_order
(
id int unsigned auto_increment
primary key,
order_number char(32) not null comment '订单号',
pay_number char(32) not null comment '支付订单号',
amount int unsigned default '0' not null comment '金额',
pay_amount int unsigned default '0' not null comment '支付金额',
m_l_id int unsigned default '0' not null comment '商品服务等级id',
status int unsigned default '0' not null comment '状态 0 申请 1成功 2失败',
created_at int unsigned default '0' not null comment '创建时间',
updated_at int unsigned default '0' not null comment '修改时间',
merchant_number char(8) not null comment '商户号'
)
comment '商户订单' collate = utf8mb3_croatian_ci;
create table zr_planner_merchant_service
(
id int unsigned auto_increment
primary key,
merchant_number char(8) not null comment '商户号',
m_l_id int unsigned default '0' not null comment '商户服务等级id',
p_l_id int not null comment '规划师等级id',
give_number int not null comment '赠送次数',
money int unsigned default '0' not null comment '每次金额',
created_at int unsigned default '0' not null,
updated_at int unsigned default '0' not null,
expire_at int unsigned default '0' not null comment '到期时间'
)
comment '商户服务次数表' collate = utf8mb3_croatian_ci;
create table zr_planner_merchant_service_order
(
id int unsigned auto_increment
primary key,
order_number char(32) not null comment '订单号',
merchant_number char(8) null comment '商户号',
member_id int unsigned not null comment '学员id',
service_id int unsigned default '0' not null comment '服务id',
im_id int unsigned default '0' not null comment '预约id',
p_id int unsigned default '0' not null comment '规划师id',
money int unsigned default '0' not null comment '单次金额',
created_at datetime default CURRENT_TIMESTAMP null,
updated_at datetime null,
status int unsigned default '0' not null comment '状态 1进行中 2已完成 3已取消 4审核中',
start_time datetime default CURRENT_TIMESTAMP not null comment '开始时间',
end_time datetime null comment '结束时间',
content varchar(255) default '' not null comment '备注信息',
update_at datetime null comment '修改时间'
)
comment '规划师服务学员订单表' charset = utf8mb3;
create table zr_planner_order
(
id int auto_increment
primary key,
p_id int not null comment '规划师id',
member_id int unsigned default '0' not null comment '用户id',
type smallint unsigned default '1' not null comment '订单类型 1佣金 2提现',
order_id int unsigned default '0' not null comment '订单id',
order_number varchar(40) default '' not null comment '订单号',
proportion int unsigned default '0' not null comment '比例 1~100',
money int unsigned default '0' not null comment '金额 单位分',
order_money int unsigned default '0' not null comment '(用户购卡)订单金额 单位分',
arrival_money int unsigned default '0' not null comment '提现到账金额',
status tinyint unsigned default '0' not null comment '状态 0未完成 1完成 2超时结束',
created_at int unsigned default '0' not null comment '创建订单时间',
updated_at int unsigned default '0' not null comment '修改时间'
)
comment '教师佣金列表' charset = utf8mb3;
create table zr_planner_province
(
id int auto_increment
primary key,
name varchar(255) null comment '地区名'
)
comment '地区表' charset = utf8mb3;
create table zr_planner_student
(
id int unsigned auto_increment
primary key,
p_id int not null comment '教师id',
member_id int not null comment '学生id',
updated_time int default 0 not null,
create_time int default 0 not null comment '关联时间',
step int default 0 not null comment '操作步骤0-未规划 1-专业规划 2-院校规划 3-志愿填报 -4待修改 -5确认结束',
grade int default 3 not null comment '学生年级(1.高一 2.高二 3.高三 4.其他)',
status tinyint default 1 not null comment '状态(1:有效,0:无效)',
score float(3, 2) unsigned default 5.00 not null comment '评分',
apply_state tinyint unsigned default '0' not null comment '申请状态0申请中 1通过 2拒绝',
source char(10) not null comment '学员来源,商户号',
content varchar(255) default '' not null comment '评论',
is_adopt smallint default 0 not null comment '是否采纳',
actual_major varchar(255) default '' not null comment '实际专业',
actual_school varchar(255) default '' not null comment '实际学校'
)
comment '教师的学员表' charset = utf8mb3;
create table zr_plannner_step
(
id int auto_increment comment '主键'
primary key,
value varchar(255) null comment '状态名'
)
comment '步骤/状态表' charset = utf8mb3;
create table zr_school
(
id int auto_increment
primary key,
title varchar(100) null comment '学校名称',
logo varchar(255) null comment '学校logo',
web_url varchar(500) null comment '官方网址',
telephone varchar(255) null comment '官方电话',
email varchar(100) null comment '电子邮箱',
label varchar(255) null comment '标签',
campus_scenery text null comment '校园风采',
brief longtext null comment '学校简介',
time int null comment '创建时间',
subordinate varchar(50) null comment '隶属于',
address varchar(255) null comment '学校地址',
area_covered decimal(10, 2) null comment '占地面积',
learning_index decimal(10, 2) null comment '学习指数',
life_index float(10, 2) null comment '生活指数',
emp_index decimal(10, 2) null comment '就业指数',
com_score decimal(10, 2) null comment '综合评分',
doc_point int null comment '博士点',
master_program int null comment '硕士点',
nat_dis int null comment '国家重点学科',
key_lab int null comment '科研项目',
dormitory text null comment '宿舍',
canteen_dormitorytext text null comment '食宿条件图片',
canteen text null comment '食堂',
create_time int null comment '创建时间',
male float(10, 2) null comment '男女比例 男',
sex float(10, 2) null comment '男女比例 女',
emp_rate float(10, 2) null comment '就业率',
china_rate float(10, 2) null comment '国内升学率',
abroad_rate float(10, 2) null comment '出国率',
f985 tinyint default 2 null comment '是否985 1是',
f211 tinyint default 2 null comment '是否211 1是',
dual_class_name varchar(50) null comment '双一流',
province_name varchar(100) null comment '省名称',
province_id int null comment '省ID',
city_id int null comment '市ID',
city_name varchar(100) null comment '市名称',
type int null comment '院校类型',
school_type int null comment '办学类型',
school_id int null comment '高考网ID',
is_sw tinyint(1) default 0 null comment '是否为双万计划学校',
is_public tinyint default 0 null comment '是否为公办 1公办 2民办 3中外港澳 ',
dual_class tinyint default 0 null comment '是否为双一流',
postcode varchar(10) null comment '邮政编码',
province text null comment '毕业生签约地区流向',
attr text null comment '毕业生签约单位性质',
company text null comment '主要签约单位',
remark text null comment '备注',
view_total int null comment '人气值',
ruanke_rank varchar(11) null comment '软科排名',
xyh_rank int null comment '校友会排名',
wsl_rank int null comment '武书连排名',
qs_rank varchar(11) null comment 'QS排名',
zr_rank int null comment '全国排名',
code varchar(50) null comment '学校code',
is_study tinyint default 0 null comment '0 不是研 1为研',
us_rank int default 0 null comment 'US排名',
tws_china varchar(11) null comment '泰晤士 排名'
)
comment '学校表' charset = utf8mb3;
create index school_id
on zr_school (school_id);
create index title
on zr_school (title);
create table zr_school_enrplan
(
id int auto_increment
primary key,
school_id int null comment 'zr_school school_id',
title varchar(500) null comment '专业名称',
cat varchar(50) null comment ' 学科门类',
cat_id int null comment '学科门类ID
',
professional varchar(100) null comment '专业类',
professional_id int null comment '专业类ID',
pro_enr int null comment '计划招生',
`system` varchar(10) null comment '学制',
section_id int null comment 'dic id',
section varchar(50) null comment '类型如理科',
year int null comment '年份',
create_time int null comment '创建时间',
province_id int null comment '省id',
province varchar(50) null comment '',
batch_id int null comment 'dic id',
batch varchar(100) null comment '批次',
level int null,
level_name varchar(100) null,
special_id varchar(50) null comment '更新数据使用',
special_group int null,
major_group varchar(24) null comment '专业组',
major_code varchar(20) null comment '专业代码',
selected_subject_requirements varchar(255) null comment '选科要求',
tuition int null,
school_code varchar(11) null comment '招生代码'
)
comment '学校招生计划' engine = MyISAM
charset = utf8mb3;
create index idx_major_code
on zr_school_enrplan (major_code)
comment '专业代码';
create index idx_year_province_school_code
on zr_school_enrplan (year, province_id, school_id, school_code);
create index school_id
on zr_school_enrplan (school_id);
create index title
on zr_school_enrplan (title(255));
create table zr_school_enrplan_info
(
id int auto_increment
primary key,
school_id int null comment '学校ID school表id',
year int null comment '年份',
province_id int null comment '省ID',
type varchar(500) default '0' null comment '',
batch varchar(500) null comment '批次',
create_time int null comment '创建时间',
major_group varchar(255) null comment '专业组'
)
comment '学校招生计划关联信息' engine = MyISAM
charset = utf8mb3;
create index school_id
on zr_school_enrplan_info (school_id);
create table zr_school_fra_info
(
id int auto_increment
primary key,
school_id int null comment '学校ID school表id',
year int null comment '年份',
province_id int null comment '省ID',
type varchar(500) default '0' null comment '',
batch varchar(500) null comment '批次',
create_time int null comment '创建时间'
)
comment '学校各省分数线关联信息' engine = MyISAM
charset = utf8mb3;
create index school_id
on zr_school_fra_info (school_id);
create table zr_school_fractional
(
id int auto_increment
primary key,
year int null comment '年份',
highest_score int null comment '最高分',
avg int null comment '平均分',
lowest_score int null comment '最低分',
lowest_order int null comment '最低位次',
pro_control int null comment '省控线',
type varchar(50) null comment '招生类型',
batch_id int null comment 'DIC 表ID 录取批次',
admission_batch varchar(50) null comment '录取批次',
sigs_id int default 0 null comment 'DIC 表ID 专业组',
sigs varchar(255) null comment '专业组',
province_id int null comment '省id',
province varchar(50) null comment '',
section_id int default 0 null comment 'DIC 表ID 类型',
section varchar(50) null comment '类型',
create_time int null comment '创建时间',
school_id int null comment 'zr_school ID',
selective_grade varchar(255) null comment '选测等级',
selective_id int null,
school_name varchar(64) null,
pro_group varchar(255) null comment '专业组',
major_score varchar(128) null comment '专业分',
selected_subject_requirements varchar(255) null comment '选科要求'
)
comment '学校各省分数线' charset = utf8mb3;
create index school_id
on zr_school_fractional (school_id);
create table zr_school_major
(
id int auto_increment
primary key,
school_id int null comment '学校 zr_school ID',
name varchar(100) null comment '专业名称',
content text null comment '专业介绍',
is_charact tinyint default 0 null comment '是否为特色专业 0否 1是',
create_time int null comment '创建时间',
code varchar(50) null comment 'code',
year varchar(50) null comment '年份',
special_type tinyint null comment '1本科 2 专科(高职)',
major_cat_id int null comment '专业类别ID zr_major_cat',
special_id int null comment '更新数据需要',
sigs_id int default 0 null comment '选科要求',
military_types varchar(500) default '0' null comment '军种类型(0非军队类专业 1海军 2火箭军 3军事航天部队 4军委国防动员部 5空军 6联勤保障部队 7陆军 8网络空间部队 9武警部队 10信息支援部队)'
)
comment '学校专业' charset = utf8mb3;
create index school_id
on zr_school_major (school_id);
create table zr_school_major_code
(
id int auto_increment
primary key,
school_code varchar(255) charset utf8mb3 null,
school_id varchar(255) charset utf8mb3 null,
major_name varchar(255) charset utf8mb3 null,
major_code varchar(255) charset utf8mb3 null,
province varchar(255) charset utf8mb3 null,
year varchar(10) charset utf8mb3 null,
subject varchar(10) charset utf8mb3 null,
batch varchar(255) charset utf8mb3 null
);
create table zr_school_major_score
(
id int unsigned auto_increment
primary key,
school_id int not null comment 'zr_school ID',
title char(255) not null comment '专业名称',
highest_score float(10, 2) null comment '最高分',
avg float(10, 2) null comment '平均分',
lowest_score float(10, 2) null comment '最低分',
lowest_order int null comment '最低位次',
batch char(32) null comment '录取批次',
create_time int null comment '创建时间',
province_id int null comment '省id',
province char(12) null comment '',
year int null comment '年份',
section char(16) null comment '类型',
section_id int null comment '类型ID',
batch_id int null comment '批次ID',
sigs char(24) null comment '专业组',
sigs_id int null,
major_group char(32) default '' not null comment '专业组',
enrplan_id int default 0 not null comment '招生计划id',
enrplan int null comment '计划人数',
is_major_class tinyint unsigned default '0' not null comment '是否是专业组',
selected_subject_requirements varchar(255) null comment '选科要求',
special_id varchar(255) null comment '专业ID',
level2_name varchar(255) null comment '专业二级类别',
level3_name varchar(255) null comment '专业三级类别',
level1_name varchar(255) null comment '专业层次',
level1 varchar(255) null comment '专业层次1级',
level2 varchar(255) null comment '专业层级2级',
level3 varchar(255) null comment '专业层级3级'
)
comment '学校专业分数线' engine = MyISAM
charset = utf8mb3
row_format = DYNAMIC;
create index idx_school_province_year
on zr_school_major_score (school_id, province_id, year);
create index idx_school_province_year_batch
on zr_school_major_score (school_id, province_id, year, batch);
create index idx_school_province_year_enrplan
on zr_school_major_score (school_id, province_id, year, enrplan_id);
create index idx_year_level3_lowest
on zr_school_major_score (year, level3, lowest_score);
create index `index`
on zr_school_major_score (lowest_score, province_id, year, section_id, batch_id);
create index school_id
on zr_school_major_score (school_id);
create index title
on zr_school_major_score (title);
create index year
on zr_school_major_score (year);
create definer = root@`%` view as
select 1 AS ``, 1 AS ``, 1 AS `(GB)`, 1 AS `(MB)`;

BIN
资料/temp_report.zip Normal file

Binary file not shown.

Submodule 资料/zrccp-planner-work(2)/zrccp-planner-work added at 6559a35662