摘 要
随着科技的飞速发展和人口老龄化趋势的加剧,养老服务面临着前所未有的挑战与机遇。传统的养老服务模式已难以满足现代老年人多样化、个性化的需求,而信息技术的融入为养老服务创新提供了强大的动力。在这一背景下,“互联网+智慧养老服务”应运而生,成为了养老服务业发展的新趋势。
互联网+智慧养老服务系统正是基于这样的时代背景而设计的。该系统旨在通过整合互联网等先进技术,为老年人提供更加便捷、高效、个性化的养老服务。系统不仅关注老年人的基本生活需求,更致力于提升他们的生活质量,让他们在晚年生活中感受到更多的温暖与关怀。
本文将对互联网+智慧养老服务系统的设计与实现进行详细介绍。首先,我们将阐述系统的整体架构和核心功能,包括充值信息、老人档案、入住信息、退住信息、催款通知、护理计划、挂号预约、医生就诊、日常配药等方面。最后,我们将总结SSM系统的创新点和实践意义,展望其在未来养老服务领域的应用前景。
通过互联网+智慧养老服务系统的设计与实现,我们希望能够为养老服务业的转型升级提供有力支持,推动养老服务的智能化、网络化、个性化发展,让每一位老年人都能享受到更加美好的晚年生活。
关键词:养老服务系统;SSM;互联网
Design and Implementation of Internet+Smart Elderly Care Service System
ABSTRACT
With the rapid development of technology and the intensification of the aging population trend, elderly care services are facing unprecedented challenges and opportunities. The traditional elderly care service model is no longer able to meet the diverse and personalized needs of modern elderly people, and the integration of information technology provides strong impetus for innovation in elderly care services. Under this background, "Internet plus+Smart Elderly Care Service" came into being, which has become a new trend in the development of the elderly care service industry.
Internet+Smart Elderly Care Service System is designed based on this background. The system aims to provide more convenient, efficient and personalized elderly care services for the elderly through the integration of Internet and other advanced technologies. The system not only focuses on the basic living needs of the elderly, but also strives to improve their quality of life, allowing them to feel more warmth and care in their later years.
This paper will introduce the design and implementation of Internet+Smart Elderly Care Service System in detail. Firstly, we will elaborate on the overall architecture and core functions of the system, including recharge information, elderly records, check-in information, check-out information, payment reminders, nursing plans, registration appointments, doctor visits, daily medication dispensing, and other aspects. Finally, we will summarize the innovative points and practical significance of the SSM system, and look forward to its future application prospects in the field of elderly care services.
Through the design and implementation of the Internet plus+Smart Elderly Care Service System, we hope to provide strong support for the transformation and upgrading of the elderly care service industry, promote the intelligent, networked and personalized development of elderly care services, and enable every elderly person to enjoy a better old age.
Keywords: Elderly care service system; SSM; Internet
目 录
1.1. 课题背景和意义
在21世纪的今天,人类社会正步入一个以信息化、网络化和智能化为标志的新时代。与此同时,全球范围内的人口老龄化趋势日益明显,养老服务需求呈现出爆炸性增长。传统的养老服务模式,受限于人力、物力等资源,已难以应对这一挑战。因此,探索一种融合互联网技术与养老服务的新型模式,成为了解决当前养老问题的关键。
“互联网+智慧养老服务系统”正是在这样的背景下应运而生。该系统利用互联网、物联网等前沿技术,将养老服务与信息技术深度融合,旨在提供更加便捷、高效、个性化的服务体验。这一系统的出现,不仅是对传统养老服务模式的一次革命性创新,更是对养老服务产业未来发展的深刻探索。
从现实意义来看,该系统能够有效整合社会各方资源,提升养老服务的质量和效率。通过数据分析,系统可以更加准确地把握老年人的需求和偏好,为他们提供更加精准的服务。同时,系统的智能化管理也有助于降低养老服务的成本,提高服务的可持续性。
此外,该系统还具有深远的社会价值。它不仅能够满足老年人对于高品质生活的追求,更能够提升整个社会的养老服务水平,推动养老服务业的转型升级。通过系统的普及和推广,我们可以让更多的老年人享受到智能化、网络化的养老服务,让他们的晚年生活更加美好。
综上所述,“互联网+智慧养老服务系统”的设计与实现,不仅具有重大的现实意义,更有着深远的社会价值。它是应对人口老龄化挑战、提升养老服务水平、推动社会进步的重要举措,值得我们深入研究和探索。
1.2 国内外研究现状
近年来,随着信息技术的快速发展和人口老龄化趋势的加剧,国内对“互联网+智慧养老服务系统”的研究与实践逐渐增多。一方面,国内的研究主要集中在智能化服务系统、健康管理平台等方面。例如,一些企业研发了针对老年人的智能家居设备、智能穿戴设备等,通过这些设备为老年人提供生活照料、安全保障等服务。此外,还有一些地区建设了智慧养老服务平台,通过整合各类养老服务资源,为老年人提供更加便捷、高效的服务。
另一方面,国内学者也开始关注养老大数据的应用。他们提出利用大数据技术对老年人的健康数据、生活数据等进行挖掘和分析,为老年人提供更加个性化的服务。例如,中国老龄科学研究中心就建立了一个名为“中国老龄数据库”的数据平台,通过收集和分析老年人的各类数据,为政府、企业等提供决策支持。
国外研究现状:
在国外,智慧养老服务系统的研究与实践同样受到广泛关注。一方面,社区养老和家庭养老成为了重要的养老形式。社区养老可以为老年人提供更加贴近生活的服务,如社区健身、社交活动等;而家庭养老则得到了政府的支持和培训,帮助家庭更好地照顾老年人。
另一方面,国外的研究也集中在智能化服务系统、健康管理平台等方面。例如,一些国外企业研发了具有认知测试功能的iFit系统,通过老年人的认知测试数据,为其提供个性化的认知训练计划。此外,国外还开发了针对老年人的健康管理平台,通过收集和分析老年人的健康数据,为他们提供更加精准的健康管理服务。
同时,国外政府也通过养老保险制度为老年人提供经济支持,并鼓励老年人参与社会活动,保持生活的活力。此外,政府还为智慧养老系统的发展提供政策扶持,如提供补贴和奖励等,鼓励企业和机构开展智慧养老系统的研发和应用。
综上所述,国内外在智慧养老服务系统的研究与实践方面均取得了一定的成果和经验。然而,由于人口老龄化趋势的不断加剧和养老需求的多样化发展,我们仍需继续深入研究和探索更加完善、高效的智慧养老服务系统。
1.3论文结构与章节安排
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第一章:引言。第一章主要介绍了课题的研究背景和意义,选题开发的国内外研究现状和本文的研究内容与主要工作。
第二章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。
第三章:系统设计。主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
第六章:总结。
2.1 可行性分析
2.1.1技术可行性
互联网+智慧养老服务系统在技术上是完全可行的。SSM框架作为业界广泛使用的轻量级、开源的Java Web开发框架,具有成熟稳定、高效灵活的特点,能够满足互联网+智慧养老服务系统的技术需求。Spring提供全面的编程和配置模型,SpringMVC实现了模型-视图-控制器的设计模式,而MyBatis则简化了数据库操作。三者结合使用,可以确保系统具备良好的可扩展性、可维护性和稳定性。
2.1.2经济可行性
在开发互联网+智慧养老服务系统所使用的开发软件像IDEA开发工具、Tomcat8.0服务器、MySQL5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,并且互联网+智慧养老服务系统是自己设计并编码实现的,数据库是使用流行mysql进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。
2.1.3操作可行性
可操作性主要是对互联网+智慧养老服务系统设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、老人用户、医生用户、员工用户、护士用户这五种角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便用户信息的操作需求和管理员管理数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。本系统的操作使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。
2.2 需求分析
在设计和实现“互联网+智慧养老服务系统”之前,我们首先需要深入地进行需求分析和市场调研。这一环节旨在全面理解养老服务的需求和痛点,确保系统能够精准地满足老年人的生活需求和服务机构的运营要求。
我们深知,智慧养老服务系统不仅仅是一个技术产品,更是一个关乎老年人生活质量和社区服务效率的重要工具。因此,我们致力于打造一个既符合老年人使用习惯,又能高效支撑服务团队工作的系统。
明确用户需求:通过访谈、问卷等多种方式,我们深入了解老年人的日常生活习惯、健康状况、技术接受程度以及他们在养老过程中遇到的主要问题和需求。同时,我们也与服务机构沟通,探讨如何通过技术提升服务效率和质量。
系统性能与界面设计:系统必须具备良好的性能和稳定性,确保老年人的使用体验不受影响。在界面设计上,我们追求简洁明了,让老年人能够轻松上手。
业务流程与数据处理:我们深入分析养老服务的业务流程,确保系统能够无缝对接现有的服务流程,减少操作上的不便。在数据处理方面,我们重视数据的安全性和隐私保护,确保用户信息得到妥善保管。
持续学习与改进:智慧养老服务系统不是一成不变的,它需要随着用户需求和服务模式的变化而不断进化。因此,我们将为系统提供持续的学习和改进机制,确保它始终能够为用户提供最佳的服务体验。
综上所述,基于Spring Boot的“互联网+智慧养老服务系统”旨在通过技术手段解决养老服务中的实际问题,提升老年人的生活质量和社区服务的效率。我们期待这一系统能够为养老服务领域带来革命性的变革,让每一位老年人都能享受到更加美好、便捷的晚年生活。
2.3性能分析
在当今科技飞速发展的时代背景下,性能分析在“互联网+智慧养老服务系统”的设计与实现中占据了举足轻重的地位。传统的、依赖手动操作的性能管理方式,已然无法应对现代复杂系统的挑战。因此,我们积极引入自动化技术和智能化系统,致力于实现系统集成的自动化。
这种转变不仅极大提升了系统的运维效率,显著降低了工作人员的劳动强度,更在无形中增强了系统的可靠性,使其能够更好地适应社会发展的需求。通过深度融合先进的计算机科学和互联网技术,我们精心打造了一个具备高度弹性的智慧养老服务系统。
这一系统不仅功能强大、高效运作,而且能够显著降低运营成本,为用户提供无与伦比的体验。我们采用了前沿的数据库技术,确保系统能够迅速响应并满足用户的多样化需求。同时,通过精心的设计,实现了用户角色和功能模块的完美融合,使得管理更为高效、精准。
与传统的养老服务管理方式相比,这种智能化的系统不仅提升了业务处理速度,更在资源利用上实现了显著的节约。它不仅仅是一个工具,更是连接老年人与现代社会的桥梁,让养老服务更加人性化、智能化,为老年人带来更加舒适、便捷的晚年生活。
2.4 非功能性分析
互联网+智慧养老服务系统的非功能性需求比如系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1互联网+智慧养老服务系统非功能需求表
| 安全性 | 主要指互联网+智慧养老服务系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
| 可靠性 | 可靠性是指互联网+智慧养老服务系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
| 性能 | 性能是影响互联网+智慧养老服务系统占据市场的必要条件,所以性能最好要佳才好。 |
| 可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
| 易用性 | 用户只要跟着互联网+智慧养老服务系统的页面展示内容进行操作,就可以了。 |
| 可维护性 | 互联网+智慧养老服务系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.5 系统用例分析
老人用户用例图如下所示。

图2-1 老人用户用例图
医生用户用例图如下所示。

图2-2 医生用户用例图
员工用户用例图如下所示。

图2-3 员工用户用例图
管理员用例图如下所示。

图2-4 管理员用例图
护士用户用例图如下所示。

图2-5护士用户用例图
2.6 系统的流程分析
2.6.1登录流程

图2-6登录流程图
2.6.2添加信息流程
添加信息流程图,如下图所示:

图2-7添加信息流程图
2.6.3删除信息流程
删除信息流程图,如下图所示:

图2-8删除信息流程图
3.1 系统架构设计
互联网+智慧养老服务系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

图3-1 互联网+智慧养老服务系统架构设计图
表现层(UI):又称UI层,主要完成互联网+智慧养老服务系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用互联网+智慧养老服务系统时的舒适度。UI的界面设计也要适应不同版本的互联网+智慧养老服务系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成互联网+智慧养老服务系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于互联网+智慧养老服务系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成互联网+智慧养老服务系统的数据存储和管理功能。
3.2开发流程设计
互联网+智慧养老服务系统的开发对管理模块和系统使用的数据库进行分析,编写代开发,规划和操作是构建信息管理应用程序的必要三步曲,它决定了系统是否能够真正实现预设功能以及是否可以在成功设计后实施。在开发过程中,每个阶段必须严格按照线性顺序进行开发,并且在相应阶段生成的每个工作都可以通过技术进行验证和检查。确保一个阶段完成后是正确的,不会造成下一阶段拖拽现象,使系统完成设计功能后得到保证。
从互联网+智慧养老服务系统的成功开发经验来看,上述方法效果最为明显,最大程度地降低了系统开发的复杂性。如图3-2所示。

图3-2开发系统流程图
3.3系统功能模块设计
通过对互联网+智慧养老服务系统的功能需求分析以及用例分析,得出了互联网+智慧养老服务系统的功能模块图如图3-3所示。

3.4数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.4.1 数据库概念结构设计
下面是整个互联网+智慧养老服务系统中主要的数据库表总E-R实体关系图。

图3-4 系统总体ER图
3.4.2数据表
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 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 | position | varchar | 32 | 0 | Y | N | 位置: | |
| 8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
| 9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
| 10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
| 11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
| 12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
| 13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
| 14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
| 15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
| 16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
| 17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
| 18 | option | text | 65535 | 0 | Y | N | 配置: | |
| 19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | check_in_information_id | int | 10 | 0 | N | Y | 入住信息ID | |
| 2 | elderly_users | int | 10 | 0 | Y | N | 0 | 老人用户 |
| 3 | old_persons_name | varchar | 64 | 0 | Y | N | 老人姓名 | |
| 4 | gender_of_the_elderly | varchar | 64 | 0 | Y | N | 老人性别 | |
| 5 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
| 6 | bank_card_number | varchar | 64 | 0 | Y | N | 银行卡号 | |
| 7 | card_balance | varchar | 64 | 0 | Y | N | 卡内余额 | |
| 8 | room_type | varchar | 64 | 0 | Y | N | 房间类型 | |
| 9 | room_name | varchar | 64 | 0 | Y | N | 房间名称 | |
| 10 | room_expenses | int | 10 | 0 | Y | N | 0 | 房间费用 |
| 11 | stay_period | varchar | 64 | 0 | Y | N | 入住期限 | |
| 12 | check_in_time | date | 10 | 0 | Y | N | 入住时间 | |
| 13 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 15 | 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: |
表daily_medication_dispensing (日常配药)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | daily_medication_dispensing_id | int | 10 | 0 | N | Y | 日常配药ID | |
| 2 | nurse_users | int | 10 | 0 | Y | N | 0 | 护士用户 |
| 3 | nurses_name | varchar | 64 | 0 | Y | N | 护士姓名 | |
| 4 | elderly_users | int | 10 | 0 | Y | N | 0 | 老人用户 |
| 5 | old_persons_name | varchar | 64 | 0 | Y | N | 老人姓名 | |
| 6 | daily_medication_dispensing | text | 65535 | 0 | Y | N | 日常配药 | |
| 7 | disease_progression | text | 65535 | 0 | Y | N | 病程进度 | |
| 8 | elderly_condition | text | 65535 | 0 | Y | N | 老人状况 | |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | doctors_consultation_id | int | 10 | 0 | N | Y | 医生就诊ID | |
| 2 | filing_time | date | 10 | 0 | Y | N | 建档时间 | |
| 3 | visiting_doctor | int | 10 | 0 | Y | N | 0 | 就诊医生 |
| 4 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 5 | elderly_users | int | 10 | 0 | Y | N | 0 | 老人用户 |
| 6 | old_persons_name | varchar | 64 | 0 | Y | N | 老人姓名 | |
| 7 | gender_of_the_elderly | varchar | 64 | 0 | Y | N | 老人性别 | |
| 8 | elderly_phone_number | varchar | 64 | 0 | Y | N | 老人电话 | |
| 9 | bank_card_number | varchar | 64 | 0 | Y | N | 银行卡号 | |
| 10 | card_balance | varchar | 64 | 0 | Y | N | 卡内余额 | |
| 11 | disease_description | varchar | 64 | 0 | Y | N | 病情描述 | |
| 12 | diagnostic_results | varchar | 64 | 0 | Y | N | 诊断结果 | |
| 13 | treatment_plan | text | 65535 | 0 | Y | N | 治疗方案 | |
| 14 | prescription_medication | text | 65535 | 0 | Y | N | 开处方药 | |
| 15 | drug_expenses | int | 10 | 0 | Y | N | 0 | 药品费 |
| 16 | inspection_fee | int | 10 | 0 | Y | N | 0 | 检查费 |
| 17 | surgical_expenses | int | 10 | 0 | Y | N | 0 | 手术费 |
| 18 | total_cost | varchar | 64 | 0 | Y | N | 总费用 | |
| 19 | nurse_users | int | 10 | 0 | Y | N | 0 | 护士用户 |
| 20 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 21 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | doctor_information_id | int | 10 | 0 | N | Y | 医生信息ID | |
| 2 | doctor_users | int | 10 | 0 | Y | N | 0 | 医生用户 |
| 3 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 4 | doctors_department | varchar | 64 | 0 | Y | N | 医生科室 | |
| 5 | doctors_phone_number | varchar | 64 | 0 | Y | N | 医生电话 | |
| 6 | proficient_in_areas_of_expertise | varchar | 64 | 0 | Y | N | 擅长领域 | |
| 7 | doctors_photo | varchar | 255 | 0 | Y | N | 医生相片 | |
| 8 | visit_time | date | 10 | 0 | Y | N | 出诊时间 | |
| 9 | personal_profile | text | 65535 | 0 | Y | N | 个人简介 | |
| 10 | registration_fees | int | 10 | 0 | Y | N | 0 | 挂号费用 |
| 11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | doctor_users_id | int | 10 | 0 | N | Y | 医生用户ID | |
| 2 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 3 | doctors_gender | varchar | 64 | 0 | Y | N | 医生性别 | |
| 4 | doctors_phone_number | varchar | 64 | 0 | Y | N | 医生电话 | |
| 5 | doctors_department | varchar | 64 | 0 | Y | N | 医生科室 | |
| 6 | proficient_in_areas_of_expertise | varchar | 64 | 0 | Y | N | 擅长领域 | |
| 7 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 8 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | drugs_warehousing_id | int | 10 | 0 | N | Y | 药品入库ID | |
| 2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
| 3 | drug_number | varchar | 64 | 0 | Y | N | 药品编号 | |
| 4 | drug_type | varchar | 64 | 0 | Y | N | 药品类型 | |
| 5 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
| 6 | drug_inventory | int | 10 | 0 | Y | N | 0 | 药品库存 |
| 7 | warehousing_date | date | 10 | 0 | Y | N | 入库日期 | |
| 8 | receipt_quantity | int | 10 | 0 | Y | N | 0 | 入库数量 |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | drug_information_id | int | 10 | 0 | N | Y | 药品信息ID | |
| 2 | drug_number | varchar | 64 | 0 | Y | N | 药品编号 | |
| 3 | drug_type | varchar | 64 | 0 | Y | N | 药品类型 | |
| 4 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
| 5 | pharmaceutical_images | varchar | 255 | 0 | Y | N | 药品图片 | |
| 6 | drug_inventory | int | 10 | 0 | Y | N | 0 | 药品库存 |
| 7 | drug_introduction | varchar | 64 | 0 | Y | N | 药品介绍 | |
| 8 | drug_suppliers | varchar | 64 | 0 | Y | N | 药品供应商 | |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | drug_inventory_id | int | 10 | 0 | N | Y | 药品盘点ID | |
| 2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
| 3 | drug_number | varchar | 64 | 0 | Y | N | 药品编号 | |
| 4 | drug_type | varchar | 64 | 0 | Y | N | 药品类型 | |
| 5 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
| 6 | drug_inventory | int | 10 | 0 | Y | N | 0 | 药品库存 |
| 7 | inventory_time | date | 10 | 0 | Y | N | 盘点时间 | |
| 8 | inventory_quantity | int | 10 | 0 | Y | N | 0 | 入库数量 |
| 9 | outbound_quantity | int | 10 | 0 | Y | N | 0 | 出库数量 |
| 10 | number_of_reported_losses | int | 10 | 0 | Y | N | 0 | 报损数量 |
| 11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | drug_outbound_id | int | 10 | 0 | N | Y | 药品出库ID | |
| 2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
| 3 | drug_number | varchar | 64 | 0 | Y | N | 药品编号 | |
| 4 | drug_type | varchar | 64 | 0 | Y | N | 药品类型 | |
| 5 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
| 6 | drug_inventory | int | 10 | 0 | Y | N | 0 | 药品库存 |
| 7 | delivery_date | date | 10 | 0 | Y | N | 出库日期 | |
| 8 | outbound_quantity | int | 10 | 0 | Y | N | 0 | 出库数量 |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | elderly_files_id | int | 10 | 0 | N | Y | 老人档案ID | |
| 2 | elderly_users | int | 10 | 0 | Y | N | 0 | 老人用户 |
| 3 | old_persons_name | varchar | 64 | 0 | Y | N | 老人姓名 | |
| 4 | gender_of_the_elderly | varchar | 64 | 0 | Y | N | 老人性别 | |
| 5 | elderly_phone_number | varchar | 64 | 0 | Y | N | 老人电话 | |
| 6 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
| 7 | health_condition | text | 65535 | 0 | Y | N | 健康状况 | |
| 8 | satisfaction | text | 65535 | 0 | Y | N | 满意度 | |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | elderly_users_id | int | 10 | 0 | N | Y | 老人用户ID | |
| 2 | old_persons_name | varchar | 64 | 0 | Y | N | 老人姓名 | |
| 3 | gender_of_the_elderly | varchar | 64 | 0 | Y | N | 老人性别 | |
| 4 | elderly_phone_number | varchar | 64 | 0 | Y | N | 老人电话 | |
| 5 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
| 6 | bank_card_number | varchar | 64 | 0 | N | N | 银行卡号 | |
| 7 | card_balance | int | 10 | 0 | Y | N | 0 | 卡内余额 |
| 8 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 9 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | employee_files_id | int | 10 | 0 | N | Y | 员工档案ID | |
| 2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
| 3 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
| 4 | employee_phone_number | varchar | 64 | 0 | Y | N | 员工电话 | |
| 5 | work_experience | varchar | 64 | 0 | Y | N | 工作经历 | |
| 6 | skills_certificate | varchar | 255 | 0 | Y | N | 技能证书 | |
| 7 | personal_profile | text | 65535 | 0 | Y | N | 个人简介 | |
| 8 | employee_status | varchar | 64 | 0 | Y | N | 员工状态 | |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | employee_users_id | int | 10 | 0 | N | Y | 员工用户ID | |
| 2 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
| 3 | employee_gender | varchar | 64 | 0 | Y | N | 员工性别 | |
| 4 | employee_phone_number | varchar | 64 | 0 | Y | N | 员工电话 | |
| 5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表health_preservation_projects (养生项目)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | health_preservation_projects_id | int | 10 | 0 | N | Y | 养生项目ID | |
| 2 | health_title | varchar | 64 | 0 | Y | N | 养生标题 | |
| 3 | release_time | date | 10 | 0 | Y | N | 发布时间 | |
| 4 | health_pictures | varchar | 255 | 0 | Y | N | 养生图片 | |
| 5 | health_videos | varchar | 255 | 0 | Y | N | 养生视频 | |
| 6 | video_introduction | text | 65535 | 0 | Y | N | 视频简介 | |
| 7 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | 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 | 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 | nurse_users_id | int | 10 | 0 | N | Y | 护士用户ID | |
| 2 | nurses_name | varchar | 64 | 0 | Y | N | 护士姓名 | |
| 3 | nurse_gender | varchar | 64 | 0 | Y | N | 护士性别 | |
| 4 | nurses_phone_number | varchar | 64 | 0 | Y | N | 护士电话 | |
| 5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | nursing_home_room_id | int | 10 | 0 | N | Y | 养老院房间ID | |
| 2 | room_type | varchar | 64 | 0 | Y | N | 房间类型 | |
| 3 | room_name | varchar | 64 | 0 | Y | N | 房间名称 | |
| 4 | room_pictures | varchar | 255 | 0 | Y | N | 房间图片 | |
| 5 | room_expenses | int | 10 | 0 | Y | N | 0 | 房间费用 |
| 6 | room_status | varchar | 64 | 0 | Y | N | 房间状态 | |
| 7 | stay_period | varchar | 64 | 0 | Y | N | 入住期限 | |
| 8 | room_equipment | text | 65535 | 0 | Y | N | 房间设备 | |
| 9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | nursing_plan_id | int | 10 | 0 | N | Y | 护理计划ID | |
| 2 | nurse_users | int | 10 | 0 | Y | N | 0 | 护士用户 |
| 3 | nurses_name | varchar | 64 | 0 | Y | N | 护士姓名 | |
| 4 | elderly_users | int | 10 | 0 | Y | N | 0 | 老人用户 |
| 5 | old_persons_name | varchar | 64 | 0 | Y | N | 老人姓名 | |
| 6 | gender_of_the_elderly | varchar | 64 | 0 | Y | N | 老人性别 | |
| 7 | overall_plan | text | 65535 | 0 | Y | N | 总体计划 | |
| 8 | nursing_plan | text | 65535 | 0 | Y | N | 护理方案 | |
| 9 | nursing_outcomes | text | 65535 | 0 | Y | N | 护理结果 | |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表payment_reminder_notice (催款通知)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | payment_reminder_notice_id | int | 10 | 0 | N | Y | 催款通知ID | |
| 2 | elderly_users | int | 10 | 0 | Y | N | 0 | 老人用户 |
| 3 | old_persons_name | varchar | 64 | 0 | Y | N | 老人姓名 | |
| 4 | elderly_phone_number | varchar | 64 | 0 | Y | N | 老人电话 | |
| 5 | room_type | varchar | 64 | 0 | Y | N | 房间类型 | |
| 6 | room_name | varchar | 64 | 0 | Y | N | 房间名称 | |
| 7 | check_in_time | date | 10 | 0 | Y | N | 入住时间 | |
| 8 | stay_period | varchar | 64 | 0 | Y | N | 入住期限 | |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | recharge_information_id | int | 10 | 0 | N | Y | 充值信息ID | |
| 2 | elderly_users | int | 10 | 0 | Y | N | 0 | 老人用户 |
| 3 | old_persons_name | varchar | 64 | 0 | Y | N | 老人姓名 | |
| 4 | elderly_phone_number | varchar | 64 | 0 | Y | N | 老人电话 | |
| 5 | gender_of_the_elderly | varchar | 64 | 0 | Y | N | 老人性别 | |
| 6 | bank_card_number | varchar | 64 | 0 | Y | N | 银行卡号 | |
| 7 | card_balance | varchar | 64 | 0 | Y | N | 卡内余额 | |
| 8 | recharge_amount | int | 10 | 0 | Y | N | 0 | 充值金额 |
| 9 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
| 10 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
| 11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表registration_appointment (挂号预约)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | registration_appointment_id | int | 10 | 0 | N | Y | 挂号预约ID | |
| 2 | elderly_users | int | 10 | 0 | Y | N | 0 | 老人用户 |
| 3 | old_persons_name | varchar | 64 | 0 | Y | N | 老人姓名 | |
| 4 | gender_of_the_elderly | varchar | 64 | 0 | Y | N | 老人性别 | |
| 5 | elderly_phone_number | varchar | 64 | 0 | Y | N | 老人电话 | |
| 6 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
| 7 | bank_card_number | varchar | 64 | 0 | Y | N | 银行卡号 | |
| 8 | card_balance | varchar | 64 | 0 | Y | N | 卡内余额 | |
| 9 | doctor_users | int | 10 | 0 | Y | N | 0 | 医生用户 |
| 10 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 11 | doctors_department | varchar | 64 | 0 | Y | N | 医生科室 | |
| 12 | proficient_in_areas_of_expertise | varchar | 64 | 0 | Y | N | 擅长领域 | |
| 13 | registration_fees | int | 10 | 0 | Y | N | 0 | 挂号费用 |
| 14 | appointment_time | date | 10 | 0 | Y | N | 预约时间 | |
| 15 | disease_description | text | 65535 | 0 | Y | N | 病情描述 | |
| 16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | residing_information_id | int | 10 | 0 | N | Y | 退住信息ID | |
| 2 | elderly_users | int | 10 | 0 | Y | N | 0 | 老人用户 |
| 3 | old_persons_name | varchar | 64 | 0 | Y | N | 老人姓名 | |
| 4 | gender_of_the_elderly | varchar | 64 | 0 | Y | N | 老人性别 | |
| 5 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
| 6 | room_type | varchar | 64 | 0 | Y | N | 房间类型 | |
| 7 | room_name | varchar | 64 | 0 | Y | N | 房间名称 | |
| 8 | room_expenses | int | 10 | 0 | Y | N | 0 | 房间费用 |
| 9 | stay_period | varchar | 64 | 0 | Y | N | 入住期限 | |
| 10 | check_in_time | date | 10 | 0 | Y | N | 入住时间 | |
| 11 | residing_time | date | 10 | 0 | Y | N | 退住时间 | |
| 12 | reason_for_withdrawal | text | 65535 | 0 | Y | N | 退住理由 | |
| 13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 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 | mediumint | 8 | 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 | 创建时间: |
| 15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
| 16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
4.1注册模块
注册模块满足用户两部分,当用户想要查询处理相关信息时,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,这里以老人注册为例,主界面展示如下图所示。

图4.1 注册界面图
4.2登录模块
管理员、用户在登录界面输入账号+密码,完成验证,点击“登录”按钮,系统在用户数据库表中会对管理员、用户的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,这里以老人用户便当为例,其主界面展示如下图所示。

图4.2 登录界面图
登录关键代码如下所示。
/**
* 登录
* @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;
QueryWrapper wrapper = new QueryWrapper<User>();
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
public String select(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select ");
sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
}
if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
4.3密码修改模块
用户使用该系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败,下面的图片展示的就是该板块对应的界面。

图4.3 密码修改界面图
4.4新闻资讯模块
老人用户、医生用户、护士用户点击前台“新闻资讯”这个菜单,可以查看到系统中所有添加的新闻资讯信息,支持通过筛选、排序、局部搜索等方式进行查询,如果想要了解某一的新闻的详细信息,点击即可进入详情查看界面,详情页面可以进行查看、收藏、评论等操作。界面如下图所示。

图4.4 新闻资讯界面图
4.5养生项目模块
老人用户、医生用户、护士用户点击前台“养生项目”这个菜单,可以查看到系统中所有添加的养生项目信息,支持通过筛选、排序、局部搜索等方式进行查询,如果想要了解某一的养生项目的详细信息,点击即可进入详情查看界面,详情页面可以进行查看、收藏、评论等操作。界面如下图所示

图4.5养生项目界面图
4.6充值信息模块
老人用户点击个人中心的“充值信息”这个菜单,输入充值金额就可以进行充值。界面如下图所示。

图4.6充值信息界面图
4.7医生就诊模块
医生用户点击个人中心的“医生就诊”这个菜单,医生应能够使用系统记录和管理他们的就诊信息。这包括预约就诊、诊断记录、处方信息、医嘱等。医生应该能够查看和更新患者的病历信息,以便更好地提供医疗服务。界面如下图所示。

图4.7 医生就诊界面图
4.8护理计划模块
护士用户点击个人中心的“护理计划”这个菜单,护士应该能够创建和管理患者的护理计划。这包括制定护理目标、制定护理方案、安排护理时间表等。系统应该支持护士对护理计划的调整和更新,以确保患者得到及时和有效的护理服务老人日常。界面如下图所示。

图4.8 护理计划界面图
4.9药品信息模块
员工用户点击后台的“药品信息”这个菜单,员工需要能够管理系统中的药品信息,包括药品的名称、规格、生产厂家、库存数量等。员工可以对药品信息进行录入、修改和删除操作。界面如下图所示。

图4.9药品信息界面图
药品信息的关键代码如下:
@RequestMapping(value = {"/sum_group", "/sum"})
public Map<String, Object> sum(HttpServletRequest request) {
Query count = service.sum(service.readQuery(request), service.readConfig(request));
return success(count.getResultList());
}
4.10公共管理界面
管理员可以对系统前台展示的轮播图、公告信息进行增删改查,方便用户进行查看。公共管理界面如下图所示。

图4.10轮播图界面图

图4-11通知公告界面图
4.11系统用户管理界面
管理人员在“系统用户管理”这一菜单是中可以对用户和管理员进行管控。界面如下图所示。

图4.12系统用户管理界面图
系统用户管理关键代码如下所示。
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
4.12养老院房间界面
管理员在“养老院房间”这一菜单,管理员可以管理养老院的房间信息,包括房间编号、房间类型、入住情况等。界面如下图所示。

图4.13养老院房间管理界面图
4.13入住信息界面
管理员“入住信息”这一菜单,管理员可以管理老人用户的入住信息,包括入住时间、房间号、费用等。界面如下图所示。

图4.14入住信息界面图
4.14退住信息界面
管理员“退住信息”这一菜单,管理员可以管理老人用户的退住信息,包括退住时间、原因、结算情况等。界面如下图所示。

图4.15退住信息界面图
5.1系统测试的目的
程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需要测试程序,再测试过程中发现问题,并纠正它们,从而使系统更长时间稳定成熟。本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但对于长期使用而言是非常重要和必要系统的开发。
软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。
互联网+智慧养老服务系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在互联网+智慧养老服务系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。
5.2系统测试方法
在对互联网+智慧养老服务系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让互联网+智慧养老服务系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个互联网+智慧养老服务系统开发所牵扯的该问题都必须一一解决,提高互联网+智慧养老服务系统的安全性、稳定性。
白盒测试与黑盒测试是测试中比较常用的两种方法。
①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽谅解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。
②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。
5.3功能测试
用户登录测试:
| 模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
| 登录模块 | 用户名:admin 密码:123 | 弹出错误提示,提示密码错误 | 弹出错误提示,提示密码错误 | 通过 |
| 登录模块 | 用户名:123 密码:admin | 弹出错误提示,提示用户名错误 | 弹出错误提示,提示用户名错误 | 通过 |
| 登录模块 | 用户名:admin 密码:admin | 管理员登录成功 | 管理员登录成功 | 通过 |
删除分类测试:
| 模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
| 删除分类模块 | 分类名:最新通知 | 删除成功、页面自动跳转 | 删除成功、页面自动跳转 | 通过 |
修改密码测试:
| 模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
| 修改密码模块 | 原密码:666 新密码:123 确认密码:123 | 弹出错误提示,提示原密码错误 | 弹出错误提示,提示原密码错误 | 通过 |
| 修改密码模块 | 原密码:admin 新密码:123 确认密码:333 | 弹出错误提示,提示确认密码不一致 | 弹出错误提示,提示确认密码不一致 | 通过 |
| 修改密码模块 | 原密码:admin 新密码:123 确认密码:123 | 密码修改成功 | 密码修改成功 | 通过 |
通过对功能的测试,互联网+智慧养老服务系统的基本功能都是可行的,不管是系统里面的功能,还是界面的设计都是可值得推广宣传的。
至此,互联网+智慧养老服务系统的设计与实现已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如SSM、JAVA语言、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。
参考文献
[1]Cuong Q B ,Ranindya P ,Ly D V , et al.APR4Vul: an empirical study of automatic program repair techniques on real-world Java vulnerabilities[J].Empirical Software Engineering,2023,29(1):
[2]A D W ,R S ,V M .Landslide Prone Areas Analysis in Bandungan District, Semarang Regency, Central Java, Indonesia[J].IOP Conference Series: Earth and Environmental Science,2023,1268(1):
[3]Nurhadi B ,Arief M F ,Shofiyatul Q .Analysis of Vegetation Carbon Stock Using Remote Sensing In Penggaron Forest, Central Java Province[J].IOP Conference Series: Earth and Environmental Science,2023,1268(1):
[4]刘晓旭,吕志华,何润华.基于窄带物联网的养老院智能系统设计[J].现代信息科技,2024,8(02):154-157.DOI:10.19850/j.cnki.2096-4706.2024.02.033.
[2]白茹鑫.基于SpringBoot+SSM框架的企业安全培训管理系统设计与实现[J].现代信息科技,2024,8(01):44-49.DOI:10.19850/j.cnki.2096-4706.2024.01.009.
[6]袁爱平,陈畅,孙士兵等.基于SSM框架的高校学生信息管理系统设计与实现[J].工业控制计算机,2023,36(12):127-129.
[7]M R ,T A M ,S A .Morphological and molecular identification of java barb () from East Java Province[J].IOP Conference Series: Earth and Environmental Science,2023,1273(1):
[8]Volkan H A .WebCollectives: A light regular expression based web content extractor in Java[J].SoftwareX,2023,24
[9]文臻铭,吴钧皓.基于SSM框架的电力电缆附件电子商城系统设计与实现[J].工业控制计算机,2023,36(08):145-146+153.
[10]魏林,朱杨骁,蔡亚洲等.基于SSM的高校实验室设备故障报修综合管理平台设计与实现[J].电脑知识与技术,2023,19(23):57-59.DOI:10.14004/j.cnki.ckt.2023.1168.
[11]岳峰,段政伟.基于SSM的IMSI与人像采集比对系统设计与实现[J].工业控制计算机,2023,36(07):96-97.
[12]田斌.基于SSM框架的宠物医院系统设计[J].无线互联科技,2023,20(14):69-71.
[13]魏娇,白磊.基于智能数字化的智慧养老管理系统设计[J].鞋类工艺与设计,2022,2(24):168-170.
[14]张琴.互联网+智慧养老服务系统的设计与实现[J].信息与电脑(理论版),2022,34(13):158-160.
[15]周海峰,何勇.基于物联网技术的养老院人员安全健康监控系统设计[J].软件工程,2022,25(05):19-22.DOI:10.19644/j.cnki.issn2096-1472.2022.005.005.
[16]段昊鹏.基于物联网技术的互联网+智慧养老服务系统设计[J].物联网技术,2022,12(02):99-100+105.DOI:10.16667/j.issn.2095-1302.2022.02.027.
[17]周伟.基于分层计算和人工智能的虚拟养老院系统研究[D].上海师范大学,2021.DOI:10.27312/d.cnki.gshsu.2021.000844.
[18]商无冬.基于蓝牙Mesh的物联网养老院管理系统[D].南京邮电大学,2020.DOI:10.27251/d.cnki.gnjdc.2020.001192.
[19]李仁浩.基于物联网的养老院智能服药监测系统[D].安徽理工大学,2020.DOI:10.26918/d.cnki.ghngc.2020.000266.
[20]邹山花,方宁生,郑恺等.基于区块链的虚拟养老院生态系统设计与实现[J].制造业自动化,2020,42(05):123-124+141.
致 谢
这次毕业设计能够完成,最重要的就是来自指导老师的帮助,老师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设能够完成离不开老师的帮助。我对老师由衷的表示感谢,
其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。
由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
1063

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



