基于SpringBoot2+vue2的疫苗发布和接种预约系统
温馨提示:
本文最后更新于 2026年05月28日,已超过 13 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
1. 资源
浏览全文可获取
2. 项目简介
疫苗发布和接种预约系统旨在为疫苗管理、信息公示及接种预约提供一个线上平台。系统主要面向三类角色:管理员、医生和普通用户。
- 管理员:负责系统的核心配置与数据管理,包括管理员账户管理、基础数据(如疫苗类型、医院类型、公告类型)字典维护、论坛内容监管、公告信息发布、疫苗和医院信息管理、用户和医生账户管理,以及网站轮播图的配置。
- 医生:登录后可查看论坛交流信息、公告、疫苗及医院详情,并能够对用户的“预约接种”申请进行审核处理。
- 用户:作为系统的核心服务对象,用户可以浏览公告、查看疫苗和医院信息、参与论坛讨论,并对感兴趣的疫苗进行在线预约接种。
系统通过角色区分功能权限,实现了从信息发布、查询、互动交流到预约服务的一体化流程。
3. 技术栈
该项目是一个典型的基于Spring Boot和MyBatis-Plus的B/S架构应用,其核心开发技术栈如下:
- 后端框架: Spring Boot (版本 2.2.2.RELEASE)
- 持久层框架: MyBatis-Plus (版本 2.3)
- 安全与控制: Apache Shiro (版本 1.3.2) 用于权限控制,并配合自定义Token实现认证
- 数据库: MySQL (驱动版本 8.0.11)
- 前端框架 (后台管理): Vue.js + Element UI
- 前端技术 (前台展示): HTML + LayUI + Vue.js
- 其他关键库:
fastjson: 用于JSON处理hutool: Java工具库commons-lang3: Apache通用工具库poi: 用于Excel文件导入导出
4. 详细介绍
系统功能模块根据用户角色划分清晰,核心业务围绕疫苗信息发布与预约管理展开。
4.1 核心功能模块
疫苗信息管理:
- 管理员可以添加、修改、删除、查询疫苗信息,包括疫苗名称、类型、所属医院、图片、详情等。
- 前端用户和医生可以浏览疫苗列表,查看详情,并记录点击次数以体现热度。
预约接种流程:
- 用户在浏览疫苗详情页时,可点击“预约接种疫苗”按钮,填写预约日期和备注信息,提交预约申请。
- 提交的申请状态默认为“未处理”。
- 医生登录后台后,在“预约接种管理”菜单中可查看所有预约申请,并进行“同意”或“拒绝”的审核操作,同时可填写审核原因。
- 用户可以查看自己的预约申请及审核状态和结果。
医院信息管理:
- 管理员管理提供疫苗接种服务的医院信息,包括医院名称、类型、地址、图片和详情。
- 前端展示医院列表和详情页,方便用户了解接种地点。
信息发布与互动:
- 公告信息:管理员可发布系统公告(如接种通知、政策变化),并定义公告类型。公告在前端首页和公告列表页展示。
- 论坛交流:所有已登录用户(包括用户和医生)均可以发布帖子、回复帖子,形成一个围绕疫苗话题的社区。
- 轮播图:管理员可以配置首页轮播图,用于宣传重要信息。
基础数据与用户管理:
- 字典管理:管理员可以维护“疫苗类型”、“医院类型”、“公告类型”、“帖子状态”等全局选项,增强了系统的可配置性。
- 用户/医生管理:管理员可以管理注册用户和医生的账户信息(增删改查、重置密码)。用户和医生也可以在前端进行注册和修改个人信息。
4.2 数据库设计
yimiao: 存储疫苗的核心信息,并外键关联到yiyuan(医院信息) 表。yuyuejiezong: 存储用户的预约接种记录,外键关联到yonghu(用户) 和yimiao(疫苗) 表。yiyuan: 存储医院详细信息。forum: 存储论坛帖子,通过类型字段区分主帖和回帖。news: 存储系统公告信息。dictionary: 字典表,用于为系统中的多种类型字段(如疫苗类型、审核状态等)提供枚举值。yonghu&yisheng: 分别存储用户和医生的账户与身份信息。users: 存储管理员账户信息。token: 存储用户的登录凭证信息。config: 存储系统配置项,如轮播图路径。
数据库设计遵循了第三范式,通过外键和字典表确保了数据的完整性和一致性。
5. 部分代码
5.1 后端启动类 (yimiaofabuhejiezhongApplication.java)
package com;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
@ServletComponentScan(value = "com.ServletContextListener")
@MapperScan(basePackages = {"com.dao"})
public class yimiaofabuhejiezhongApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(yimiaofabuhejiezhongApplication.class, args);
}
}
5.2 预约接种控制器 (YuyuejiezongController.java)
以下代码展示了后端处理预约申请审核(更新状态)的逻辑:
/**
* 后端修改(用于医生审核预约)
*/
@RequestMapping("/update")
public R update(@RequestBody YuyuejiezongEntity yuyuejiezong, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,yuyuejiezong:{}",this.getClass().getName(),yuyuejiezong.toString());
// 根据字段查询是否有相同数据,防止重复提交
Wrapper<YuyuejiezongEntity> queryWrapper = new EntityWrapper<YuyuejiezongEntity>()
.notIn("id",yuyuejiezong.getId())
.andNew()
.eq("yonghu_id", yuyuejiezong.getYonghuId())
.eq("yimiao_id", yuyuejiezong.getYimiaoId());
// ... 其他条件
logger.info("sql语句:"+queryWrapper.getSqlSegment());
YuyuejiezongEntity yuyuejiezongEntity = yuyuejiezongService.selectOne(queryWrapper);
if(yuyuejiezongEntity==null){
// 更新预约信息,主要是审核状态和审核原因
yuyuejiezongService.updateById(yuyuejiezong);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
5.3 核心配置文件 (application.yml)
# Tomcat
server:
port: 8080
servlet:
context-path: /yimiaofabuhejiezhong
spring:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/yimiaofabuhejiezhong?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
username: root
password: 123456
# mybatis-plus配置
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
typeAliasesPackage: com.entity
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 打印sql语句
6. 部分截图



































7. 项目总结
该“疫苗发布和接种预约系统”是一个功能完备、结构清晰的综合性Web应用程序。
- 功能完整性:系统覆盖了从基础信息管理(疫苗、医院)、内容发布(公告、论坛)到核心业务(在线预约)的完整链条,满足了不同角色用户的需求。
- 技术应用:项目采用了业界主流的Spring Boot + MyBatis-Plus + Vue.js技术栈,架构清晰,代码结构规范。通过自定义Token和Shiro实现了接口安全控制,利用MyBatis-Plus简化了数据访问操作。
- 用户体验:前后端分离的设计模式,使得后台管理高效,前台界面交互友好。通过论坛模块,增加了用户与医生之间的互动性。
总体而言,该项目成功实现了一个线上疫苗预约和管理系统的基本模型,具有良好的可扩展性和学习参考价值。
正文到此结束
- 本文标签: Java Spring Boot 毕业设计
- 本文链接: https://blog.xiaobias.com/article/22
- 版权声明: 本文由十五喵原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
