随着人们对健康关注度的提高和医疗技术的不断发展,健康管理日益受到重视。传统的健康管理方式受到时间和空间的限制,无法提供个性化的健康管理方案和全面的健康监测。因此,开发一种智能健康管理系统成为迫切的需求。
Health Guardian智能健康管理伴侣管理系统的设计和实现的主要目的是提供一个智能健康管理伴侣的健康管理平台,该系统作为一个健康管理伴侣,能提高用户和医生的沟通和联系,帮助用户实现个性化的健康管理和全面的健康监测。实现集人性化、高效率、便捷性等优点于一身的HealthGuardian智能健康管理伴侣管理系统,完成系统用户、饮食记录管理、运动记录管理、健康目标管理、饮食计划管理、运动计划管理、健康监测管理、健康提醒管理、用药提醒管理、医疗信息管理、系统管理、通知公告管理、资源管理、交流管理等功能模块。
关键词:Java;HealthGuardian智能健康管理伴侣;MySQL;Springboot
Abstract
With the increasing attention to health and the continuous development of medical technology, health management is increasingly valued. Traditional health management methods are limited by time and space, and cannot provide personalized health management plans and comprehensive health monitoring. Therefore, developing an intelligent health management system has become an urgent need.
The main purpose of designing and implementing the Health Guardian intelligent health management partner management system is to provide a health management platform for intelligent health management partners. As a health management partner, the system can improve communication and contact between users and doctors, help users achieve personalized health management and comprehensive health monitoring. Implement a HealthGuardian intelligent health management partner management system that combines the advantages of humanization, high efficiency, and convenience, completing system user, dietary record management, exercise record management, health goal management, dietary plan management, exercise plan management, health monitoring management, health reminder management, medication reminder management, medical information management, system management, notification and announcement management, resource management, etc Communication management and other functional modules.
Keywords: Java; HealthGuardian intelligent health management partner; MySQL;Springboot
目 录
2 HealthGuardian智能健康管理伴侣管理系统分析
3 HealthGuardian智能健康管理伴侣管理系统总体设计
1 绪论
1.1 研究背景
随着人们对健康关注度的提高和医疗技术的不断发展,健康管理日益受到重视。传统的健康管理方式受到时间和空间的限制,无法提供个性化的健康管理方案和全面的健康监测。因此,开发一种智能健康管理伴侣管理系统成为迫切的需求。
该系统通过浏览器与服务器进行通信,实现数据的交互与变更,通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。HealthGuardian智能健康管理伴侣管理系统通过使用Java语言的强大功能和灵活性,结合Spring Boot框架的优势以及MySQL数据库的高效数据存储和管理能力,将开发一个功能全面、高效便捷的智能健康管理伴侣管理系统。
HealthGuardian智能健康管理伴侣管理系统的设计和实现的主要目的是提供一个人性化、高效率、便捷的智能健康管理伴侣的健康管理平台,具有以下研究意义:
为用户提供全面的健康管理和健康监测服务:该管理系统将采用智能化的方式为用户提供个性化的健康管理记录和健康监测服务,帮助用户实现日常生活的健康目标、饮食计划和运动计划。
提高提高用户和医生的沟通效率:医生用户可以通过该系统及时了解用户的健康状况,提供及时的建议和指导,以便更好地监测和管理用户的健康。
数据统计与分析:管理系统将会收集并分析用户的健康相关数据,通过数据分析和建模,能够为用户提供更好的参考和决策依据。
提高健康管理效率:该系统将减少传统健康管理方式中的时间和空间限制,提供更便捷、高效的健康管理服务,提升用户的健康管理效果。
综上所诉,该系统作为一个HealthGuardian健康管理伴侣系统,可以为用户提供便捷、快速的健康管理信息获取渠道,提高用户和医生的沟通和联系,帮助用户实现个性化的健康管理和全面的健康监测,提升用户的满意度和忠诚度,同时也可以提高健康管理的效率和效益。
本文共分为六章,章节内容安排如下:
第一章为引言,此章节对所设计和实现的系统的背景和状况以及意义进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章就是对系统的实现,根据系统功能的划分,分别对系统所需要实现的前台客户功能和后台管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
2 HealthGuardian智能健康管理伴侣管理系统分析
系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析得准确可以精准地解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。
系统可行性分析是对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律层面的可行性上进行分析,如果三个层面都通过,我们则认为系统是比较可行的。
2.1.1 技术可行性分析
Springboot 是一种常用的Java Web开发框架,能够实现分层架构,提高开发效率和代码复用性。HealthGuardian智能健康管理伴侣管理系统在数据的存储上使用的MySQL数据库,在系统开发中使用了Java、HTML、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。结合Springboot和Java技术,可以快速搭建一个功能强大、性能稳定的HealthGuardian智能健康管理伴侣管理系统。因此,从技术层面分析是可行的。
Springboo框架是开源的,拥有大量的社区支持和丰富的学习资源。使用SSM框架进行开发可以降低开发成本,缩短开发周期。此外,Springboo框架具备良好的性能和稳定性,可以降低系统的运行成本和维护成本。因此,从经济角度分析是可行的。
本系统实现功能的操作很简单,普通电脑的常见配置就可以运行本软件,并且只要粗通电脑使用的基本常识就可以流畅地使用本软件。电脑具备连接互联网的能力,并且可以正常访问系统,并不需要操作者有什么高超的能力,只需了解业务流程,并且按照专业知识进行正确操作即可,所以,具备操作可行性。
根据用户对系统的需求,要求系统简单操作,能够准确、安全和完整的对信息进行管理。对HealthGuardian智能健康管理伴侣做需求做解析后,该系统主要分为普通用户、医生用户和管理员三大模块。
普通用户模块:
(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现咨询医生、资讯和运动记录等操作,就必须有这个系统的账号,如果没有账号的话,可以注册普通用户进行相关的操作,同时用户还可以通过“我的”这一按钮对个人信息以及操作的信息进行管控。
(2)首页:包含了首页、轮播图、新闻资讯、通知公告等信息。
(3)通知公告:当用户点击“通知公告”这一菜单按钮,会显示管理员在后台发布的所有的通知公告,可以查看详情。
(4)社区论坛:支持局部搜索、发布内容(封面图、标题、分类、标签、正文),可进行点赞、收藏、评论
(5)新闻资讯:当用户点击“新闻资讯”这一菜单按钮,会显示管理员在后台发布的所有的新闻资讯,支持局部搜索,点击可查看详情,可进行点赞、收藏、评论。
(6)饮食记录:可对饮食信息进行记录,包括用户信息、用户姓名、联系电话、记录日期、饮食名称、饮食数量、饮食卡路里、营养信息、饮食备注。
(7)运动记录:可对运动信息进行记录,包括用户信息、用户姓名、联系电话、记录日期、运动名称、运动数量、运动时长、运动强度、运动记录。
(8)健康目标:可对健康目标进行记录,包括户信息、用户姓名、联系电话、目标内容、进度状态、 完成进度。
(9)饮食计划:可对饮食计划进行记录,包括计划名称、用户信息、用户姓名、联系电话、计划内容、计划备注。
(10)运动计划:可对运动计划进行记录,包括计划名称、用户信息、用户姓名、联系电话、运动名称、计划内容。
(11)健康监测:可对健康信息进行记录监测,包括用户信息、用户姓名、联系电话、心率信息、步数信息、睡眠信息。
(12)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改进行管控。
(13)个人中心:用户在前台点击“个人中心”可以对个人首页、饮食记录、运动记录、健康目标、饮食计划、运动计划、健康监测、健康提醒、用药提醒、医疗信息、收藏等信息进行管理,可点击查看详情,并进行增改删查等操作。
医生用户模块:
(1)登录:医生用户根据管理员添加的账号信息进行登录系统。
(2)饮食计划管理:支持计划名称、用户姓名搜索,可查询所有用户提交的饮食计划,点击详情可填写对普通用户的饮食建议。
(3)运动计划管理:支持计划名称、运动名称搜索,可查询所有用户提交的运动计划,点击详情可填写对普通用户的运动建议。
(4)健康监测管理:支持用户姓名搜索,可查询所有用户提交的健康监测,点击详情可对普通用户发送健康报告。
(5)医疗信息管理:支持病例名称、用户姓名搜索,可查询医生用户提交的医疗信息,点击可查看详情,并进行添加(病例名称、医生用户、用户信息、联系电话、医疗内容、检查结果、医疗诊断、处方内容、病历附件)等操作
管理员管理模块:
(1)后台首页:管理员在后台首页查看用户的健康目标统计数据分析。
(2)系统用户:可以对普通用户、医生用户和管理员等用户进行管控,医生用户由管理员添加,点击可查看详情,可进行增删改查等操作。
(3)饮食记录管理:支持用户姓名、饮食名称搜索,可查询所有用户提交的饮食记录,点击可查看详情,并进行增删改查等操作。
(4)运动记录管理:支持用户姓名、运动名称搜索,可查询所有用户提交的运动记录,点击可查看详情,并进行增删改查等操作。
(5)健康目标管理:支持目标名称、进度状态搜索,可查询所有用户提交的健康目标,点击可查看详情,并进行增删改查等操作。
(6)饮食计划管理:支持计划名称、用户姓名搜索,可查询所有用户提交的饮食计划,点击可查看详情,并进增删改查等操作。
(7)运动计划管理:支持计划名称、运动名称搜索,可查询所有用户提交的运动计划,点击可查看详情,并进行增删改查等操作。
(8)健康监测管理:支持提醒标题搜索,可查询医生用户提交的健康提醒(提醒标题、用户信息、提醒日期、提醒内容、注意事项、提醒备注),点击可查看详情,并进行增删改查等操作
(9)健康提醒管理:可查询所有对用户提交的健康提醒(提醒标题、用户信息、提醒日期、提醒内容、注意事项、提醒备注),点击可查看详情,并进行增删改查等操作。
(10)用药提醒管理:支持提醒标题搜索,可查询所有对用户提交用药提醒(提醒标题、用户信息、提醒日期、用药内容、用药备注),点击可查看详情,并进行增删改查等操作。
(11)医疗信息管理:支持病例名称、用户姓名搜索,可查询医生用户提交的医疗信息(病例名称、医生用户、用户信息、联系电话、医疗内容),点击可查看详情,并进行增删改查等操作。
(12)系统管理:管理员点击“系统管理”菜单可以对首页展示的轮播图进行管理,支持标题搜索,可进行增删改查操作。
(13)通知公告管理:管理员点击“通知公告管理”菜单可以查看到系统中的所有通知公告信息,支持标题搜索,可进行增删改查操作。
(14)资源管理:可以对新闻资讯和新闻分类进行管理,点击可查看详情和评论,可进行增删改查操作。
(15)交流管理:对社区论坛和论坛分类进行管理,支持标题、分类搜索,点击可查看详情和评论,可进行增删改查操作。
HealthGuardian智能健康管理伴侣管理系统的非功能性需求比如HealthGuardian智能健康管理伴侣管理系统的安全性怎么样,可靠性怎么样,性能怎么样,可扩展性怎么样等。具体可以表示在如下2-1表格中:
表2-1HealthGuardian智能健康管理伴侣管理系统非功能需求表
安全性 | 主要指HealthGuardian智能健康管理伴侣管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指HealthGuardian智能健康管理伴侣管理系统能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响HealthGuardian智能健康管理伴侣管理系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着HealthGuardian智能健康管理伴侣管理系统的页面展示内容进行操作,就可以了。 |
可维护性 | HealthGuardian智能健康管理伴侣管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
对HealthGuardian智能健康管理伴侣做需求做解析后,该系统主要分为普通用户、医生用户和管理员三大模块。该系统的用户角色用例图分别是图2-1、图2-2和图2-3。
图2-1就是普通用户角色的用例展示。
图2-1 普通用户角色用例图
图2-2就是医生用户角色的用例展示。
图2-2 医生用户角色用例图
图2-3就是管理员角色的用例展示。
图2-3 管理员角色用例图
2.4.1 数据增加流程
用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图2-4显示的就是在增加数据时的流程。
图2-4数据增加流程图
2.4.2 数据修改流程
数据修改时的流程和上面介绍的数据增加时的流程差不多,如图2-5所示。
图2-5数据修改流程图
2.4.3 数据删除流程
如果系统里面存在一些没有用的数据的话,相关的管理人员还可以对这些数据进行删除,图2-6就是数据删除时的流程图。
图2-6数据删除流程图
本章主要通过对HealthGuardian智能健康管理伴侣管理系统的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个HealthGuardian智能健康管理伴侣管理系统要实现的功能。同时也为HealthGuardian智能健康管理伴侣管理系统的代码实现和测试提供了标准。
3 HealthGuardian智能健康管理伴侣管理系统总体设计
本章主要讨论的内容包括HealthGuardian智能健康管理伴侣管理系统的功能模块设计、数据库系统设计。
3.1 系统功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了HealthGuardian智能健康管理伴侣管理系统中的用例。那么接下来就要开始对HealthGuardian智能健康管理伴侣管理系统的架构、主要功能和数据库开始进行设计。HealthGuardian智能健康管理伴侣管理系统根据前面章节的需求分析得出,其总体设计模块图如图3-1所示。
图3-1 系统功能模块图
3.1.2用户模块设计
本系统的用户包括后台管理员和前台用户,两种用户模块的功能基本是相同的,用户比管理员多了一个注册功能,所以以用户模块的结构图为例进行分析,用户模块结构图为例进行分析,如下图:
图3-2用户模块结构图
3.1.3评论管理模块设计
HealthGuardian智能健康管理伴侣管理系统是一个交流性质的公开平台,用户在平台上提交评论,增加用户之间的互动性。但是同时也为了更好地规范评论的内容,给予管理员删除不合适的评论的功能,所以需要专门设计一个评论管理模块,具体的结构图如下:
图3-3评论管理模块结构图
HealthGuardian智能健康管理伴侣管理系统中需要存储不少记录信息,包括饮食记录、运动记录等信息记录,这里以饮食记录管理模块为例,普通用户可以添加提交饮食记录信息,管理员可以查询所有用户提交的饮食记录,点击可查看详情,并进行查询、删除等操作,具体的结构图如下:
图3-4饮食记录管理模块结构图
3.1.5运动计划管理模块设计
HealthGuardian智能健康管理伴侣管理系统中需要存储不少计划信息,包括健康目标、饮食计划、运动计划等计划信息,这里以运动计划管理模块为例,普通用户可以添加提交运动计划信息,管理员和医生可查询和删除所有用户提交的运动计划,且医生点击详情可填写对普通用户的运动建议,具体的结构图如下:
图3-5运动计划管理模块结构图
HealthGuardian智能健康管理伴侣管理系统中需要进行健康监测,普通用户可以提交运动计划信息,管理员和医生可查询所有用户提交的健康监测,且医生点击详情可对普通用户发送健康报告,具体的结构图如下:
图3-6健康监测管理模块结构图
HealthGuardian智能健康管理伴侣管理系统中需要存储不少提醒信息,包括健康提醒、用药提醒等提醒信息,这里以健康提醒管理模块为例,管理员对所有用户进行健康提醒,并进行增删改查等操作,具体的结构图如下:
图3-7健康提醒管理模块结构图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.2.1 数据库概念结构设计
下面是整个HealthGuardian智能健康管理伴侣管理系统中主要的数据库表总E-R实体关系图。
图3-6 系统总E-R关系图
3.2.2 数据库逻辑结构设计
通过上一小节中HealthGuardian智能健康管理伴侣管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
表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 | 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 | 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 | dietary_plan_id | int | 10 | 0 | N | Y | 饮食计划ID | |
2 | plan_name | varchar | 64 | 0 | Y | N | 计划名称 | |
3 | user_information | int | 10 | 0 | Y | N | 0 | 用户信息 |
4 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
5 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
6 | plan_content | text | 65535 | 0 | Y | N | 计划内容 | |
7 | plan_remarks | text | 65535 | 0 | Y | N | 计划备注 | |
8 | dietary_advice | 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 | dietary_records_id | int | 10 | 0 | N | Y | 饮食记录ID | |
2 | user_information | int | 10 | 0 | Y | N | 0 | 用户信息 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
5 | record_date | date | 10 | 0 | Y | N | 记录日期 | |
6 | dietary_name | varchar | 64 | 0 | Y | N | 饮食名称 | |
7 | diet_quantity | varchar | 64 | 0 | Y | N | 饮食数量 | |
8 | dietary_calories | varchar | 64 | 0 | Y | N | 饮食卡路里 | |
9 | nutritional_information | text | 65535 | 0 | Y | N | 营养信息 | |
10 | dietary_notes | text | 65535 | 0 | Y | N | 饮食备注 | |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | 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 | contact_phone_number | varchar | 16 | 0 | Y | N | 联系电话 | |
5 | doctors_id | varchar | 64 | 0 | N | 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 | exercise_plan_id | int | 10 | 0 | N | Y | 运动计划ID | |
2 | plan_name | varchar | 64 | 0 | Y | N | 计划名称 | |
3 | user_information | int | 10 | 0 | Y | N | 0 | 用户信息 |
4 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
5 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
6 | sports_name | varchar | 64 | 0 | Y | N | 运动名称 | |
7 | plan_content | text | 65535 | 0 | Y | N | 计划内容 | |
8 | sports_advice | 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 | forum_id | mediumint | 8 | 0 | N | Y | 论坛id | |
2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
4 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
7 | title | varchar | 125 | 0 | N | N | 标题 | |
8 | keywords | varchar | 125 | 0 | Y | N | 关键词 | |
9 | description | varchar | 255 | 0 | Y | N | 描述 | |
10 | url | varchar | 255 | 0 | Y | N | 来源地址 | |
11 | tag | varchar | 255 | 0 | Y | N | 标签 | |
12 | img | text | 65535 | 0 | Y | N | 封面图 | |
13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
16 | avatar | varchar | 255 | 0 | Y | N | 发帖人头像: | |
17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
3 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
4 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
5 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
6 | icon | varchar | 255 | 0 | Y | N | 分类图标: | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | health_goals_id | int | 10 | 0 | N | Y | 健康目标ID | |
2 | target_name | varchar | 64 | 0 | Y | N | 目标名称 | |
3 | user_information | int | 10 | 0 | Y | N | 0 | 用户信息 |
4 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
5 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
6 | target_content | text | 65535 | 0 | Y | N | 目标内容 | |
7 | progress_status | varchar | 64 | 0 | Y | N | 进度状态 | |
8 | completion_progress | 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 | health_monitoring_id | int | 10 | 0 | N | Y | 健康监测ID | |
2 | user_information | int | 10 | 0 | Y | N | 0 | 用户信息 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
5 | heart_rate_information | text | 65535 | 0 | Y | N | 心率信息 | |
6 | step_information | text | 65535 | 0 | Y | N | 步数信息 | |
7 | sleep_information | text | 65535 | 0 | Y | N | 睡眠信息 | |
8 | health_report | varchar | 255 | 0 | Y | N | 健康报告 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | health_reminder_id | int | 10 | 0 | N | Y | 健康提醒ID | |
2 | reminder_title | varchar | 64 | 0 | Y | N | 提醒标题 | |
3 | user_information | int | 10 | 0 | Y | N | 0 | 用户信息 |
4 | reminder_date | date | 10 | 0 | Y | N | 提醒日期 | |
5 | reminder_content | text | 65535 | 0 | Y | N | 提醒内容 | |
6 | matters_needing_attention | text | 65535 | 0 | Y | N | 注意事项 | |
7 | reminder_remarks | text | 65535 | 0 | Y | N | 提醒备注 | |
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 | medical_information_id | int | 10 | 0 | N | Y | 医疗信息ID | |
2 | medical_record_name | varchar | 64 | 0 | Y | N | 病历名称 | |
3 | doctor_users | int | 10 | 0 | Y | N | 0 | 医生用户 |
4 | user_information | int | 10 | 0 | Y | N | 0 | 用户信息 |
5 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
6 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
7 | medical_content | text | 65535 | 0 | Y | N | 医疗内容 | |
8 | inspection_results | text | 65535 | 0 | Y | N | 检查结果 | |
9 | medical_diagnosis | text | 65535 | 0 | Y | N | 医疗诊断 | |
10 | prescription_content | text | 65535 | 0 | Y | N | 处方内容 | |
11 | medical_record_attachment | varchar | 255 | 0 | Y | N | 病历附件 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | medication_reminder_id | int | 10 | 0 | N | Y | 用药提醒ID | |
2 | reminder_title | varchar | 64 | 0 | Y | N | 提醒标题 | |
3 | user_information | int | 10 | 0 | Y | N | 0 | 用户信息 |
4 | reminder_date | date | 10 | 0 | Y | N | 提醒日期 | |
5 | medication_content | text | 65535 | 0 | Y | N | 用药内容 | |
6 | medication_notes | text | 65535 | 0 | Y | N | 用药备注 | |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | 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 | 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 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | contact_phone_number | varchar | 16 | 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 | sensitive_vocabulary_id | int | 10 | 0 | N | Y | 敏感词汇ID | |
2 | sensitive_vocabulary | 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 | 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 | sports_records_id | int | 10 | 0 | N | Y | 运动记录ID | |
2 | user_information | int | 10 | 0 | Y | N | 0 | 用户信息 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
5 | record_date | date | 10 | 0 | Y | N | 记录日期 | |
6 | sports_name | varchar | 64 | 0 | Y | N | 运动名称 | |
7 | exercise_duration | varchar | 64 | 0 | Y | N | 运动时长 | |
8 | exercise_intensity | varchar | 64 | 0 | Y | N | 运动强度 | |
9 | sports_records | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
3.3本章小结
整个HealthGuardian智能健康管理伴侣管理系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 HealthGuardian智能健康管理伴侣管理系统详细设计与实现
HealthGuardian智能健康管理伴侣管理系统的设计和实现主要是根据前面的HealthGuardian智能健康管理伴侣管理系统的需求分析和HealthGuardian智能健康管理伴侣管理系统的总体设计来设计页面并实现业务逻辑。主要从HealthGuardian智能健康管理伴侣管理系统界面实现、业务逻辑实现这两部分进行介绍。
4.1前台部分用户功能模块
4.1.1 前台首页界面
当进入HealthGuardian智能健康管理伴侣管理系统的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,再往下是新闻资讯,其主界面展示如下图4-1所示。
图4-1 前台首页界面图
4.1.2 用户注册界面
当HealthGuardian智能健康管理伴侣管理系统的普通用户可以进行注册登录,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用户注册界面展示如下图4-2所示。
图4-2注册界面图
注册关键代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user)
// 查询用户
Map<String, String> query = new HashMap<>();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
/**
* 用户ID:[0,8388607]用户获取其他与用户相关的数据
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Integer userId;
/**
* 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
*/
@Basic
@Column(name = "state")
private Integer state;
/**
* 所在用户组:[0,32767]决定用户身份和权限
*/
@Basic
@Column(name = "user_group")
private String userGroup;
/**
* 上次登录时间:
*/
@Basic
@Column(name = "login_time")
private Timestamp loginTime;
/**
* 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
*/
@Basic
@Column(name = "phone")
private String phone;
/**
* 手机认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "phone_state")
private Integer phoneState;
/**
* 用户名:[0,16]用户登录时所用的账户名称
*/
@Basic
@Column(name = "username")
private String username;
/**
* 昵称:[0,16]
*/
@Basic
@Column(name = "nickname")
private String nickname;
/**
* 密码:[0,32]用户登录所需的密码,由6—16位数字或英文组成
*/
@Basic
@Column(name = "password")
private String password;
/**
* 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
*/
@Basic
@Column(name = "email")
private String email;
/**
* 邮箱认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "email_state")
private Integer emailState;
/**
* 头像地址:[0,255]
*/
@Basic
@Column(name = "avatar")
private String avatar;
/**
* 创建时间:
*/
@Basic
@Column(name = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createTime;
@Basic
@Transient
private String code;
4.1.3 用户登录界面
HealthGuardian智能健康管理伴侣管理系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到HealthGuardian智能健康管理伴侣管理系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。
图4-3用户登录界面图
登录关键代码如下:
/**
* 登录
* @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.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}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.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable()))
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
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, "账号或密码不正确");
}
支持局部搜索、发布内容(封面图、标题、分类、标签、正文),可进行点赞、收藏、评论。界面如下图4-4所示。
图4-4社区论坛界面图
4.1.5 新闻资讯界面
支持局部搜索,点击可查看详情,可查看管理员发布的所有新闻资讯,并可进行点赞、收藏、评论等操作。界面如下图4-5所示。
图4-5新闻资讯界面图
4.1.6 饮食记录界面
可对饮食信息进行记录,包括用户信息、用户姓名、联系电话、记录日期、饮食名称、饮食数量、饮食卡路里、营养信息、饮食备注。界面如图4-6所示。
图4-6 饮食记录界面图
可对运动计划进行记录,包括计划名称、用户信息、用户姓名、联系电话、运动名称、计划内容。界面如下图4-7所示。
图4-7运动记录界面图
可对健康信息进行记录监测,包括用户信息、用户姓名、联系电话、心率信息、步数信息、睡眠信息。界面如下图4-8所示。
图4-8 健康监测界面图
个人首页、饮食记录、运动记录、健康目标、饮食计划、运动计划、健康监测、健康提醒、用药提醒、医疗信息、收藏等信息进行管理,可点击查看详情,并进行增改删查等操作。界面如下图4-9所示。
图4-9普通用户个人中心界面
4.2后台功能模块
4.2.1医生用户饮食计划管理界面
支持计划名称、用户姓名搜索,可查询所有用户提交的饮食计划,点击详情可填写对普通用户的饮食建议。界面如下图所示。
图4-10饮食计划管理界面图
:支持用户姓名搜索,可查询所有用户提交的健康监测,点击详情可对普通用户发送健康报告。界面如下图所示。
图4-11健康监测管理界面图
支持病例名称、用户姓名搜索,可查询医生用户提交的医疗信息,点击可查看详情,并进行添加(病例名称、医生用户、用户信息、联系电话、医疗内容、检查结果、医疗诊断、处方内容、病历附件)等操作。界面如下图所示。
图4-12医疗信息管理界面图
可以对普通用户、医生用户和管理员等用户进行管控,医生用户由管理员添加,点击可查看详情,可进行增删改查等操作。界面如下图所示。
图4-13系统用户管理界面图
支持用户姓名、运动名称搜索,可查询所有用户提交的运动记录,点击可查看详情,并进行增删改查等操作。界面如下图所示。
图4-14运动记录管理界面图
支持目标名称、进度状态搜索,可查询所有用户提交的健康目标,点击可查看详情,并进行查询、删除等操作。界面如下图所示。
图4-15健康目标管理界面图
4.2.8管理员健康提醒管理界面
支持提醒标题搜索,可查询所有对用户进行提交的健康提醒操作,点击可查看详情(提醒标题、用户信息、提醒日期、提醒内容、注意事项、提醒备注),并进行增删改查等操作。界面如下图所示。
图4-16健康提醒管理界面图
对社区论坛和论坛分类进行管理,支持标题、分类搜索,点击可查看详情和评论,可进行增删改查操作。界面如下图4-18所示。
图4-17交流管理界面图
5系统测试
系统测试包括:用户登录功能测试、新闻资讯展示功能测试、运动记录添加功能测试、健康监测管理搜索功能测试、密码修改功能测试、健康提醒功能测试,如表5-1、5-2、5-3、5-4、5-5、5-6所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
新闻资讯展示功能测试:
表5-2 新闻资讯展示功能测试表
用例名称 | 新闻资讯展示功能 |
目的 | 测试新闻资讯展示功能 |
前提 | 用户登录 |
测试流程 | 点击新闻资讯展示功能 |
预期结果 | 可以查看到所有新闻资讯展示功能 |
实际结果 | 实际结果与预期结果一致 |
运动记录添加功能测试:
表5-3 运动记录添加功能测试表
用例名称 | 运动记录添加功能 |
目的 | 测试运动记录添加 |
前提 | 管理员正常登录情况下 |
测试流程 | 1)点击运动记录,然后点击添加并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示运动记录信息 |
实际结果 | 实际结果与预期结果一致 |
健康监测管理搜索功能测试:
表5-4健康监测管理搜索功能测试表
用例名称 | 健康监测管理搜索测试 |
目的 | 测试健康监测管理搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的健康监测信息 |
实际结果 | 实际结果与预期结果一致 |
密码修改搜索功能测试:
表5-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
健康提醒功能测试:
表5-6健康提醒功能测试表
用例名称 | 健康提醒功能测试 |
目的 | 测试管理员健康提醒功能 |
前提 | 用户正常登录情况下 |
测试流程 | 1)点击健康提醒,然后点击添加并填写信息。 2)点击进行提交。 |
预期结果 | 显示健康提醒信息 |
实际结果 | 实际结果与预期结果一致 |
通过编写HealthGuardian智能健康管理伴侣管理系统的测试用例,已经检测完毕用户登录功能测试、新闻资讯展示功能测试、运动记录添加功能测试、健康监测管理搜索功能测试、密码修改功能测试、健康提醒功能测试,通过这些模块为HealthGuardian智能健康管理伴侣管理系统的后期推广运营提供了强力的技术支撑。
在开发本HealthGuardian智能健康管理伴侣管理系统之前我胸有成竹,觉得很简单,但在实际的开发中我发现了自身的很多问题,许多编程思想和方法都还没有掌握牢靠,通过开发这个HealthGuardian智能健康管理伴侣管理系统我成长了很多,懂得了做什么事情都要脚踏实地,不能眼高手低,在本次HealthGuardian智能健康管理伴侣管理系统的开发中我逐渐掌握逐渐熟悉的技术。
本次HealthGuardian智能健康管理伴侣管理系统的开发中我还学会了很多,例如良好的编程思想和完善的规划思想。在着手编程之前需要罗列出程序框架的大概,脑海中构建出程序的主题框架。做好这一步我们才能胸有成竹地进行开发项目。当设计框架了然于心之后,需要思考本次编程所需的主要知识点和技术点,并充分学习。如此一来项目的开发才能循序渐进、如丝般顺滑,长此以往就能养成良好的开发习惯。一个程序好不好还要看出的bug多不多,如果在项目完成前做好bug的查验与预防可能发生的事故才能保证程序的稳定长久性运行。如果项目在完工后出现各种问题自己,那么在进入社会后,不仅会给公司团队带来麻烦和增加不必要的工作,还会导致客户流失,公司对自己的评价下降。
在本次项目中我也暴露了诸多问题。对于Springboot的编程知识有所欠缺,环境配置和算法上出现诸多问题,时常导致项目运行出错,或者目标的实现有问题。或者实现想法时算法未优化,使得代码冗长,程序运行不顺畅。
[1]薛妤,陈琳,李尤等.一站式个体化全程健康管理模式在健康管理中心的应用研究[J/OL].成都医学院学报,1-7[2024-03-06].http://kns.cnki.net/kcms/detail/51.1705.R.20240229.0902.002.html.
[2]梁轶,王芳,辜春容等.四川省泸州市流动老年人和非流动老年人社区健康管理服务利用差异研究[J].现代医药卫生,2024,40(04):644-649.
[3]陈鸿胜,宛楠,袁雨豪.糖尿病患者健康管理系统的设计与实现[J].福建电脑,2024,40(02):105-108.DOI:10.16707/j.cnki.fjpc.2024.02.022.
[4]粟梁.基于Java的汽车租赁管理系统[J].电脑编程技巧与维护,2024,(01):43-45+52.DOI:10.16184/j.cnki.comprg.2024.01.035.
[5]江唯青.实验设备管理系统设计及其Java实现[J].电脑知识与技术,2024,20(02):27-29.DOI:10.14004/j.cnki.ckt.2024.0149.
[6]石雨昕,关家兴,邹博华等.基于SpringBoot微服务架构设计与实现实验室开放课题管理系统[J].实验室检测,2024,2(01):101-106.
[7]谭光兴,甘景,戚秋晨.基于Java语言的远程数据采集系统设计与实现[J].科技与创新,2024,(01):19-22.DOI:10.15913/j.cnki.kjycx.2024.01.005.
[8]吴海燕.综合化航空电子系统中信号处理模块的健康管理方法[J].电子设计工程,2024,32(01):35-38+43.DOI:10.14022/j.issn1674-6236.2024.01.008.
[9]韩前鹏,陈雨华,王星.基于Java的叶片机械自动设计平台研究与开发[J].工业控制计算机,2023,36(12):21-23.
[10]吴伶琳.基于SpringBoot的客户关系管理系统设计与实现[J].无线互联科技,2023,20(24):60-62.
[11]唐媛媛,王晓楠,李京培等.基于SpringBoot的病原生物学在线智能化实验考试系统建设探索[J].赤峰学院学报(自然科学版),2023,39(12):75-78.DOI:10.13398/j.cnki.issn1673-260x.2023.12.024.
[12]翟祥栩,陈谦民,陈宗玉.基于SpringBoot的农业大数据一站式分析预测平台的设计与实现[J].现代信息科技,2023,7(24):6-10+15.DOI:10.19850/j.cnki.2096-4706.2023.24.002.
[13]袁琳琳.计算机软件Java编程特点及技术分析[J].数字通信世界,2023,(12):87-89.
[14]吴昊,张丹.基于SpringBoot框架的大学生网上兼职系统设计与实现[J].电脑知识与技术,2023,19(35):68-72.DOI:10.14004/j.cnki.ckt.2023.1860.
[15]艾钰承,朱海风,刘舟.基于SpringBoot的“喵站”宠物服务平台的设计与实现[J].科技资讯,2023,21(22):22-25.DOI:10.16661/j.cnki.1672-3791.2305-5042-0756.
[16]游晶,邱淑丽,李敬文.基于SpringBoot的校园智慧报修系统的设计与实现[J].电脑知识与技术,2023,19(32):50-52+65.DOI:10.14004/j.cnki.ckt.2023.1718.
[17]陈良杰,董良山,刘泽正等.基于人工智能技术的定制化运动方案及健康管理系统设计研究[C]//中国体育科学学会.第十三届全国体育科学大会论文摘要集——墙报交流(体育工程分会).中国地质大学;,2023:3.DOI:10.26914/c.cnkihy.2023.080409.
[18]卞佳妮.基于健康服务信息系统的患者中医体质健康管理模式构建与思考[J].中医药管理杂志,2023,31(19):125-127.DOI:10.16690/j.cnki.1007-9203.2023.19.076.
[19]顾林跃.基于智慧医疗服务平台的移动健康系统应用探讨[J].智慧健康,2023,9(28):1-4+9.DOI:10.19335/j.cnki.2096-1219.2023.28.001.
[20]丁品.面向特定人群的智能健康管理系统的设计与实现[D].北京邮电大学,2019.
这篇文章的完成经历了多个日日夜夜的努力,终于在今天得以完成。这篇文章的创作过程实为不易,但在老师和同学的辛勤帮助下顺利度过。让我在设计过程中举步维艰时,非常感谢我的导师不厌其烦地帮助我解决问题,给予了我许多指导意见。也感谢所有为我授业解惑的老师!
另外,本文的完成也参考借鉴了许多国内外在Springboot技术上的著作,如果没有著作原作的辛勤付出和科研成果,我也很难完成本论文。感谢在本论文中关联到的学者们!也感谢Google等公司,感谢他们强大的搜索引擎,让我的资料查阅省事简单。
感谢之余也还有几句话要说,虽大学学习四年,怎奈何本人才疏学浅,本文的完成已为尽力,但文中不免有些不当和错误之处,诚挚真切地请求各位老师对本文的批评改正,感谢百忙之中费心审阅我论文的老师。