搞 要
疫苗接种是公共卫生管理中至关重要的一环,合理、高效的疫苗接种管理能大大降低疫苗流失、避免接种错误。传统人工管理疫苗预约和接种流程较为繁琐,信息传递慢,容易出现错误。因此,开发一个自动化、智能化的疫苗接种管理平台显得尤为重要。系统旨在通过数字化、信息化手段,解决传统管理中存在的问题,提高工作效率,确保疫苗资源合理分配。
系统主要分为三个用户角色:预约用户、医生用户和管理员。预约用户可以通过平台查看疫苗信息、预约接种并查看个人接种记录;医生用户负责审核预约请求、管理疫苗种类、接种记录等;管理员则负责整体系统管理,包括用户管理、疫苗信息更新、公告发布等。系统还具备疫苗库存管理、接种历史查询、适用年龄验证等功能,保障疫苗接种的规范性和安全性。
系统采用Java编程语言和SpringBoot框架,利用SpringBoot的快速开发特点,搭建后台服务。前端使用Vue框架实现用户界面,MySQL数据库用于数据存储与管理。通过RESTful API设计,确保系统灵活、高效,具备良好的扩展性。
系统的上线预计能够提高疫苗接种预约效率,减少人工审核的负担,实现信息的及时更新与共享。此外,系统将为疫苗接种过程提供更高的安全性和可靠性,确保资源的合理利用。通过数字化管理,疫苗接种流程将更加透明、高效,用户体验大幅提升。
关键词:儿童疫苗接种管理系统;Java语言;Spring Boot框架;MySQL数据库
Design and Implementation of Children's Vaccination Management System
Abstract:Vaccination is a crucial part of public health management, and reasonable and efficient vaccination management can greatly reduce vaccine loss and avoid vaccination errors. Traditional manual management of vaccine appointment and vaccination processes is cumbersome, with slow information transmission and easy errors. Therefore, developing an automated and intelligent vaccine administration management platform is particularly important. The system aims to solve the problems in traditional management, improve work efficiency, and ensure the rational allocation of vaccine resources through digital and informational means.
The system is mainly divided into three user roles: appointment user, doctor user, and administrator. Users who make appointments can view vaccine information, schedule vaccinations, and view personal vaccination records through the platform; Doctor users are responsible for reviewing appointment requests, managing vaccine types, vaccination records, etc; Administrators are responsible for overall system management, including user management, vaccine information updates, and announcement releases. The system also has functions such as vaccine inventory management, vaccination history query, and applicable age verification to ensure the standardization and safety of vaccine administration.
The system adopts Java programming language and SpringBoot framework, utilizing the fast development characteristics of SpringBoot to build backend services. The front-end uses Vue framework to implement the user interface, and MySQL database is used for data storage and management. Through RESTful API design, ensure system flexibility, efficiency, and good scalability.
The launch of the system is expected to improve the efficiency of vaccine appointment scheduling, reduce the burden of manual review, and achieve timely updates and sharing of information. In addition, the system will provide higher safety and reliability for the vaccination process, ensuring the rational use of resources. Through digital management, the vaccination process will be more transparent and efficient, and the user experience will be greatly improved.
Keywords: Children's vaccine administration management system; Java language; Spring Boot framework; MySQL database
目 录
1绪论
1.1研究背景
随着疫苗接种工作在全球范围内逐渐成为公共卫生管理的重要环节,疫苗的及时接种和管理对于预防疾病、保障民众健康至关重要。然而,传统的人工疫苗预约与管理方式存在诸多不足。首先,信息传递的滞后性和人工操作的低效性使得预约和接种过程经常出现延误,造成疫苗资源的浪费和接种错误。其次,信息化水平较低导致数据共享和管理困难,接种记录、疫苗库存等关键数据难以实时更新和准确掌握,进而影响疫苗资源的合理调配与紧急应对。因此,建立一个数字化、智能化的疫苗预约接种管理系统显得尤为必要。通过借助信息技术,提升疫苗接种的管理效率与精确度,不仅能够有效缓解传统管理模式中的瓶颈问题,还能推动公共卫生领域的数字化转型。
1.2研究意义
研究的意义在于通过构建一个疫苗预约接种管理系统,推动疫苗接种流程的数字化和自动化,显著提高疫苗接种管理的效率与准确性。通过系统化的预约与接种记录管理,不仅能够减少人为操作带来的错误,还能确保接种信息的实时更新与共享,从而更好地应对突发公共卫生事件。对医生和管理员而言,系统可以优化资源分配,减少重复劳动,提高整体工作效率。而对普通用户来说,系统的便捷操作可提高接种服务的可获得性和透明度,减少因信息不对称产生的不必要困扰。总之,本研究不仅为疫苗接种工作提供了技术支持,也为未来公共卫生管理领域的信息化建设提供了有益的探索与实践经验。
1.3国内外发展现状
1.3.1国内研究现状
在国内,随着信息技术的飞速发展,疫苗接种管理系统逐渐成为公共卫生领域的研究热点。近年来,许多学者开始关注如何通过数字化手段优化疫苗接种流程,提高接种效率和精度。例如,部分地区的健康信息平台已经实现了疫苗接种预约和管理系统,主要应用于疫苗接种记录的电子化管理、接种人员信息的及时更新等方面。这些系统在一定程度上改善了人工管理的低效问题,但仍面临许多挑战,包括系统的可扩展性、数据的安全性以及不同医院和卫生系统间数据的互通性问题。
国内一些研究集中在疫苗接种系统的功能拓展上,比如实现大规模疫苗接种的资源调度、疫苗库存管理和接种人员的调配等。然而,由于疫苗接种数据涉及到公共卫生信息,如何确保个人信息的隐私安全,如何在多级卫生管理系统之间实现数据共享和协调,也是国内研究中亟待解决的难题。随着大数据、云计算和人工智能技术的兴起,部分学者也开始探索如何通过智能化技术进一步提升疫苗接种的精准性,如通过数据分析预测疫苗需求,利用人工智能辅助疫苗接种过程中的决策等。
1.3.2国外研究现状
在国外,疫苗接种管理系统的研究起步较早,许多发达国家已实现了疫苗接种的全面数字化管理。比如,美国的免疫信息系统(IIS)已经覆盖全国范围,用于记录所有接种者的疫苗接种信息,并与各地的医疗机构、公共卫生部门实现数据互通。此类系统不仅能提高接种记录的准确性,还能帮助医疗机构实时监控疫苗库存、调配资源,确保及时、有效的疫苗供应。
此外,国外的研究在疫苗接种过程中的数据分析和智能化应用方面也取得了显著进展。通过大数据分析,研究者能够追踪疫苗接种的覆盖率、识别高风险群体,并根据流行病学趋势预测疫苗需求。同时,许多国家也在推进基于区块链的疫苗接种记录管理,以确保接种记录的不可篡改性与信息的透明性。随着人工智能技术的发展,智能化疫苗接种系统已在一些试点地区投入使用,通过AI算法帮助医务人员分析接种数据,优化疫苗分配和接种策略。
1.3.3总结
总体来看,国内外关于疫苗接种管理系统的研究已有较长时间的积累,国内逐渐关注信息化和智能化的应用,而国外则在大数据分析、智能预测和区块链技术方面取得了较为成熟的进展。国内在数据共享、安全性和跨部门协作方面面临一定挑战,而国外则在数据应用和智能化管理上形成了较为完善的体系。未来,随着技术的不断发展,国内的疫苗接种管理系统有望逐步向国外先进水平靠近。
1.4主要研究内容
本研究主要围绕儿童疫苗接种管理系统的设计与实现展开,涵盖需求分析、技术方案设计、功能设计和数据库设计等核心内容。
1. 需求分析:通过对现有疫苗接种管理模式的调研,识别出传统管理中存在的问题,如人工审核效率低、信息更新滞后等。系统需求主要包括:提供用户便捷的疫苗预约与接种记录查询功能;为医生用户提供预约管理、疫苗信息管理等功能;为管理员提供用户管理、公告发布、数据统计等后台管理功能。
2、技术方案:系统采用Java语言和SpringBoot框架进行后台开发,利用SpringBoot的快速开发优势,构建高效、可维护的后端服务。前端采用Vue框架确保用户操作流畅、界面友好。系统数据存储采用MySQL数据库,具备良好的数据管理和查询能力,支持高并发访问。
3、功能设计:系统的功能设计按用户角色分为三个部分:预约用户、医生用户和管理员。预约用户可查询疫苗信息、进行在线预约,并查看个人接种记录;医生用户可管理疫苗种类、审核预约请求、记录接种情况;管理员则负责管理系统用户、发布公告、查看统计数据等。
4、数据库设计:数据库设计包括用户表、医院表、疫苗表、预约表、接种记录表等,确保数据的规范化存储与高效查询。表间通过外键关联,保证数据的一致性与完整性。同时设计了索引以优化查询效率,满足高并发访问需求。
1.5 论文结构与章节安排
本文共分为七章,章节内容安排如下:
第一章:绪论,主要介绍研究的背景和意义,概述研究的现状和系统特点。
第二章:关键技术,主要探讨和说明实现平台的关键技术。
第三章:系统分析,从平台的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。
第四章:系统设计,对平台功能模块、数据库进行功能设计。
第五章:系统实现,介绍平台各个用户的功能、系统界面的实现。
第六章:系统测试,对平台进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。
第七章: 结论。总结全文研究内容,提出对共建平台领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。
2相关技术简介
2.1 Java语言
儿童疫苗接种管理系统采用了Java语言作为后端开发的核心技术。Java语言因其跨平台特性和高度灵活性而备受青睐,使系统能够在不同操作系统上稳定运行,并为未来功能的拓展提供可靠的技术支持。同时,采用Spring Boot框架简化了配置,提升了开发效率和系统的稳定性。Java的选择确保了平台具有良好的可扩展性和稳定性,在为儿童疫苗接种管理系统提供技术支持的同时,也为用户提供畅顺的体验。
2.2 SpringBoot 框架
Spring Boot,作为Spring生态系统中一颗璀璨的明星,以其“约定优于配置”的核心理念,极大地简化了Java应用的开发、部署与管理流程。它并非是对Spring框架的颠覆,而是在其基础上进行了深度封装与优化,旨在快速搭建独立的、生产级别的Spring应用。Spring Boot通过自动配置功能,减少了大量繁琐的配置工作,让开发者能够更加专注于业务逻辑的实现。同时,它集成了众多常用库,如数据库连接池、缓存、消息队列等,为系统开发提供了一站式的解决方案。此外,Spring Boot还支持多种部署方式,无论是传统的WAR包部署,还是现代的容器化部署,都能轻松应对。因此,选择Spring Boot作为儿童疫苗接种管理系统的开发框架,不仅能够提升开发效率,还能确保系统的稳定性和可维护性。
2.3 MySQL数据库
MySQL数据库,作为开源关系型数据库管理系统的佼佼者,以其高性能、可靠性、易用性和灵活性,在全球范围内被广泛应用于各类企业级应用中。MySQL采用SQL(结构化查询语言)作为数据操作的标准语言,支持复杂的查询、数据更新、索引优化等功能,确保数据的高效存取和完整性。其强大的事务处理能力,为业务逻辑的原子性、一致性、隔离性和持久性提供了坚实保障。此外,MySQL还具备高度的可配置性和可扩展性,通过优化存储引擎、调整配置参数等手段,可以轻松应对高并发、大数据量的应用场景。在儿童疫苗接种管理系统中,MySQL作为后端数据存储的核心,不仅为系统提供了稳定可靠的数据支持,还通过其丰富的数据操作功能,助力系统实现复杂的业务逻辑和高效的数据管理。
3系统需求分析
3.1系统功能需求分析
儿童疫苗接种管理系统的功能设计,涵盖了从疫苗信息的管理到用户预约、医生审核以及后台数据统计等各个环节。该系统不仅能提高疫苗接种的效率和准确性,还能为家长提供便捷的疫苗预约和信息查询服务,为医生和管理员提供高效的后台管理工具,从而构建一个更加安全、透明和便捷的儿童疫苗接种平台。
3.1.1 预约用户功能
- 首页:用户可以在首页查看系统公告、最新疫苗资讯、推荐医院及疫苗信息,方便快捷地获取最新消息和资源。
- 网站公告:展示由系统发布的各类公告信息,包括疫苗接种的相关政策、节假日安排及系统维护等内容,确保用户及时了解重要信息。
- 疫苗资讯:提供关于疫苗的详细科普资讯、新闻动态、接种建议等内容,帮助用户了解不同疫苗的特点、使用注意事项等。
- 医院信息:用户可以通过医院名称或地区等条件进行搜索,查看医院的基本信息,并可收藏喜欢或正在关注的医院,以便日后参考。
- 疫苗信息:展示疫苗的详细信息,包括产品条码、疫苗名称、适用年龄、库存、价格、生产日期等,同时支持用户在线预约疫苗,但预约需经过医生审核并确认方能完成。
- 个人中心:用户可以在个人中心查看和管理自己的基本信息、预约记录、接种记录、收藏的医院与疫苗信息,并能查看和管理自己的评论内容。
3.1.2 医生用户功能
- 后台首页:医生用户在后台首页查看有关医院信息、疫苗信息、在线预约和接种记录的统计数据,方便掌握管理情况并做出相应调整。
- 预约用户管理:医生用户可以查看用户的预约请求,并根据用户的健康状况和年龄等因素进行审核,审核通过后,用户的预约才会被视为成功。
- 适用年龄管理:医生用户负责管理疫苗的适用年龄范围,确保各类疫苗按规定的年龄段进行接种,避免不适龄接种情况发生。
- 疫苗种类管理:医生用户可以添加、修改或删除不同种类的疫苗信息,确保系统中的疫苗种类及时更新,满足市场需求。
- 医院信息管理:医生用户可以管理医院的基本信息,包括医院名称、地址、联系电话等,确保医院的资料准确无误。
- 疫苗信息管理:医生用户可以更新、修改或删除疫苗的详细信息,包括库存量、价格、生产厂家等,确保信息的准确性和及时性。
- 在线预约管理:医生用户可查看所有在线预约请求,并根据具体情况批准或拒绝,确保预约流程的顺利进行。
- 接种记录管理:医生用户管理接种记录,记录每个用户的接种情况,包括疫苗种类、接种时间、接种状态等,并保持数据的准确性。
3.1.3 管理员功能
- 后台首页:管理员用户通过后台首页查看系统的整体运行情况,包括医院信息、疫苗信息、在线预约和接种记录的统计数据,帮助管理员了解系统的运作状态。
- 用户管理:管理员可以对系统内的用户进行管理,包括添加、删除、启用或禁用预约用户、医生用户和管理员账号,确保平台用户的正常使用和管理。
- 适用年龄管理:管理员负责管理各类疫苗的适用年龄段,确保系统中提供的疫苗信息符合年龄要求,避免不合适的疫苗接种。
- 疫苗种类管理:管理员可以管理系统中的疫苗种类,包括新增、修改、删除疫苗种类,确保系统中的疫苗种类信息始终保持更新。
- 医院信息管理:管理员可以管理医院的注册信息,包括审核新医院的注册资料,更新医院的基本信息,以及管理医院的在系统中的展示内容。
- 疫苗信息管理:管理员可以对系统中所有疫苗的详细信息进行管理,如疫苗名称、库存、生产厂家、价格等,确保信息准确无误。
- 在线预约管理:管理员可以查看和管理所有的预约请求,审核预约的合理性,并根据情况进行相应的处理和管理。
- 接种记录管理:管理员负责管理平台内的所有接种记录,确保接种数据的完整性、准确性和及时更新,避免任何数据遗漏或错误。
- 轮播图管理:管理员可以管理网站首页的轮播图内容,及时更新广告或重要信息的展示,提升用户体验。
- 网站公告管理:管理员负责发布和管理网站上的公告信息,包括系统更新、节假日安排、疫苗接种的注意事项等,确保用户及时获取重要通知。
- 疫苗资讯管理:管理员可以管理和更新平台上的疫苗相关资讯,添加新的科普文章或新闻,帮助用户了解最新的疫苗信息和接种建议。
3.2系统非功能性分析
在研究儿童疫苗接种管理系统时,非功能性需求分析是一个重要的部分。非功能性需求主要关注的是系统如何运行,而不是它具体完成什么功能。这些需求包括性能、可用性、安全性、可维护性、可扩展性、易用性等方面。以下是一个关于儿童疫苗接种管理系统非功能性需求分析的概要。
性能需求:系统需确保快速响应和高吞吐量,以支持大量用户同时访问,即使在高峰时段也能保持流畅的操作体验,避免因延迟或卡顿影响用户体验。
可用性:安系统必须具备高可用性,采用冗余部署、负载均衡等策略,确保即使部分组件故障也能迅速恢复服务,减少服务中断时间,保障用户业务的连续性。
安全性:鉴于系统处理用户敏感信息,如个人信息等,必须实施严格的安全措施,包括数据加密、访问控制、防攻击机制等,以保护用户数据免受未授权访问或泄露。
可维护性:系统设计应注重可维护性,采用模块化、标准化的架构,提供详尽的开发文档和用户手册,确保系统易于理解和维护,降低长期运维成本。
可扩展性:随着业务的发展,系统可能需要扩展功能或提升性能。因此,系统需具备灵活的可扩展性,能够轻松添加新模块、优化性能,以应对未来增长的需求。
易用性:用户界面应直观易用,符合用户习惯,提供清晰的导航和友好的操作反馈,帮助用户快速上手并高效完成任务,提升整体用户满意度。
3.3系统可行性分析
通过儿童疫苗接种管理系统的可行性分析,从技术可行性、经济可行性、操作可行性以及社会可行性四个维度进行深入探讨,以确保系统的开发与应用具有坚实的可行性基础。
3.3.1技术可行性
研究采用Java语言和SpringBoot框架进行系统开发,具有良好的开发效率和维护性,符合当前技术发展趋势。MySQL数据库可提供高效的数据存储和查询,支持大规模数据处理和高并发访问,确保系统稳定运行。前端采用Vue框架,能够兼容各种设备和浏览器,保证用户体验。
3.3.2经济可行性
儿童疫苗接种管理系统的开发和实施成本相对较低。采用开源的SpringBoot框架和MySQL数据库,减少了高昂的授权费用。系统的硬件需求也较为基础,可以在现有的计算机设备上运行,不需要额外的昂贵硬件支持。此外,通过提高管理效率、降低人工操作成本和提升用户满意度,长期来看具有较强的经济效益。
3.3.3操作可行性
系统采用直观的用户界面和简单的操作流程,适用于不同技术背景的用户。管理员和用户都能迅速上手,系统的功能模块清晰,操作简便,减少了培训成本。系统提供的功能能够有效支持日常管理任务,满足管理员和用户的基本需求,确保了操作的可行性。
3.3.4社会可行性
随着数字化转型的推进,社会对信息化管理需求不断增加,疫苗接种管理系统的推广具有广泛的社会接受度。系统能够提高疫苗接种效率,减少人为错误,优化资源分配,提升公共卫生服务的质量。尤其在疫情防控和突发公共卫生事件中,系统的应用将帮助政府和医疗机构更好地协调工作,保障民众的健康。系统的普及有助于提升社会整体的公共卫生管理水平。
从技术、经济、操作和社会四个维度来看,儿童疫苗接种管理系统的开发均具备高度的可行性。
3.4系统用例分析
儿童疫苗接种管理系统用例分析主要从预约用户、医生用户、管理员三个实体展开描述。
3.4.1预约用户用例分析
预约用户主要负责疫苗信息查询和在线预约功能。用户通过系统查看疫苗种类、接种时间、接种地点等信息,选择适合自己的接种选项,进行在线预约。用户还可以查看预约记录,修改或取消预约。系统提供简便的界面,确保用户操作流畅,预约信息准确。此外,用户还可以查看疫苗接种后的健康提示和后续提醒,提升服务体验。详细用例图如图3.1所示。

图3.1预约用户用例图
3.4.2医生用户用例分析
医生用户的主要功能是管理疫苗接种记录和审核预约请求。医生可以查看所有预约用户的信息,核对接种情况,并根据预约顺序进行接种操作。系统允许医生更新疫苗库存、管理接种记录,并生成接种报告。医生还可以通过系统实时查看疫苗接种的统计数据,确保资源的合理使用与分配,及时应对接种中的突发情况。详细用例图如图3.2所示。

图3.2医生用户用例图
3.4.3管理员用例分析
管理员负责系统的后台管理,包括用户管理、公告发布、数据统计和系统维护。管理员可以对预约用户和医生用户的账户进行审核、修改或删除,确保系统的正常运作。同时,管理员能够发布疫苗接种相关公告,提醒用户重要信息。系统还支持管理员查看疫苗接种的统计数据和历史记录,帮助管理决策,优化资源配置,提高系统的整体效率和服务质量。详细用例图如图3.3所示。

图3.3管理员用例图
4系统设计
4.1系统总体设计思路
儿童疫苗接种管理系统采用Browser/Server结构,(浏览器/服务器)和基于Web服务前后台交互的模式,是一个适用于Windows体系环境下的模型结构。只要用户有符合程序运行的硬件系统,并连上互联网,便可以在任何时间、任何地点使用。系统工作原理图如图4.1所示:

图4.1系统工作原理图
其最终前后台交互原理如图4.2所示。

图4.2前后台交互原理
具体交互流程为:浏览器中执行具体操作,操作命令将生成一个do方法。该方法使得浏览器能够访问后台中的Controller层,Controller层由于业务上的需要执行进而访问Service层。Service层收到指令后将会去调用内部DAO层的接口。接口将会和MyBatis层下的一个SQL语句相对接。对接好之后进而访问MySql数据库。更新底层数据,然后将数据同步回MyBatis层,同步变化后的数据将通过DAO层接口,Service层和后台Controller层,直观反映到浏览器页面上。
4.2系统结构设计
儿童疫苗接种管理系统的整体结构设计如图4.3所示。

图4.3整体功能结构设计图
4.3系统功能设计
4.3.1用户登录流程
当用户进入登录页面时,当其在浏览器执行具体操作的时候,后端会同步显示,如图4.4所示。

图4.4登录流程图
4.3.2系统操作流程
系统操作流程如下:首先,预约用户登录系统,查询可用疫苗信息并选择合适的接种时间与地点进行预约;医生用户登录后,查看并审核预约请求,更新接种记录并管理疫苗库存;管理员登录系统,进行用户管理、公告发布、数据统计等后台操作。用户完成接种后,系统记录并更新接种状态,用户可随时查询接种历史记录。整个流程通过简洁的界面和流畅的操作确保高效管理与信息准确传递。操作流程如图4.5所示。

图4.5系统操作流程图
4.4系统核心代码设计
儿童疫苗接种管理系统的核心代码设计如下:
4.4.1用户注册
注册页UserController.java,传入user对象,并将"user_id"、 "state"、 "user_group"、"login_time"、"phone"、"phone_state"、 "username"、"nickname"、"password"、"email"、"email_state"、"avatar"、"create_time"输入,重点是 "username"、"nickname"、"password"必须输入,通过获取username,数据库查询是否有该用户,如果存在,则提示“用户已存在”,否则执行将UserId置为空(数据库表中该字段已设置自动递增),代码如下所示。
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
4.4.2用户登录
登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报“用户不存在”,执行完以上代码,最后涉及到用户带有“审核”的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,代码如下所示。
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
4.4.3修改密码
修改密码,通过请求data,获取旧密码,并将新密码重新赋值,期间都是需要通过加密,代码如下所示。
* 修改密码
* @param data
* @param request
* @return
*/
@PostMapping("change_password")
public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){
// 根据Token获取UserId
String token = request.getHeader("x.auth.token");
Integer userId = tokenGetUserId(token);
// 根据UserId和旧密码获取用户
Map<String, String> query = new HashMap<>();
String o_password = data.get("o_password");
query.put("user_id" ,String.valueOf(userId));
query.put("password" ,service.encryption(o_password));
int count = service.selectBaseCount(service.count(query, service.readConfig(request)));
if(count > 0){
// 修改密码
Map<String,Object> form = new HashMap<>();
form.put("password",service.encryption(data.get("password")));
service.update(query,service.readConfig(request),form);
return success(1);
}
return error(10000,"密码修改失败!");
4.4.4修改数据
修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如下所示。
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
4.4.5删除数据
删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如下所示。
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
public void delete(Map<String,String> query,Map<String,String> config){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);
baseMapper.delete(wrapper);
log.info("[{}] . 删除操作:{}",wrapper.getSqlSelect());
}
4.4.6获取数据
通过请求的参数获取列表数据,代码如下所示。
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
4.4.7图片上传
通过请求的参数获取列表数据,代码如下所示。
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
4.5数据库设计
4.5.1数据库设计原则
儿童疫苗接种管理系统在进行数据库设计时,考虑到个人能力与数据库选择,选择了数据库Mysql。以下将使用E.R展示数据库中设计的实体及主要的字段和类型及数据库的描述。
4.5.2数据库实体
通过建立儿童疫苗接种管理系统的E.R模型图。以此来设计详细的数据库资料实体,以下为具体图例:
(1)预约用户实体图如下图所示;

图4.6预约用户实体图
(2)疫苗信息实体图如下图所示;

图4.7疫苗信息实体图
(3)医院信息实体E.R图如下图所示;

图4.8医院信息实体E.R图
(4)整体数据库实体E.R图如下图所示:

图4.9数据库E.R图
4.5.3数据库表设计
表access_token (登陆访问时长)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
| 2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
| 3 | info | text | 65535 | 0 | Y | N | ||
| 4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | applicable_age_id | int | 10 | 0 | N | Y | 适用年龄ID | |
| 2 | applicable_age | varchar | 64 | 0 | Y | N | 适用年龄 | |
| 3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | appointment_user_id | int | 10 | 0 | N | Y | 预约用户ID | |
| 2 | childs_name | varchar | 64 | 0 | Y | N | 儿童姓名 | |
| 3 | id_number | varchar | 90 | 0 | N | N | 身份证号 | |
| 4 | parents_mobile_phones | varchar | 16 | 0 | Y | N | 家长手机 | |
| 5 | parents_name | varchar | 64 | 0 | Y | N | 家长名字 | |
| 6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
| 2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
| 3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
| 4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
| 5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
| 9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
| 10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
| 11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
| 12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
| 13 | description | text | 65535 | 0 | Y | N | 文章描述 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
| 3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
| 4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
| 5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
| 6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
| 7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
| 2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
| 3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
| 4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
| 5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
| 6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
| 7 | parent | varchar | 64 | 0 | Y | N | 父级菜单 | |
| 8 | parent_sort | int | 10 | 0 | N | N | 0 | 父级菜单排序 |
| 9 | position | varchar | 32 | 0 | Y | N | 位置: | |
| 10 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
| 11 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
| 12 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
| 13 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
| 14 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
| 15 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
| 16 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
| 17 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
| 18 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
| 19 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
| 20 | option | text | 65535 | 0 | Y | N | 配置: | |
| 21 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 22 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | code_token_id | int | 10 | 0 | N | Y | ||
| 2 | token | varchar | 255 | 0 | Y | N | ||
| 3 | code | varchar | 255 | 0 | Y | N | 验证码 | |
| 4 | expire_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 失效时间 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
| 3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 6 | title | varchar | 255 | 0 | Y | N | 标题: | |
| 7 | img | varchar | 255 | 0 | Y | N | 封面: | |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
| 3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
| 4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
| 5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
| 6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | doctor_users_id | int | 10 | 0 | N | Y | 医生用户ID | |
| 2 | hospital_name | varchar | 64 | 0 | Y | N | 医院名称 | |
| 3 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 4 | doctors_phone_number | varchar | 64 | 0 | N | N | 医生电话 | |
| 5 | hospital_images | varchar | 255 | 0 | Y | N | 医院图片 | |
| 6 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | hospital_information_id | int | 10 | 0 | N | Y | 医院信息ID | |
| 2 | doctor_users | int | 10 | 0 | Y | N | 0 | 医生用户 |
| 3 | hospital_name | varchar | 64 | 0 | Y | N | 医院名称 | |
| 4 | hospital_images | varchar | 255 | 0 | Y | N | 医院图片 | |
| 5 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 6 | doctors_phone_number | varchar | 64 | 0 | Y | N | 医生电话 | |
| 7 | vaccine_availability | varchar | 64 | 0 | Y | N | 可约疫苗 | |
| 8 | hospital_introduction | text | 65535 | 0 | Y | N | 医院简介 | |
| 9 | hospital_details | longtext | 2147483647 | 0 | Y | N | 医院详情 | |
| 10 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 11 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 12 | collect_len | int | 10 | 0 | N | N | 0 | 收藏数 |
| 13 | comment_len | int | 10 | 0 | N | N | 0 | 评论数 |
| 14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
| 2 | title | varchar | 125 | 0 | N | N | 标题: | |
| 3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
| 4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | online_booking_id | int | 10 | 0 | N | Y | 在线预约ID | |
| 2 | appointment_number | varchar | 64 | 0 | Y | N | 预约编号 | |
| 3 | product_barcode | varchar | 64 | 0 | Y | N | 产品条码 | |
| 4 | vaccine_name | varchar | 64 | 0 | Y | N | 疫苗名称 | |
| 5 | types_of_vaccines | varchar | 64 | 0 | Y | N | 疫苗种类 | |
| 6 | applicable_age | varchar | 64 | 0 | Y | N | 适用年龄 | |
| 7 | vaccine_prices | double | 9 | 2 | Y | N | 0.00 | 疫苗价格 |
| 8 | date_of_manufacture | date | 10 | 0 | Y | N | 生产日期 | |
| 9 | validity_period | varchar | 64 | 0 | Y | N | 有效期限 | |
| 10 | manufacturer | varchar | 64 | 0 | Y | N | 生产厂家 | |
| 11 | doctor_users | int | 10 | 0 | Y | N | 0 | 医生用户 |
| 12 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 13 | appointment_user | int | 10 | 0 | Y | N | 0 | 预约用户 |
| 14 | childs_name | varchar | 64 | 0 | Y | N | 儿童姓名 | |
| 15 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
| 16 | parents_mobile_phones | varchar | 64 | 0 | Y | N | 家长手机 | |
| 17 | parents_name | varchar | 64 | 0 | Y | N | 家长名字 | |
| 18 | time_of_appointment | datetime | 19 | 0 | Y | N | 预约时间 | |
| 19 | number_of_appointments | varchar | 64 | 0 | N | N | 预约数量 | |
| 20 | appointment_remarks | text | 65535 | 0 | Y | N | 预约备注 | |
| 21 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 22 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
| 23 | vaccination_records_limit_times | int | 10 | 0 | N | N | 1 | 接种记录限制次数 |
| 24 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 25 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 26 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 27 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 28 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | schedule_id | smallint | 5 | 0 | N | Y | 日程ID:[0,32767] | |
| 2 | content | varchar | 255 | 0 | Y | N | 日程内容 | |
| 3 | scheduled_time | datetime | 19 | 0 | Y | N | 计划时间 | |
| 4 | user_id | int | 10 | 0 | N | N | 用户id | |
| 5 | create_time | datetime | 19 | 0 | Y | N | 创建时间 | |
| 6 | update_time | datetime | 19 | 0 | Y | N | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | score_id | int | 10 | 0 | N | Y | 评分ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评分人: |
| 3 | nickname | varchar | 64 | 0 | Y | N | 昵称: | |
| 4 | score_num | double | 5 | 2 | N | N | 0.00 | 评分: |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 8 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 9 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
| 2 | title | varchar | 64 | 0 | Y | N | 标题: | |
| 3 | content | varchar | 255 | 0 | Y | N | 内容: | |
| 4 | url | varchar | 255 | 0 | Y | N | 链接: | |
| 5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
| 6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | types_of_vaccines_id | int | 10 | 0 | N | Y | 疫苗种类ID | |
| 2 | types_of_vaccines | varchar | 64 | 0 | Y | N | 疫苗种类 | |
| 3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
| 2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
| 3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
| 4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
| 5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
| 6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
| 7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
| 8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | user_id | int | 10 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
| 2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
| 3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
| 4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
| 5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
| 6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
| 7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
| 8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
| 9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
| 10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
| 11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
| 12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
| 13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
| 14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
| 3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
| 4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
| 5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
| 9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | vaccination_records_id | int | 10 | 0 | N | Y | 接种记录ID | |
| 2 | appointment_number | varchar | 64 | 0 | Y | N | 预约编号 | |
| 3 | product_barcode | varchar | 64 | 0 | Y | N | 产品条码 | |
| 4 | vaccine_name | varchar | 64 | 0 | Y | N | 疫苗名称 | |
| 5 | types_of_vaccines | varchar | 64 | 0 | Y | N | 疫苗种类 | |
| 6 | applicable_age | varchar | 64 | 0 | Y | N | 适用年龄 | |
| 7 | date_of_manufacture | date | 10 | 0 | Y | N | 生产日期 | |
| 8 | validity_period | varchar | 64 | 0 | Y | N | 有效期限 | |
| 9 | manufacturer | varchar | 64 | 0 | Y | N | 生产厂家 | |
| 10 | doctor_users | int | 10 | 0 | Y | N | 0 | 医生用户 |
| 11 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 12 | appointment_user | int | 10 | 0 | Y | N | 0 | 预约用户 |
| 13 | childs_name | varchar | 64 | 0 | Y | N | 儿童姓名 | |
| 14 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
| 15 | parents_mobile_phones | varchar | 64 | 0 | Y | N | 家长手机 | |
| 16 | parents_name | varchar | 64 | 0 | Y | N | 家长名字 | |
| 17 | vaccination_time | datetime | 19 | 0 | Y | N | 接种时间 | |
| 18 | vaccination_quantity | varchar | 64 | 0 | N | N | 接种数量 | |
| 19 | vaccine_prices | double | 9 | 2 | Y | N | 0.00 | 疫苗价格 |
| 20 | doctors_remarks | text | 65535 | 0 | Y | N | 医生备注 | |
| 21 | child_status | text | 65535 | 0 | Y | N | 儿童状态 | |
| 22 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
| 23 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
| 24 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 25 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 26 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 27 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 28 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | vaccine_information_id | int | 10 | 0 | N | Y | 疫苗信息ID | |
| 2 | product_barcode | varchar | 64 | 0 | N | N | 产品条码 | |
| 3 | vaccine_name | varchar | 64 | 0 | Y | N | 疫苗名称 | |
| 4 | image_cover | varchar | 255 | 0 | Y | N | 图片封面 | |
| 5 | types_of_vaccines | varchar | 64 | 0 | Y | N | 疫苗种类 | |
| 6 | applicable_age | varchar | 64 | 0 | Y | N | 适用年龄 | |
| 7 | vaccine_inventory | double | 9 | 2 | Y | N | 0.00 | 疫苗库存 |
| 8 | vaccine_prices | double | 9 | 2 | Y | N | 0.00 | 疫苗价格 |
| 9 | date_of_manufacture | date | 10 | 0 | Y | N | 生产日期 | |
| 10 | validity_period | varchar | 64 | 0 | Y | N | 有效期限 | |
| 11 | manufacturer | varchar | 64 | 0 | Y | N | 生产厂家 | |
| 12 | vaccination_frequency | varchar | 64 | 0 | Y | N | 接种频次 | |
| 13 | doctor_users | int | 10 | 0 | Y | N | 0 | 医生用户 |
| 14 | hospital_name | varchar | 64 | 0 | Y | N | 医院名称 | |
| 15 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 16 | doctors_phone_number | varchar | 64 | 0 | Y | N | 医生电话 | |
| 17 | vaccine_efficacy | text | 65535 | 0 | Y | N | 疫苗功效 | |
| 18 | vaccination_time | text | 65535 | 0 | Y | N | 接种时间 | |
| 19 | matters_needing_attention | text | 65535 | 0 | Y | N | 注意事项 | |
| 20 | vaccine_details | longtext | 2147483647 | 0 | Y | N | 疫苗详情 | |
| 21 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 22 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 23 | collect_len | int | 10 | 0 | N | N | 0 | 收藏数 |
| 24 | comment_len | int | 10 | 0 | N | N | 0 | 评论数 |
| 25 | online_booking_limit_times | int | 10 | 0 | N | N | 0 | 在线预约限制次数 |
| 26 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 27 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
5系统实现
5.1预约用户功能实现
5.1.1前台首页
用户登录后将进入系统首页,首页展示最新的疫苗资讯、热门医院信息及相关疫苗推荐。用户可以在首页快速导航,选择预约疫苗、查看医院信息、获取接种提醒等。首页还会根据用户历史行为和偏好推荐相关内容,确保用户获得及时的接种信息和便捷的操作入口。如下图所示。

图5.1首页界面图
5.1.2注册登录
预约用户首先需要在系统中进行注册,填写个人信息并设置账户密码。注册成功后,用户可通过用户名和密码登录系统,进入主界面进行后续操作。用户信息包括姓名、身份证号码、联系方式等,确保个人数据准确并符合疫苗接种的相关要求。登录后,系统会根据用户的账户信息自动加载相关数据,提供个性化的疫苗预约和接种服务。如下图所示。

图5.2用户注册界面图

图5.3用户登录界面图
5.1.3疫苗资讯
疫苗资讯页面提供最新的疫苗相关新闻、研究成果、疫苗接种的最佳实践等内容,帮助用户了解疫苗的相关背景和接种的重要性。用户可以浏览各类疫苗的信息、接种技巧及相关的科普文章,为做出选择提供科学依据,提升用户对疫苗接种的认识和信任。如下图所示。

图5.4疫苗资讯查看界面图
5.1.4医院信息
用户可以在系统中搜索各大医院的接种服务,查看医院的详细信息,包括医院名称、地址、接种服务类型、接种时间等。用户还可以对自己感兴趣的医院进行收藏,方便后续快速查询和预约。该功能旨在提高用户的选择性和便利性,让用户根据个人需求找到最合适的接种地点。如下图所示。

图5.5医院信息查看界面图
5.1.5疫苗信息
疫苗信息页面提供详细的疫苗种类介绍,包括疫苗的产品条码、名称、种类、适用年龄、库存、价格、生产厂家、接种频次等信息。用户可以浏览不同疫苗的详细资料,选择适合自己或家人接种的疫苗。用户在线选择疫苗并进行预约,需经过医生用户的审核和确认后方可完成预约。疫苗信息透明,帮助用户做出知情选择。如下图所示。

图5.7疫苗信息查看界面图

图5.8在线预约疫苗界面图
5.1.6个人中心
个人中心是预约用户查看个人信息和管理预约内容的地方。用户可以在个人首页查看预约信息、接种历史记录、收藏的医院和疫苗信息,以及接种后的健康提醒和反馈。用户还可以修改个人资料、查看和管理评论,提升系统的互动性和用户体验。如下图所示。

图5.9个人中心界面图
5.2管理员功能实现
5.2.1后台首页
管理员登录系统后进入后台首页,首页展示医院信息、疫苗信息、在线预约以及接种记录的统计数据。通过图表和数据分析,管理员可以快速掌握系统的整体运营情况,了解各医院的接种进度、疫苗库存、用户预约趋势等。该页面的统计信息有助于管理员及时调整资源分配,优化接种安排,确保服务高效稳定。如下图所示。

图5.10后台首页界面
5.2.2用户管理
管理员负责管理所有用户账户,包括管理员、预约用户和医生用户。通过用户管理功能,管理员可以查看用户的基本信息、账号状态、权限设置等,并对用户进行新增、删除、修改、禁用等操作。该功能确保系统的用户数据准确,权限分配合理,保障系统的安全性和正常运作。如下图所示。

图5.11用户管理界面
5.2.3医院信息管理
管理员通过医院信息管理功能,维护和更新各医院的基本信息,如医院名称、地址、接种科室、联系方式等。管理员可以添加新医院,修改现有医院的信息,或删除不再提供接种服务的医院。该功能确保用户能准确查询到接种医院的信息,提升用户的便捷性和系统的实时性。如下图所示。

图5.12医院信息添加界面
5.2.4疫苗信息管理
疫苗信息管理功能允许管理员编辑和更新疫苗的详细信息,包括疫苗名称、生产厂家、有效期限、价格、接种频次等。管理员可以根据疫苗的供应情况调整库存信息,确保用户获得最新的疫苗数据。此外,管理员还可以处理疫苗的上线与下架,确保信息准确无误。如下图所示。

图5.13疫苗信息添加界面
5.2.5疫苗资讯管理
管理员负责维护疫苗资讯内容,包括上传新资讯、编辑现有资讯及删除过时信息。资讯包括疫苗研究成果、接种相关政策、健康提醒等内容,管理员可根据需求添加或修改资讯,确保用户能够通过平台获取到最新的疫苗相关信息,帮助用户更好地理解疫苗接种的意义和注意事项。如下图所示。

图5.14疫苗资讯管理界面
5.3医生用户功能实现
5.3.1在线预约管理
医生用户负责审核并管理在线预约请求。预约用户通过系统提交的疫苗预约需要医生的审核,医生可以查看预约用户的个人信息、疫苗选择和预约时间,并根据接种情况进行批准或拒绝。系统提供便捷的审核功能,帮助医生快速处理预约请求,确保接种流程的顺利执行。如下图所示。

图5.15审核在线预约界面
5.3.2接种记录管理
医生能够查看所有接种用户的详细记录,包括接种的疫苗类型、接种日期、接种地点、医生信息等。医生可以在此页面更新接种状态。通过管理接种记录,医生可以准确追踪每个用户的接种历史,并及时提供后续接种建议。此功能有助于确保疫苗接种的完整性和持续性。如下图所示。

图5.16接种记录维护界面
6系统测试
6.1系统测试目标
为了保证儿童疫苗接种管理系统的质量,使其能够稳定的运行,并排除其可能存在的未知隐患。解除软件可能存在的故障,理清楚测试与纠错的关系,如下图所示。

图6.1测试与纠错信息流程
6.2系统功能测试
通过对系统中所含的主要实体对象及其功能操作进行测试用例设计。以下是详细的测试表:
表6.1用户注册测试表
| 测试用例编号 | 功能模块 | 测试用例描述 | 测试结果 |
| TC001 | 用户注册 | 输入正确的用户名和密码 | 注册成功,提示注册完成 |
| TC002 | 用户注册 | 输入已存在的用户名 | 注册失败,提示用户名已存在 |
| TC003 | 用户注册 | 输入格式错误的邮箱地址 | 注册失败,提示邮箱格式错误 |
| TC004 | 用户注册 | 不输入密码 | 注册失败,提示密码不能为空 |
| TC005 | 用户注册 | 输入弱密码(如123456) | 注册失败,提示密码强度不足 |
表6.2用户登录测试表
| 测试用例编号 | 功能模块 | 测试用例描述 | 测试结果 |
| TC001 | 用户登录 | 输入正确的用户名和密码 | 登录成功,进入主页 |
| TC002 | 用户登录 | 输入错误的用户名 | 登录失败,提示用户名不存在 |
| TC003 | 用户登录 | 输入错误的密码 | 登录失败,提示密码错误 |
| TC004 | 用户登录 | 未输入用户名或密码 | 登录失败,提示用户名或密码不能为空 |
| TC005 | 用户登录 | 多次输入错误密码 | 登录失败,提示账户已被锁定 |
表6.3查看医院信息测试表
| 测试用例编号 | 功能模块 | 测试用例描述 | 测试结果 |
| TC001 | 查看医院信息 | 点击进入医院信息页面,查看医院列表 | 显示所有医院信息,包括医院名称、地址等 |
| TC002 | 查看医院信息 | 在医院信息页面点击某个医院,查看详细信息 | 显示所选医院的详细信息,如科室、联系方式等 |
| TC003 | 查看医院信息 | 在医院信息页面进行搜索 | 根据搜索关键词显示相关医院的信息 |
| TC004 | 查看医院信息 | 没有任何医院信息时访问医院信息页面 | 提示没有可用的医院信息 |
| TC005 | 查看医院信息 | 使用无效的医院ID访问医院详细信息页面 | 提示医院ID无效或医院不存在 |
表6.4在线预约疫苗测试表
| 测试用例编号 | 功能模块 | 测试用例描述 | 测试结果 |
| TC001 | 在线预约疫苗 | 选择有效的疫苗并填写预约信息 | 预约成功,提示预约完成 |
| TC002 | 在线预约疫苗 | 选择已预约的疫苗种类 | 预约失败,提示该疫苗已预约 |
| TC003 | 在线预约疫苗 | 输入无效的预约信息(如错误的身份证号码) | 预约失败,提示输入信息有误 |
| TC004 | 在线预约疫苗 | 未选择疫苗种类或未填写必要的个人信息 | 预约失败,提示缺少必要信息 |
| TC005 | 在线预约疫苗 | 预约疫苗时选择超出适用年龄范围的疫苗 | 预约失败,提示不适用年龄范围 |
表6.5查看接种记录测试表
| 测试用例编号 | 功能模块 | 测试用例描述 | 测试结果 |
| TC001 | 查看接种记录 | 查看已接种用户的完整接种记录 | 显示所有接种的详细信息,包括疫苗种类和接种时间 |
| TC002 | 查看接种记录 | 查看未接种用户的接种记录 | 提示该用户没有接种记录 |
| TC003 | 查看接种记录 | 使用无效的用户ID查看接种记录 | 提示该用户不存在或无法找到接种记录 |
| TC004 | 查看接种记录 | 查看接种历史中的某一项接种记录并进行编辑 | 显示接种记录并允许编辑(如修改接种日期) |
| TC005 | 查看接种记录 | 查看接种记录时无网络或后台服务不可用 | 提示网络错误或无法获取接种记录 |
6.3测试结果总结
通过对用户注册、登录、查看医院信息、在线预约疫苗和查看接种记录等功能模块的测试,整体结果符合预期,大部分功能正常运行。用户注册过程中,系统能正确处理用户名、密码、邮箱格式等输入验证,避免了重复注册和不安全密码的情况。登录模块也能有效识别正确和错误的用户名及密码,确保账户安全。在查看医院信息功能中,医院列表与详情展示准确,搜索功能能正常筛选医院信息,用户体验良好。在线预约功能能够顺利完成疫苗预约,同时能处理无效预约信息和年龄限制等异常情况。接种记录功能有效展示用户的接种历史,并能够处理不存在的用户或无接种记录的情境。
总的来说,本次测试未发现重大问题,系统能够稳定运行并处理常见的输入错误。未来可以进一步优化错误提示的友好性和增加一些更细化的异常处理,提高用户体验和系统的鲁棒性。
结 论
本文设计并实现了基于Java语言、SpringBoot框架和MySQL数据库的疫苗预约接种管理系统。通过对传统疫苗接种管理模式的分析,提出了信息化、自动化的解决方案,旨在提高疫苗接种过程的效率与准确性。系统通过合理的功能划分和技术架构,满足了预约用户、医生和管理员的不同需求,有效提升了管理水平和用户体验。
在功能设计上,系统为预约用户提供了便捷的疫苗信息查询和在线预约功能,医生可以高效地管理疫苗接种记录和预约请求,管理员则能实时监控整个系统的运行情况。技术方案的选型上,SpringBoot框架的快速开发能力使得系统具备了良好的扩展性和维护性,MySQL数据库提供了高效的数据存储与查询支持,确保了系统的高可用性与稳定性。
通过系统的实际应用,预期能够显著减少人工干预和接种错误,优化疫苗资源的分配,提高公共卫生管理的效率与精确度。同时,系统将为未来类似的公共健康管理系统提供一定的借鉴意义。尽管系统已具备较高的功能性和稳定性,但仍存在进一步优化的空间,尤其是在数据分析和系统安全方面。未来可根据用户反馈和技术发展,继续完善系统功能,提升其智能化水平和适应性。
参考文献
- 刘涛.基于SpringBoot的实验室预约排课系统的设计与实现[J].办公自动化,2024,29(23):90-92.
- 李琳,张航,黎俊熙,胥攀,文定,何玉碧.基于SpringBoot的奖学金评定管理系统设计与实现[J].电脑编程技巧与维护,2024,(11):95-97+113.
- 安宇鑫.基于SpringBoot+Vue的教学评价专家抽课系统的设计与实现[J].电脑知识与技术,2024,20(32):29-34.
- 朴明,邱翠花,苗子.基于SpringBoot+小程序的信息采集系统设计与实现[J].电子技术,2024,53(10):47-49.
- 吴冰冰.基于SpringBoot+Vue实习就业系统的开发与实践[J].电大理工,2024,(03):18-22.
- Wenjuan Shao,Kun Liu.Design and Implementation of Online Ordering System Based on SpringBoot[J].Journal of Big Data and Computing,2024,2(3):
- Yixuan Liu.Design and Implementation of a Student Attendance Management System based on Springboot and Vue Technology[J].Frontiers in Computing and Intelligent Systems,2024,8(1):91-97.
- 王铎霖,刘钧玉,陈新,肖永平.疫苗接种全流程管理系统的设计与应用[J].中国数字医学,2022,17(12):72-76+111.
- Yu Yang.Design and Implementation of Student Information Management System Based on Springboot[J].Advances in Computer, Signals and Systems,2022,6(6):
- 余凯玲.公立医院疫苗接种管理系统的设计与实现[J].福建电脑,2022,38(10):79-82.
- 马金凤,林坤,李佳琦,吴醒,沈豪杰.社区医院疫苗接种管理系统设计[J].福建电脑,2022,38(07):59-65.
- 田茂德.基于区块链的疫苗冷链物流管理系统设计与实现[D].山东财经大学,2022.
- 贾黎,刘忠超,李英玲.基于SpringBoot+Vue新冠疫苗接种全过程管理系统[J].西南民族大学学报(自然科学版),2022,48(02):181-189.
- Jian Chen,Chen Jian,Pan Hailan.Design of Man Hour Management Information System on SpringBoot Framework[J].Journal of Physics: Conference Series,2020,1646(1):012136-.
- Li Heng,Liu Yuxing.Design and implementation of a standardized review system for gas station safety production based on SpringBoot[A]2023:
致 谢
在本文的撰写和系统开发过程中,我深刻体会到个人独立完成一项系统开发工作的挑战与成就感。首先,我要感谢我的导师,在整个研究和开发过程中给予了我无私的指导与建议。无论是在技术细节还是研究思路上,他都为我提供了宝贵的方向性指导,帮助我克服了许多难题。虽然整个开发过程是由我独立完成的,但导师的意见使我在遇到瓶颈时有了清晰的解决思路。
在开发过程中,我经历了从系统需求分析、架构设计到功能实现的完整过程。这不仅锻炼了我的编码能力,也让我在项目管理、时间安排和问题解决等方面有了长足的进步。我独立完成了系统的每一行代码,并通过反复测试和优化确保了系统的稳定性和性能。在遇到技术难题时,我通过查阅大量文献、技术文档和社区讨论,自主解决了各类问题,这个过程让我更加理解了技术的深度与广度。
同时,我也要感谢我的家人和朋友,他们在开发的整个过程中给予了我莫大的支持和鼓励,成为我坚持完成这项工作的动力。正是在这些力量的支持下,我才能独立完成这项系统开发并顺利完成论文的撰写。
点赞+收藏+关注 →私信领取本源代码、数据库
关注博主下篇更精彩
一键三连!!!
一键三连!!!
一键三连!!!
感谢一键三连!!!
655

被折叠的 条评论
为什么被折叠?



