摘 要
随着社会老龄化的加剧,居家养老服务需求迅速增长。然而,传统居家养老模式面临资源分散、管理不便和效率低下等问题。本系统基于Spring Boot框架与MySQL数据库,专为居家养老服务设计,实现了老人用户、员工用户及管理员的功能分离。老人用户可访问首页、通知公告、新闻资讯等,并能提交服务申请及管理个人健康信息;员工用户负责服务申请审核、处理以及健康管理等;管理员则对系统进行全面管理,包括用户管理、服务类型管理、资源管理等。系统采用前后端分离设计,前端展示使用现代技术实现,确保用户体验。通过提供便捷的服务申请流程、个性化的健康管理以及高效的信息管理,不仅提升了服务质量,也增强了管理效率。这一平台使得老人能够享受更加贴心的居家养老服务,同时让管理人员可以更轻松地维护系统资源,从而整体提升居家养老的服务效率与用户体验。
关键词: Java;Spring Boot;居家养老管理系统;MySQL
Design and implementation of home-based elderly care management system
Abstract
With the intensification of the aging society, the demand for home-based elderly care services is growing rapidly. However, the traditional home-based elderly care model faces problems such as scattered resources, inconvenient management and low efficiency. Based on the Spring Boot framework and MySQL database, the system is designed for home care services, and realizes the separation of functions of elderly users, employee users and administrators. Elderly users can access the homepage, notices, news, etc., and can submit service applications and manage personal health information; Employee users are responsible for the review and processing of service applications and health management. The administrator manages the system comprehensively, including user management, service type management, resource management, etc. The system adopts a front-end and back-end separation design, and the front-end display is implemented using modern technology to ensure the user experience. By providing a convenient service application process, personalized health management and efficient information management, it not only improves service quality, but also enhances management efficiency. This platform enables the elderly to enjoy more intimate home care services, and at the same time allows managers to more easily maintain system resources, so as to improve the overall service efficiency and user experience of home care.
Keywords : Java;Spring Boot;home-based elderly care management system; MySQL
目 录
[第1章 绪 论](#第1章 绪 论)
[1.1 研究背景](#1.1 研究背景)
[1.2 选题目的和意义](#1.2 选题目的和意义)
[1.3 国内外研究现状](#1.3 国内外研究现状)
[第2章 关键技术介绍](#第2章 关键技术介绍)
[2.1 Java语言](#2.1 Java语言)
[2.2 Spring Boot框架](#2.2 Spring Boot框架)
[2.3 Vue框架](#2.3 Vue框架)
[2.4 B/S体系结构](#2.4 B/S体系结构)
[2.5 MySQL数据库](#2.5 MySQL数据库)
[第3章 系统分析](#第3章 系统分析)
[3.1 可行性分析](#3.1 可行性分析)
[3.1.1 技术可行性](#3.1.1 技术可行性)
[3.1.2 经济可行性](#3.1.2 经济可行性)
[3.1.3 操作可行性](#3.1.3 操作可行性)
[3.2 系统功能需求分析](#3.2 系统功能需求分析)
[3.3 非功能性需求分析](#3.3 非功能性需求分析)
[3.4 系统流程分析](#3.4 系统流程分析)
[第4章 系统设计](#第4章 系统设计)
[4.1 系统架构设计](#4.1 系统架构设计)
[4.2 功能模块设计](#4.2 功能模块设计)
[4.3 数据库设计](#4.3 数据库设计)
[4.3.1 概念设计](#4.3.1 概念设计)
[4.3.2 逻辑设计](#4.3.2 逻辑设计)
[第5章 系统实现](#第5章 系统实现)
[5.1 前端用户模块的实现](#5.1 前端用户模块的实现)
[5.1.1 用户登录界面](#5.1.1 用户登录界面)
[5.1.2 前台首页界面](#5.1.2 前台首页界面)
[5.1.3 通知公告界面](#5.1.3 通知公告界面)
[5.1.4 新闻资讯界面](#5.1.4 新闻资讯界面)
[5.1.5 服务申请界面](#5.1.5 服务申请界面)
[5.1.6 个人中心界面](#5.1.6 个人中心界面)
[5.2 员工用户管理模块的实现](#5.2 员工用户管理模块的实现)
[5.2.1 服务申请管理界面](#5.2.1 服务申请管理界面)
[5.2.2 服务处理管理界面](#5.2.2 服务处理管理界面)
[5.2.3 健康信息管理界面](#5.2.3 健康信息管理界面)
[5.2.4 访客记录管理界面](#5.2.4 访客记录管理界面)
[5.3 后台管理员模块的实现](#5.3 后台管理员模块的实现)
[5.3.1 系统用户界面](#5.3.1 系统用户界面)
[5.3.2 健康提醒管理界面](#5.3.2 健康提醒管理界面)
[5.3.3 系统管理界面](#5.3.3 系统管理界面)
[5.3.4 资源管理界面](#5.3.4 资源管理界面)
[第6章 系统测试](#第6章 系统测试)
[6.1 测试目的](#6.1 测试目的)
[6.2 测试类型](#6.2 测试类型)
[6.3 功能测试](#6.3 功能测试)
[6.4 可用性测试](#6.4 可用性测试)
[6.5 测试结果分析](#6.5 测试结果分析)
[第7章 结 论](#第7章 结 论)
[致 谢](#致 谢)
[附 录](#附 录)
- 绪 论
- 研究背景
随着社会老龄化问题的日益凸显,居家养老服务需求呈现出快速增长的趋势。传统的居家养老模式依赖于人工管理和服务提供,存在服务响应慢、资源分配不均和信息处理效率低下等问题。此外,老年人及其家庭在获取服务资讯、健康管理以及生活辅助等方面面临诸多不便,这不仅影响了老年人的生活质量,也给服务提供者带来了巨大的管理挑战。与此同时,信息技术的发展为改善这一现状提供了可能,通过数字化手段整合服务资源、优化流程成为提升居家养老服务水平的关键。
在此背景下,开发一个基于信息技术的居家养老管理系统显得尤为重要。系统利用Spring Boot框架、Java编程语言以及MySQL数据库等现代技术,旨在构建一个集成了用户管理、服务申请、健康信息管理、通知公告发布等功能于一体的综合服务平台。它不仅可以支持老人用户便捷地提交服务请求、查看健康提醒、接收通知公告,还能够帮助员工用户和管理员高效地进行服务审核、资源管理和信息维护等工作,从而适应现代社会对居家养老服务的高要求。
-
- 选题目的和意义
本项目的目的是设计并实现一个居家养老管理系统,通过利用现代信息技术来整合和优化居家养老服务的管理流程。该系统旨在为老年人提供一个便捷的平台,使他们能够方便地申请所需服务、获取健康提醒及接收最新的通知公告,同时支持员工用户和管理员高效地进行服务处理、资源管理和信息维护,以应对传统居家养老服务中存在的效率低下和资源分散问题。
本研究的意义在于探索如何利用先进的技术手段提升居家养老服务的质量与效率,进而改善老年人的生活质量。通过开发这样一个系统,不仅可以缓解传统居家养老模式中普遍存在的管理不便和服务响应慢的问题,还能够为养老服务机构提供一套有效的数字化解决方案,促进养老服务行业的现代化转型。此外,系统的实施对于推动社会对老龄化问题的关注,以及鼓励更多基于信息技术的创新养老服务模式的发展也具有重要意义。
-
- 国内外研究现状
在国内,居家养老管理系统的研究与应用起步相对较晚,但随着老龄化问题的日益严重,近年来得到了快速发展。最初的研究主要集中在借鉴国外经验和技术的基础上进行本土化改进,如健康监测设备的应用、紧急呼叫系统的建立等。随着信息技术的发展,特别是物联网、大数据和人工智能技术的引入,国内的居家养老管理系统逐渐向智能化、个性化服务方向发展,并且在一些发达地区已经开始试点智能养老服务模式,包括线上服务平台的搭建和服务流程的优化。
在国外,尤其是发达国家,居家养老管理系统的研究已经有较长的历史,早期主要关注于如何提高老年人的生活独立性和安全性,比如通过安装紧急响应系统和健康监控设备来实现。随着时间推移,研究重点转向了利用先进的信息技术提升服务质量,如采用云计算、物联网和移动互联网技术开发多功能集成平台,提供从健康管理到社交互动等一系列服务。此外,还特别注重用户隐私保护和数据安全等问题的研究,确保老年用户的个人信息安全。
国内外对于居家养老管理系统的研究均经历了从简单硬件设施的提供到基于先进信息技术的服务平台建设的转变过程。虽然各国国情不同,但在促进老年人生活质量提升方面有着共同的目标。当前,智能化、个性化服务成为发展趋势,同时对数据安全和隐私保护的关注也在不断增加。这表明未来居家养老管理系统的发展将更加依赖于技术创新,同时也需要考虑伦理和社会影响
- 关键技术介绍
- Java语言
Java是一种跨平台的高级编程语言[1],具有广泛应用于各个领域的优势。它拥有简单易学、可靠稳定、安全性强和良好的性能等特点。在居家养老管理系统中,Java将作为主要的后端编程语言来实现系统的核心功能[2]。通过使用Java,我们可以实现数据的处理、业务逻辑的编写以及与前端界面的交互。同时,Java还提供了丰富的类库和开发工具,方便开发人员进行系统设计和开发。
-
- Spring Boot框架
Spring Boot[3],作为Spring生态系统中一颗璀璨的明星,以其"约定优于配置"的核心理念,极大地简化了Java应用的开发、部署与管理流程。它并非是对Spring框架的颠覆,而是在其基础上进行了深度封装与优化,旨在快速搭建独立的、生产级别的Spring应用[4]。Spring Boot通过自动配置功能,减少了大量繁琐的配置工作,让开发者能够更加专注于业务逻辑的实现。同时,它集成了众多常用库,如数据库连接池、缓存、消息队列等,为开发者提供了一站式的解决方案。此外,Spring Boot还支持多种部署方式,无论是传统的WAR包部署,还是现代的容器化部署,都能轻松应对。因此,选择Spring Boot作为居家养老管理系统的开发框架,不仅能够提升开发效率,还能确保系统的稳定性和可维护性。
-
- Vue框架
Vue框架[5]是一个用于构建用户界面的渐进式JavaScript框架,旨在通过简洁的API和高效的数据绑定机制简化Web应用的开发过程。它允许开发者创建可复用的组件,实现视图层的快速开发,并且能够轻松地与其他库或现有项目集成。Vue的核心库专注于视图层,同时其生态系统提供了包括路由管理、状态管理和工具支持等丰富的扩展能力,使得开发者可以构建出复杂而高效的单页应用(SPA)或多页应用。凭借其灵活性、易学性和强大的功能,Vue已经成为现代Web开发中最受欢迎的前端框架之一。
-
- B/S体系结构
B/S(Browser/Server)结构是一种用于WEB应用程序的架构模式[6],用户通过浏览器与服务器进行交互。与传统的C/S(Client/Server)架构相比,B/S结构具有更好的普适性和简便性,用户无需安装客户端软件,只需通过浏览器即可访问应用,降低了维护和升级的成本。
-
- MySQL数据库
MySQL数据库[7],作为开源关系型数据库管理系统的佼佼者,以其高性能、可靠性、易用性和灵活性,在全球范围内被广泛应用于各类企业级应用中。MySQL采用SQL(结构化查询语言)作为数据操作的标准语言,支持复杂的查询、数据更新、索引优化等功能,确保数据的高效存取和完整性。其强大的事务处理能力,为业务逻辑的原子性、一致性、隔离性和持久性提供了坚实保障。此外,MySQL还具备高度的可配置性和可扩展性,通过优化存储引擎、调整配置参数等手段,可以轻松应对高并发、大数据量的应用场景。在居家养老管理系统中,MySQL作为后端数据存储的核心[8],不仅为系统提供了稳定可靠的数据支持,还通过其丰富的数据操作功能,助力系统实现复杂的业务逻辑和高效的数据管理。
- 系统分析
- 可行性分析
- 技术可行性
- 可行性分析
基于Spring Boot开发的居家养老管理系统,能够高效处理数据并提供稳定的服务。Spring Boot简化了开发流程,提升了开发效率,而MySQL则保证了数据存储的安全性和可靠性。采用的数据加密技术和权限管理策略有效保护用户隐私,确保系统在技术层面的高度可行。
-
-
- 经济可行性
-
从经济角度考量,本系统的开发和维护成本在可控范围内,且预期的投资回报率较高。初期投入主要包括软件开发、硬件采购和人员培训等方面,但通过合理的预算规划和资源分配,可以有效控制成本。更重要的是,系统上线后将显著提升居家养老管理系统的运营效率,减少人工干预,降低管理成本。
-
-
- 操作可行性
-
在操作可行性方面,本系统设计注重用户体验,采用了直观易用的界面设计,并提供详细的帮助文档支持,确保用户可以轻松上手使用各项功能。无论是用户还是后台管理员,都能通过简洁明了的操作流程完成信息查询和管理等任务。因此,从用户操作的角度来看,本系统具备良好的操作可行性。
-
- 系统功能需求分析
本居家养老管理系统旨在通过信息化手段提升老年人的生活质量和养老服务的效率。系统主要分为三个角色:老人用户、员工用户和管理员,每个角色都拥有特定的功能模块来满足其需求,包括但不限于服务申请、健康管理、信息公告和个人账户管理等。具体功能描述如下:
- 老人用户模块:
首页:提供最新通知公告和新闻资讯的浏览功能,方便老人了解最新的服务信息。
通知公告:老人可以查看由管理员发布的各类通知,确保不错过任何重要信息。
新闻资讯:获取与健康、娱乐相关的新闻资讯,丰富日常生活。
服务申请:提交服务请求,如医疗预约、家政服务等,并可查看申请状态。
我的账户:修改个人信息及密码,保障账户安全。
个人中心:集中展示个人的服务申请记录、健康信息、收藏等内容,便于管理个人资料。
老人用户角色用例图如下所示。

图3-1 老人用户用例图
- 员工用户模块:
系统用户:查看并管理所有注册老人用户的基本信息,确保数据准确无误。
服务申请管理:对老人提交的服务申请进行审核,确保服务的有效性和及时性。
服务处理管理:跟踪和处理已批准的服务申请,保证服务质量。
健康信息管理:录入老人的健康信息,并设置定期健康提醒。
健康提醒管理:根据老人的健康状况发送个性化的健康提醒,促进健康管理。
访客记录管理:记录来访者的访问信息,增强安全性。
通知公告管理:发布通知公告,保持与老人用户的沟通。
员工用户角色用例图如下所示。

图3-2 员工用户用例图
- 管理员模块:
系统用户:全面管理所有用户账号,包括创建、删除和权限分配。
服务类型管理:定义和管理可提供的服务类型,以适应不同的需求。
服务申请管理:监督所有服务申请的状态,确保高效的服务流程。
服务处理管理:协调资源解决服务申请中的问题,提高服务响应速度。
健康信息管理:维护整个系统的健康信息数据库,支持健康决策。
健康提醒管理:配置全局健康提醒规则,辅助员工用户更好地进行健康管理。
访客记录管理:监控和管理员工添加的访客记录,确保机构安全。
系统管理:更新系统首页的轮播图内容,展示最新资讯和服务亮点。
通知公告管理:发布公告信息,确保所有用户能够接收到重要通知。
资源管理:管理和分类上传至系统的新闻资讯,方便用户查找感兴趣的信息。
管理员角色用例图如下所示。

图3-3 管理员用例图
-
- 非功能性需求分析
系统非功能需求指的是性能需求,即对一个系统的性能需求进行分析和定义的过程。在进行性能需求分析时,因此居家养老管理系统的设计与实现主要需要考虑以下几个方面的性能需求:
响应时间:响应时间是指系统在接收到请求后,作出响应的时间。根据具体的业务需求和用户体验要求,可以确定系统在不同场景下的响应时间要求。
吞吐量:吞吐量是指系统在一定时间内处理的事务或请求的数量。根据业务需求和用户量的估计,可以确定系统需要支持的最大吞吐量。
并发用户数:并发用户数是指系统在同时使用的用户数量。根据预期的用户量和并发访问需求,可以确定系统需要支持的最大并发用户数。
可扩展性:可扩展性是指系统在面对用户量增加或并发访问需求增加时,能否通过增加硬件资源或调整系统架构来满足需求。根据预期的用户增长和扩展计划,可以确定系统需要具备的可扩展性要求。
故障处理能力:系统对故障的处理能力是指在出现错误或故障时,系统能够快速、准确地识别、定位并处理故障的能力。根据业务的重要性和对故障处理的要求,可以确定系统需要具备的故障处理能力。
安全性:系统在性能需求分析中,也需考虑安全方面的需求,如数据的保密性、完整性和可用性等。根据具体的安全需求和合规要求,可以确定系统需要满足的安全性需求。
通过对这些性能需求进行详细分析和定义,可以为居家养老管理系统的设计和开发提供指导,确保系统在满足预期的性能需求的同时,具备良好的性能和可靠性。
-
- 系统流程分析
居家养老管理系统支撑整个机构不同层面的多种职能,而各功能模块间存在着多种关联信息,组成一个有机整体,并针对就业数据自身特点和面临的现实条件,对系统进行流程图设计。活动图是一种用于对系统的动态行为建模的另一种常用图表,通常用于可视化展示系统中各个活动的执行顺序、流程控制和数据交互,展现从一个活动到另一个活动的控制流,活动图在本质上是一种流程图;但活动图着重表现从一个活动到另一个活动的控制流。因此,这里列举了2个业务活动图。
(1)用户登录查询的业务流程如下。
用户注册登录,系统从数据库获取用户数据信息,登录成功用户进入查询页面,用户输入查询关键字,数据库查询用户所输入的关键字,查询成功显示查询的模块信息,查询失败不显示。用户登录查询功能的活动图如图3-4所示。

图3-4 用户登录查询活动图
(2)管理员添加信息的业务流程如下。
此活动图描述了管理员添加信息。管理员可以通过信息管理模块页面选择要添加的基本信息。添加成功传入数据库中,失败则不添加。管理员可以保存信息并更新系统中的信息。管理员添加信息功能的活动图如图3-5所示。

图3-5 管理员添加信息活动图
- 系统设计
- 系统架构设计
居家养老管理系统的架构设计包括客户端、服务器端、第三方集成、安全性和权限控制、扩展性和性能优化、高可用性和容错性等方面。客户端通过Web浏览器访问系统,而服务器端负责接收和处理请求,并提供功能和数据。系统采用分层架构,包括表现层、业务逻辑层、数据访问层和数据库。同时,系统需考虑与其他系统的集成、安全性和权限控制、扩展性和性能优化、高可用性和容错性等方面的问题。这样的架构设计将确保系统的稳定性、可扩展性和安全性,为用户提供稳定、高效的使用体验。系统架构图如下图所示。

图4-1 系统架构图
-
- 功能模块设计
系统采用了B/S模式,这一模式不仅极大提升了开发效率,也使得前端的模块化开发得到了更好的支持。通过这种架构,前端的可维护性和可扩展性都得到了优化。此外,界面的设计注重视觉效果与交互体验的平衡,确保用户能够轻松上手并享受流畅的操作体验。用户能够通过简洁明了的界面进行注册、登录及个人资料管理等功能,同时也能方便快捷地浏览和搜索信息。这种设计不仅提升了系统的易用性,也确保了用户能够高效完成他们的需求。系统总体功能模块图如下图所示。

图4-2 系统功能模块图
-
- 数据库设计
- 概念设计
- 数据库设计
借助先进的系统,E-R图使其他用户可以快速轻松地了解系统的功能以及他们之间的关系。根据居家养老管理系统分析结果,本居家养老管理系统总体E-R图如下图所示。

图4-3 系统总体E-R图
-
-
- 逻辑设计
-
逻辑结构设计则细化了概念模型,定义了具体的数据表、字段类型及约束条件,如用户表包含用户ID、用户名、密码等字段,并设置了主键和外键以确保数据的完整性和一致性。居家养老管理系统所需要的部分数据结构表如下表所示。
表 4-1-access_token(登陆访问时长)
|----|-------------|-----------|-------|------|------|------------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | token_id | int | | 是 | 是 | 临时访问牌ID |
| 2 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
| 3 | info | text | 65535 | 否 | 否 | 信息 |
| 4 | maxage | int | | 是 | 否 | 最大寿命:默认2小时 |
| 5 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 6 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 7 | user_id | int | | 是 | 否 | 用户编号 |
表 4-2-article(文章)
|----|-------------|-----------|------------|------|------|------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | article_id | mediumint | | 是 | 是 | 文章id |
| 2 | title | varchar | 125 | 是 | 是 | 标题 |
| 3 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 4 | hits | int | | 是 | 否 | 点击数 |
| 5 | praise_len | int | | 是 | 否 | 点赞数 |
| 6 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 7 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 8 | source | varchar | 255 | 否 | 否 | 来源 |
| 9 | url | varchar | 255 | 否 | 否 | 来源地址 |
| 10 | tag | varchar | 255 | 否 | 否 | 标签 |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img | varchar | 255 | 否 | 否 | 封面图 |
| 13 | description | text | 65535 | 否 | 否 | 文章描述 |
表 4-3-article_type(文章分类)
|----|-------------|-----------|-------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | smallint | | 是 | 是 | 分类ID |
| 2 | display | smallint | | 是 | 否 | 显示顺序 |
| 3 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 4 | father_id | smallint | | 是 | 否 | 上级分类ID |
| 5 | description | varchar | 255 | 否 | 否 | 描述 |
| 6 | icon | text | 65535 | 否 | 否 | 分类图标 |
| 7 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 8 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 9 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-4-auth(用户权限管理)
|----|----------------|-----------|-------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | auth_id | int | | 是 | 是 | 授权ID |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
| 3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 4 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 6 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 8 | parent_sort | int | | 是 | 否 | 父级菜单排序 |
| 9 | position | varchar | 32 | 否 | 否 | 位置 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | add | tinyint | | 是 | 否 | 是否可增加 |
| 12 | del | tinyint | | 是 | 否 | 是否可删除 |
| 13 | set | tinyint | | 是 | 否 | 是否可修改 |
| 14 | get | tinyint | | 是 | 否 | 是否可查看 |
| 15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | option | text | 65535 | 否 | 否 | 配置 |
| 21 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 22 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-5-code_token(验证码)
|----|---------------|-----------|-----|------|------|-------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | code_token_id | int | | 是 | 是 | 验证码ID |
| 2 | token | varchar | 255 | 否 | 否 | 令牌 |
| 3 | code | varchar | 255 | 否 | 否 | 验证码 |
| 4 | expire_time | timestamp | | 是 | 否 | 失效时间 |
| 5 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 6 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-6-collect(收藏)
|----|--------------|-----------|-----|------|------|-------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | collect_id | int | | 是 | 是 | 收藏ID |
| 2 | user_id | int | | 是 | 是 | 收藏人ID |
| 3 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | | 是 | 否 | 来源ID |
| 6 | title | varchar | 255 | 否 | 否 | 标题 |
| 7 | img | varchar | 255 | 否 | 否 | 封面 |
| 8 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 9 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-7-comment(评论)
|----|--------------|-----------|------------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | comment_id | int | | 是 | 是 | 评论ID |
| 2 | user_id | int | | 是 | 是 | 评论人ID |
| 3 | reply_to_id | int | | 是 | 否 | 回复评论ID |
| 4 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 5 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 6 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 7 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 8 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 11 | source_id | int | | 是 | 否 | 来源ID |
表 4-8-elderly_users(老人用户)
|----|-----------------------|-----------|----|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | elderly_users_id | int | | 是 | 是 | 老人用户ID |
| 2 | old_mans_name | varchar | 64 | 否 | 否 | 老人姓名 |
| 3 | age_of_the_elderly | varchar | 64 | 否 | 否 | 老人年龄 |
| 4 | gender_of_the_elderly | varchar | 64 | 否 | 否 | 老人性别 |
| 5 | old_man_phone | varchar | 64 | 否 | 否 | 老人电话 |
| 6 | praise_len | int | | 是 | 否 | 点赞数 |
| 7 | collect_len | int | | 是 | 否 | 收藏数 |
| 8 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 9 | user_id | int | | 是 | 否 | 用户ID |
| 10 | create_time | datetime | | 是 | 否 | 创建时间 |
| 11 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-9-employee_user(员工用户)
|----|------------------|-----------|----|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | employee_user_id | int | | 是 | 是 | 员工用户ID |
| 2 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
| 3 | employee_phone | varchar | 64 | 否 | 否 | 员工电话 |
| 4 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 5 | user_id | int | | 是 | 否 | 用户ID |
| 6 | create_time | datetime | | 是 | 否 | 创建时间 |
| 7 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-10-health_information(健康信息)
|----|-----------------------------|-----------|-------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | health_information_id | int | | 是 | 是 | 健康信息ID |
| 2 | employee_user | int | | 否 | 否 | 员工用户 |
| 3 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
| 4 | elderly_users | int | | 否 | 否 | 老人用户 |
| 5 | old_mans_name | varchar | 64 | 否 | 否 | 老人姓名 |
| 6 | age_of_the_elderly | varchar | 64 | 否 | 否 | 老人年龄 |
| 7 | gender_of_the_elderly | varchar | 64 | 否 | 否 | 老人性别 |
| 8 | old_man_phone | varchar | 64 | 否 | 否 | 老人电话 |
| 9 | health_status | varchar | 64 | 否 | 否 | 健康状况 |
| 10 | archives_of_the_elderly | varchar | 255 | 否 | 否 | 老人档案 |
| 11 | record_date | date | | 否 | 否 | 记录日期 |
| 12 | detailed_description | text | 65535 | 否 | 否 | 详情描述 |
| 13 | health_reminder_limit_times | int | | 是 | 否 | 提醒限制次数 |
| 14 | create_time | datetime | | 是 | 否 | 创建时间 |
| 15 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-11-health_reminder(健康提醒)
|----|-----------------------|-----------|-------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | health_reminder_id | int | | 是 | 是 | 健康提醒ID |
| 2 | reminder_type | varchar | 64 | 否 | 否 | 提醒类型 |
| 3 | employee_user | int | | 否 | 否 | 员工用户 |
| 4 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
| 5 | elderly_users | int | | 否 | 否 | 老人用户 |
| 6 | old_mans_name | varchar | 64 | 否 | 否 | 老人姓名 |
| 7 | age_of_the_elderly | varchar | 64 | 否 | 否 | 老人年龄 |
| 8 | gender_of_the_elderly | varchar | 64 | 否 | 否 | 老人性别 |
| 9 | old_man_phone | varchar | 64 | 否 | 否 | 老人电话 |
| 10 | health_status | varchar | 64 | 否 | 否 | 健康状况 |
| 11 | reminder_details | text | 65535 | 否 | 否 | 提醒详情 |
| 12 | create_time | datetime | | 是 | 否 | 创建时间 |
| 13 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 14 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 15 | source_id | int | | 否 | 否 | 来源ID |
| 16 | source_user_id | int | | 否 | 否 | 来源用户 |
表 4-12-hits(用户点击)
|----|--------------|-----------|-----|------|------|------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | hits_id | int | | 是 | 是 | 点赞ID |
| 2 | user_id | int | | 是 | 否 | 点赞人 |
| 3 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 4 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | | 是 | 否 | 来源ID |
表 4-13-notice(公告)
|----|-------------|-----------|------------|------|------|------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | notice_id | mediumint | | 是 | 是 | 公告ID |
| 2 | title | varchar | 125 | 是 | 否 | 标题 |
| 3 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 4 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 5 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-14-praise(点赞)
|----|--------------|-----------|-----|------|------|----------------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | praise_id | int | | 是 | 是 | 点赞ID |
| 2 | user_id | int | | 是 | 是 | 点赞人 |
| 3 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 4 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | | 是 | 否 | 来源ID |
| 8 | status | tinyint | | 是 | 否 | 点赞状态:1为点赞,0已取消 |
表 4-15-service_processing(服务处理)
|----|-----------------------|-----------|-------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | service_processing_id | int | | 是 | 是 | 服务处理ID |
| 2 | service_order_number | varchar | 64 | 否 | 否 | 服务单号 |
| 3 | elderly_users | int | | 否 | 否 | 老人用户 |
| 4 | old_mans_name | varchar | 64 | 否 | 否 | 老人姓名 |
| 5 | age_of_the_elderly | varchar | 64 | 否 | 否 | 老人年龄 |
| 6 | gender_of_the_elderly | varchar | 64 | 否 | 否 | 老人性别 |
| 7 | old_man_phone | varchar | 64 | 否 | 否 | 老人电话 |
| 8 | service_type | varchar | 64 | 否 | 否 | 服务类型 |
| 9 | application_date | date | | 否 | 否 | 申请日期 |
| 10 | employee_user | int | | 否 | 否 | 员工用户 |
| 11 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
| 12 | employee_phone | varchar | 64 | 否 | 否 | 员工电话 |
| 13 | service_processing | varchar | 64 | 否 | 否 | 服务处理 |
| 14 | service_details | text | 65535 | 否 | 否 | 服务详情 |
| 15 | create_time | datetime | | 是 | 否 | 创建时间 |
| 16 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 17 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 18 | source_id | int | | 否 | 否 | 来源ID |
| 19 | source_user_id | int | | 否 | 否 | 来源用户 |
表 4-16-service_request(服务申请)
|----|--------------------------------|-----------|-------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | service_request_id | int | | 是 | 是 | 服务申请ID |
| 2 | service_order_number | varchar | 64 | 否 | 否 | 服务单号 |
| 3 | elderly_users | int | | 否 | 否 | 老人用户 |
| 4 | old_mans_name | varchar | 64 | 否 | 否 | 老人姓名 |
| 5 | age_of_the_elderly | varchar | 64 | 否 | 否 | 老人年龄 |
| 6 | gender_of_the_elderly | varchar | 64 | 否 | 否 | 老人性别 |
| 7 | old_man_phone | varchar | 64 | 否 | 否 | 老人电话 |
| 8 | service_type | varchar | 64 | 否 | 否 | 服务类型 |
| 9 | application_date | date | | 否 | 否 | 申请日期 |
| 10 | application_remarks | text | 65535 | 否 | 否 | 申请备注 |
| 11 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 12 | examine_reply | varchar | 255 | 否 | 否 | 审核回复 |
| 13 | service_processing_limit_times | int | | 是 | 否 | 录入限制次数 |
| 14 | create_time | datetime | | 是 | 否 | 创建时间 |
| 15 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-17-service_type(服务类型)
|----|-----------------|-----------|----|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | service_type_id | int | | 是 | 是 | 服务类型ID |
| 2 | service_type | varchar | 64 | 否 | 否 | 服务类型 |
| 3 | create_time | datetime | | 是 | 否 | 创建时间 |
| 4 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-18-slides(轮播图)
|----|-------------|-----------|-----|------|------|-------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | slides_id | int | | 是 | 是 | 轮播图ID |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | content | varchar | 255 | 否 | 否 | 内容 |
| 4 | url | varchar | 255 | 否 | 否 | 链接 |
| 5 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 6 | hits | int | | 是 | 否 | 点击量 |
| 7 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 8 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-19-upload(文件上传)
|----|-----------|---------|-----|------|------|------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | upload_id | int | | 是 | 是 | 上传ID |
| 2 | name | varchar | 64 | 否 | 否 | 文件名 |
| 3 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 6 | father_id | int | | 否 | 否 | 父级ID |
| 7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-20-user(用户账户)
|----|-------------|-----------|-----|------|------|-----------------------------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_id | int | | 是 | 是 | 用户ID |
| 2 | state | smallint | | 是 | 否 | 账户状态:(1可用|2异常|3已冻结|4已注销) |
| 3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 4 | login_time | timestamp | | 是 | 否 | 上次登录时间 |
| 5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 6 | phone_state | smallint | | 是 | 否 | 手机认证:(0未认证|1审核中|2已认证) |
| 7 | username | varchar | 16 | 是 | 否 | 用户名 |
| 8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 9 | password | varchar | 64 | 是 | 否 | 密码 |
| 10 | email | varchar | 64 | 否 | 否 | 邮箱 |
| 11 | email_state | smallint | | 是 | 否 | 邮箱认证:(0未认证|1审核中|2已认证) |
| 12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 14 | create_time | timestamp | | 是 | 否 | 创建时间 |
表 4-21-user_group(用户组)
|----|--------------|-----------|-----|------|------|-------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | group_id | mediumint | | 是 | 是 | 用户组ID |
| 2 | display | smallint | | 是 | 否 | 显示顺序 |
| 3 | name | varchar | 16 | 是 | 否 | 名称 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | | 是 | 否 | 来源ID |
| 8 | register | smallint | | 否 | 否 | 注册位置 |
| 9 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 10 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-22-visitor_records(访客记录)
|----|----------------------|-----------|-------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | visitor_records_id | int | | 是 | 是 | 访客记录ID |
| 2 | employee_user | int | | 否 | 否 | 员工用户 |
| 3 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
| 4 | visitors_name | varchar | 64 | 否 | 否 | 访客姓名 |
| 5 | visitors_phone | varchar | 64 | 否 | 否 | 访客电话 |
| 6 | visitors_age | varchar | 64 | 否 | 否 | 访客年龄 |
| 7 | recording_time | datetime | | 否 | 否 | 记录时间 |
| 8 | reasons_for_visiting | text | 65535 | 否 | 否 | 来访原因 |
| 9 | create_time | datetime | | 是 | 否 | 创建时间 |
| 10 | update_time | timestamp | | 是 | 否 | 更新时间 |
- 系统实现
- 前端用户模块的实现
- 用户登录界面
- 前端用户模块的实现
老人用户和员工用户的账户由管理员添加,用户拿到初始账号密码后可以进行登录修改。用户登录模块允许用户通过输入用户名和密码进入系统,系统会验证凭据的正确性并生成会话令牌以保持登录状态。成功登录后,用户可直接跳转至首页或其他功能页面,未匹配的凭据则提示重新输入或找回密码。用户登录界面如下图所示。

图5-1 用户登录界面
-
-
- 前台首页界面
-
首页模块旨在为用户提供一个直观且易于操作的界面,集中展示最新的通知公告、新闻资讯以及个性化推荐的服务项目。用户登录后,能够直接在首页查看到自己可能感兴趣的内容和服务,同时通过轮播图展示重要活动或消息,增强用户体验和互动性前台首页界面如下图所示。

图5-2 前台首页界面
-
-
- 通知公告界面
-
通知公告模块允许老人用户方便快捷地获取由管理员发布的各类重要通知,包括服务更新、健康讲座信息及紧急事项等。通知公告界面如下图所示。

图5-3 通知公告界面
-
-
- 新闻资讯界面
-
新闻资讯模块提供丰富多样的健康生活、娱乐休闲等方面的最新资讯。用户可以根据个人兴趣选择不同的分类进行阅读,每条资讯均配有简洁明了的标题和摘要,点击即可展开阅读全文。此外,该模块还支持收藏功能,方便用户随时回顾喜欢的文章。新闻资讯界面如下图所示。

图5-4 新闻资讯界面
-
-
- 服务申请界面
-
服务申请模块使老人用户能够轻松提交所需的各种服务请求,用户只需填写简单的表单信息,包括姓名、联系方式和服务类型等必要字段,即可完成申请过程。提交后的申请将自动进入审核流程,用户还能通过此模块实时跟踪申请状态,确保服务顺利进行。服务申请展示界面如下图所示。

图5-5 服务申请界面
-
-
- 个人中心界面
-
个人中心模块作为用户管理个人信息的核心区域,集成了账户设置、服务记录、健康信息和个人收藏等多项功能。老人用户可以在此修改个人资料、查看历史服务记录、管理健康数据以及收藏感兴趣的内容。此外,该模块提供了安全便捷的密码修改选项,增强了账户的安全性和私密性。用户个人中心界面如下图所示。

图5-6 用户个人中心界面
-
- 员工用户管理模块的实现
- 服务申请管理界面
- 员工用户管理模块的实现
服务申请管理模块为后台员工用户提供了一个全面的平台,用于审核老人用户提交的各项服务请求。员工可以通过该模块查看所有待处理的服务申请列表,根据申请详情进行逐一审核,并决定是否批准或驳回申请。服务申请审核界面如下图所示。

图5-7 服务申请审核界面
-
-
- 服务处理管理界面
-
服务处理管理模块旨在帮助后台员工有效跟进已批准的服务申请,确保各项服务能够按时、高质量地完成。员工可以在此模块中跟踪每一个服务项目的进度状态,分配相应的执行人员,并记录服务过程中出现的问题及解决方案。服务处理界面如下图所示。

图5-8 服务处理界面
-
-
- 健康信息管理界面
-
健康信息管理模块使后台员工能够集中管理和维护老人用户的健康数据。通过这个模块,员工可以轻松录入新的健康检查结果、疾病历史以及药物使用情况等关键信息,同时设置个性化的健康提醒,如定期体检通知或药物服用提醒。健康信息管理界面如下图所示。

图5-9 健康信息管理界面
添加健康提醒界面如下图所示。

图5-10 添加健康提醒界面
-
-
- 访客记录管理界面
-
访客记录管理模块允许后台员工添加和管理来访者的记录,增强机构的安全性和秩序。员工可以在每次有访客进入时,记录访客的基本信息、访问目的及时间等重要细节。访客记录添加界面如下图所示。

图5-11 访客记录添加界面
-
- 后台管理员模块的实现
- 系统用户界面
- 后台管理员模块的实现
系统用户管理模块为管理员提供了一个全面的工具集,用于管理所有系统中的用户,包括老人用户和员工用户。管理员可以通过此模块轻松执行用户账户的创建、删除以及权限调整等操作,并能查看用户的详细信息及活动记录。系统用户界面如下图所示。

图5-12 系统用户界面
-
-
- 健康提醒管理界面
-
健康提醒管理模块允许管理员管理所有老人用户的健康提醒信息,以辅助员工更好地进行老年人健康管理。健康提醒管理界面如下图所示。

图5-13 健康提醒管理界面
-
-
- 系统管理界面
-
系统管理中的轮播图管理模块为管理员提供了便捷的方式来更新系统首页展示的轮播图内容,以吸引用户关注最新资讯和服务亮点。管理员可以通过上传图片或视频素材,并添加相应的标题和链接,来定制轮播图的内容和顺序。轮播图管理界面如下图所示。

图5-17 轮播图管理界面
-
-
- 资源管理界面
-
资源管理模块使管理员能够有效地组织和管理平台上的新闻资讯和相关资源,确保信息的准确性和时效性。管理员可以在此模块中对各类资源进行分类整理,如健康知识、娱乐新闻等,并支持新增、编辑或删除资讯内容的操作。资源管理界面如下图所示。

图5-18 资源管理界面
- 系统测试
- 测试目的
系统的测试目的在于确保居家养老管理系统在功能、性能、安全性和用户体验等方面均达到预期标准。通过全面的测试,验证各模块的正确性和稳定性,确保不同类型的用户能够顺畅地使用系统完成各自的任务。同时,测试还致力于发现并修正潜在的问题和缺陷,优化系统响应速度和数据处理能力,保障系统的可靠运行,并为用户提供一个安全、高效、便捷的购物和服务平台。
-
- 测试类型
检测系统是否合格,需要用到很多的测试类型。接下来就对这部分内容进行描述。
功能测试:这是系统测试中,首先进行的测试内容,其属于黑盒测试。主要检验制作的系统与需求说明文档的相符程度,还有它们之间存在的差异问题。
性能测试:主要测试制作的系统,在同时面对很多的用户请求时,该系统的应对能力。同时也是检查制作的系统跟事先预定的系统性能存在的差距问题。这样的方法通常在实时系统中,或者是嵌入式系统中运用得比较多。
容量测试:这种方法针对数据。检查正常运行的系统对数据处理的容量值。
安全性测试:这种方法常用于检验系统中设置的安全保护机制对来自非法用户的攻击时是否有效。而检测系统中的信息保护机制就需要使用常见安全测试中的保护测试来验证。
健壮性测试:这种测试还有一个别称是容错测试,通常运用故障插入法来检测系统的容错能力,看系统是否可以忽略故障保持继续运行,或者是检测系统应对故障时的自动恢复能力。
兼容性测试:面对计算机的各种软硬件环境,检测本系统是否可以兼容。
易用性测试:这种方法主要是面向用户,检测用户是否很容易理解和使用系统。
-
- 功能测试
居家养老管理系统在经历最后的测试环节,需要检验本系统的功能安全性,功能适用性等内容,最终得出测试结论。
表6-1 功能测试数据表
|-----------|------|
| 测试内容 | 测试结果 |
| 系统功能的适用性 | 符合要求 |
| 系统功能的依从性 | 符合要求 |
| 系统功能的安全性 | 符合要求 |
| 系统功能的准确性 | 符合要求 |
| 系统功能的可操作性 | 符合要求 |
-
- 可用性测试
通常来说,一个布局合理,显示的内容无错别字,并具备合理正常的操作逻辑的系统往往很受欢迎,而且可以提升访问者的使用时间以及访问率。
表6-2 可用性测试数据表
|----------------|------|
| 测试内容 | 测试结果 |
| 检查系统的操作逻辑合不合理 | 合理 |
| 检查系统的功能布局合不合理 | 合理 |
| 检查系统能否支持鼠标和键盘 | 能 |
| 检查系统反馈的提示有无错别字 | 无 |
| 检查系统功能有无友好性 | 有 |
| 检查系统页面能否正常关闭 | 能 |
| 检查系统各数据项有无错误 | 无 |
| 检查系统有无提供帮助信息 | 有 |
-
- 测试结果分析
居家养老管理系统经过了编码阶段的单元测试,和最后的系统整体测试等测试后,对于用户要求的功能,本系统都进行了实现,各个模块都运行正常。在面对一些故障性问题时,本系统也有相应的应对办法,并且本系统可以保持24小时正常运转。因此,基于大数据的面向高校的居家养老管理系统可以交付用户使用。
- 结 论
通过居家养老管理系统的开发,本人巩固了之前学过的知识,如今将平时所学到的知识融合在设计中,在设计过程中,做了很多的准备,首先,在数据库系统的设计过程中,尤其是在数据库的工作原理、工作特点,对其深刻的讨论,与此同时,对于小型站点来说,最好服务器的选择,其次,利用所学的知识点分析所做的系统,并在此基础上设计。
目前本系统已经上线,正在试运行阶段,用户反馈良好,基本完成用户所需,试运行过程中没有出现阻断性问题,有一些不足和小问题也及时予以修正,系统上线后,为了保证数据的安全性,对系统进行了备份操作,系统备份是每两个月备份一次,数据库备份为每周备份一次,系统部署在租赁的云平台服务器中。
本次系统上线成功后,得到了用户的高度认可,但是在功能上和性能上还需做进一步的研究处理,使其有更高的性能和更好的用户体验。系统在以后的升级过程中,需要解决一系列用户所提出的问题,例如访问过程中如何避免浏览器的兼容性问题,大量用户访问时,如何保持较高的响应速度,在系统今后的升级过程中将着重解决这些安全性问题。
参考文献
- 陈敬宗.计算机软件Java编程特点与技术应用分析[J].中国信息界,2025,(01):162-164.
- 柯灵.Java编程语言在计算机软件开发中的应用与问题处理探析[J].电脑知识与技术,2024,20(27):45-47.
- 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
- 李兴华,马云涛.Spring开发实战[M].人民邮电出版社:202303.381.
- 秦冬. 浅析Vue框架在前端开发中的应用 [J]. 信息与电脑(理论版), 2024, 36 (13): 61-63.
- 黄维.基于B/S模式的虚拟网络实验室安全管理体系分析[J].信息系统工程,2024,(05):4-7.
- 李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.
- 肖睿,李鲲程,范效亮,等.MySQL数据库应用技术及实践[M].人民邮电出版社:202206.228.
- 张婷婷,卜天然,马莉.云平台下居家养老智能医疗推荐反馈系统的设计[J].电脑知识与技术,2025,21(02):7-11.
- Benveniste T ,Smith R D ,Gupta C C , et al.Compassion Fatigue in Out of Home Care Workers: A Systematic Review[J].Residential Treatment for Children & Youth,2025,42(1):51-79.
- Tschorn N ,Keuchel M ,Müller I , et al.Iterative Design of a Decision Support System for Fall Risk Detection in residential care facilities[J].Current Directions in Biomedical Engineering,2024,10(4):653-656.
- Findlay M G ,Robertson N .How Do Home Care Workers Experience A Client's Death, Professionally and Personally? A Systematic Review and Meta-Synthesis.[J].Omega,2024,302228241302431.
- 聂思美,汪霖.老年人智能化系统的室内空间设计[J].上海轻工业,2024,(06):50-52.
- 陈润卿.新时代居家养老临终期长者家庭照护者支持体系优化研究[C]//浙江树人学院.夕阳群体的朝阳研究------2024·新医科大健康学术研讨会康养专题论文集.江苏联合职业技术学院无锡卫生分院康复保健系;,2024:28-34.
- 刘亚娜,林慧娟.社区养老共同体:系统生态、体系框架与构建路径[J].桂海论丛,2024,40(04):73-84.
- 魏长帅.智慧居家养老产品服务系统设计研究[D].山东建筑大学,2024.
- 赵曼,邢怡青.人工智能赋能的居家社区养老服务发展及其生态系统优化策略研究[J].社会保障研究,2024,(02):16-25.
- 宋佳琪.社区居家智慧养老存在问题与对策研究[D].山东财经大学,2024.
- 杜文君.面向积极老龄化的社区自治养老系统服务设计研究[D].天津理工大学,2024.
- 魏建兵.基于物联网技术的智能居家养老看护系统设计研究[J].华东科技,2024,(03):41-43.
致 谢
在这篇论文即将完成之际,我想用真挚的心意向一些特别的人们表达我的感激之情。
我要衷心感谢我的父母和家人。他们一直以来给予我无私的支持和鼓励,是我坚强的后盾。他们的理解与支持让我能够专注于学业,并为我提供了一个温暖的家庭环境。没有他们,我无法顺利完成这篇论文。
接下来,我要感谢我的导师。感谢您在整个研究过程中给予我的耐心指导和宝贵建议。您的专业知识和经验对我产生了深远的影响。您的教诲和指导使我能够更好地理解和运用所学知识,在研究中取得了显著的进展。我非常感激您的辛勤付出和悉心指导。
此外,我要感谢我的同学和朋友们。在这段学习旅程中,你们给予了我无尽的支持和鼓励。我们一起度过了难忘的时光,互相帮助、相互学习。你们的智慧和见解为我提供了新的思路和灵感,使我的论文更加丰富和有深度。
最后,我要感谢所有为这篇论文提供支持和帮助的人们,包括实验室的工作人员、图书馆的工作人员以及其他相关专业领域的专家和学者。你们的专业知识和资源为我的研究提供了重要的支持和参考,使我能够深入探索和展示我的观点。
在完成这篇论文的过程中,我不仅获得了学术上的收获,还结交了许多宝贵的友谊和支持。再次向所有给予我帮助和支持的人们表示衷心的感谢!
附 录
系统关键代码
登录代码如下:
/**
* 登录
* @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<>()));
}
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());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
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, "账号或密码不正确");
}
}
注册代码如下:
/**
* 注册
* @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);
}
找回密码代码如下:
/**
* 找回密码
* @param form
* @return
*/
@PostMapping("forget_password")
public Map<String, Object> forgetPassword(@RequestBody User form,HttpServletRequest request) {
JSONObject ret = new JSONObject();
String username = form.getUsername();
String code = form.getCode();
String password = form.getPassword();
// 判断条件
if(code == null || code.length() == 0){
return error(30000, "验证码不能为空");
}
if(username == null || username.length() == 0){
return error(30000, "用户名不能为空");
}
if(password == null || password.length() == 0){
return error(30000, "密码不能为空");
}
// 查询用户
Map<String, String> query = new HashMap<>();
query.put("username",username);
List list = service.selectBaseList(service.select(query, service.readConfig(request)));
if (list.size() > 0) {
User o = (User) list.get(0);
JSONObject query2 = new JSONObject();
JSONObject form2 = new JSONObject();
// 修改用户密码
query2.put("user_id",o.getUserId());
form2.put("password",service.encryption(password));
service.update(query, service.readConfig(request), form2);
return success(1);
}
return error(70000,"用户不存在");
}
修改密码代码如下:
/**
* 修改密码
* @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,"密码修改失败!");
}
增删查改代码如下:
增
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
删
@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());
}
改
@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);
}
图片/文件/视频等的上传方法通过MultipartFile,代码如下:
@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("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
}