桑冉航,李晓明
(三江学院 计算机科学与工程学院,江苏 南京 210000)
随着经济的快速发展,人民群众的生活水平得到了明显的改善,健身房作为一个重要的健康运动场所,越来越受到人们的关注和青睐,在繁忙的工作之后,健身房成了健身爱好者们释放工作压力的场所之一[1]。健身房管理系统可以减少健身房管理员的工作量,提高健身房的运行效率,并且用户可以在线上对健身房进行了解,查看有哪些课程可供选择,哪些教练可供选择。而传统的健身房管理方式已经无法满足日益增长的用户需求和复杂的运行管理挑战,比如:缺乏用户与健身房线上的交流机制,用户需要到线下去了解健身房的课程、教练、器材等,这样会让一些人感到比较麻烦,极大地影响了用户的感受[2]。通过引入信息化手段和智能化技术,使得健身房管理更加便捷、高效并提供更好的用户体验。用户可以通过线上购买课程,管理员可以登录系统查看哪些用户购买了课程。该系统可以帮助健身房管理者实现用户管理、课程管理、器材管理等关键模块的自动化和优化。
Spring Boot 是一款基于Java 语言的开源框架,也是当前比较流行的Java 后端开发框架,能够简化Java应用程序的开发过程[3]。在Spring Boot 中只需引入相应的依赖,就可以省略掉Spring MVC 中烦琐配置,它提供了一个很容易上手的开发环境,减少了开发者花费在烦琐配置上的时间,增加了开发者实现业务逻辑的时间。Spring Boot内置了一个默认的自动化配置机制,它能够根据应用程序的依赖和约定来自动配置。
Thymeleaf是一种用于Java语言的前端模板引擎,它是在服务器端生成动态HTML页面,并且与HTML标准兼容,使得前端开发人员和后端开发人员能够更好地协同工作[4]。
可以在HTML模板中嵌入动态数据、表达式和逻辑判断,这些模板可以作为服务器端组件来生成最终的HTML页面,然后将其发送给浏览器进行展示。它具有很多强大的功能,例如国际化、表单处理、条件判断等。可以通过Spring Boot 轻松进行配置和使用,提高了开发效率和灵活性。
MyBatis-Plus(简称为 MyBatis+) 是一个基于My-Batis 的增强工具,为了简化和加速MyBatis 应用程序的开发[5]。MyBatis-Plus 提供了一系列的增加、删除、修改、查询等常见数据库操作的封装方法,通过使用它可以减少大量冗余的重复代码。同时,它还提供了一些高级功能,方便开发人员处理各种场景和需求,比如:分页查询、逻辑删除、乐观锁、自动填充等。
本系统总共包括五个模块,分别为用户模块、教练模块、课程模块、器材模块、场地模块,每个模块实现的具体功能如图1。
图1 健身房管理系统的功能模块图
以用户模块、教练模块、课程模块三方面为例,概述健身房管理系统的设计[6]。
用户模块共包含以下四个功能:
注册功能:在用户模块中实现用户注册功能,用户输入账号、密码、手机号,前端先用JavaScript 对其合法性判断,如果不符合,则提示相应的错误信息,如果符合前端的要求,则将输入的信息传到后端,后端将信息与数据库进行匹配,如果手机号或账号在数据库中已经存在,则提示相应的错误信息,并重新输入注册信息,否则将新用户的信息保存到数据库中,提示注册成功。
登录功能:为用户提供登录界面,并将用户输入的用户名和密码通过Post请求提交到后端,后端通过与数据库匹配进行验证,验证通过后允许用户登录系统,并提供相应的权限和功能操作,不通过则提示账号或密码错误,请重新登录。用户登录注册流程如图2:
图2 用户登录注册流程图
基本信息管理:用户登录成功后,会显示用户的相关信息,可以查看自己购买了哪些课程,可以编辑个人信息,如修改密码、更新联系方式等。管理员可以强制性删除用户。
购买课程:点击查看课程后,用户可以看到所有课程,点击课程,可以查看到该课程的所有信息,如果是自己喜欢的课程,用户可以点击购买课程,付款成功后,提示购买成功。
教练模块共包含以下四个功能:
教练登录:教练的账号、密码等基本信息由管理员在后台进行设置,教练不可以进行注册。教练输入正确的账号、密码即可登录成功。
教练信息修改:教练登录成功后会显示基本信息,点击修改可以对自己的基本信息进行修改。如果教练忘记密码,管理员可以对教练信息进行强制性修改,可以为教练分配课程以及对所教课程进行更改。
查看课程信息:教练登录后,可以查看所教的课程、课程上课时间以及课程所包含的用户。
增加删除教练:有新的教练来,或者有教练离职,这时就需要管理员来增加或删除教练信息。增加时,管理员点击添加按钮,输入教练的基本信息,点击提交,即可添加成功。删除时,管理员点击要删除教练对应的删除按钮,会弹出提示框,是否要删除该教练,点击是,即可删除成功。
课程模块是为了管理和提供健身房的各种课程,满足用户的不同需求和健身目标,共包含以下四个功能:
查看包含用户:管理员点击课程管理后可以查看所有课程信息,并且可以查看每个课程包含的所有用户。
增加新课程:当教练人数足够多,用户对课程的需求也比较强烈,这时非常有必要再开一门新的课程,管理员可以新增一门课程来供用户购买。
课程信息修改:管理员可以对上课时间进行修改,以及限制每门课程的最多上课人数。
删除课程:当一门课程对于健身房来说长期处于亏损状态时,可以将该课程的教练分配到其他有需要的地方,管理员将该课程删除。
MySQL是当前比较流行的关系型数据库,是建立在关系模型上的数据库,可以很清楚地表示数据库中所保存的表与表之间的关联关系[7]。
在该健身房管理系统的数据库设计时,将用户表用tb_user 表示,将课程表tb_course 表示,将教练表用tb_coach表示,将器材表用tb_equip表示,将场地表用tb_site表示。数据库的E-R图如图3。
图3 数据库E-R图
本系统中所有表都保存在一个名为gymms 的数据库中,该数据库中总共包含7张表,分别是管理员表(tb_admin) 、用户表(tb_user) 、课程表(tb_course) 、用户与课程的关联表(user_course) 、教练表(tb_coach) 、器材表(tb_equip) 、场地表(tb_site)。
1) 管理员表。存储管理员的相关信息,包含以下三个字段:id(主键)、account(管理员账号)、password(密码)。
2) 用户表。存储用户的相关信息。包含以下九个字段:user_id(主键)、user_name(用户名)、account(用户账号)、password(密码)、gender(性别)、birthday(出生日期)、mobile(联系方式)、height(身高)、weight(体重)。
3) 课程表。存储课程的相关信息。包含以下六个字段:course_id(主键)、course_name(课程名称)、price(课程价格)、sum(课程最大容纳人数)、time(上课时间)、profile(课程简介)。
4) 用户课程关联表。用户与课程具有多对多的关系,通过此表来进行关联。包含以下四个字段:id(主键)、user_id(引入用户表中的主键作为外键)、course_id(引入课程表中的主键作为外键)、count(用户的上课次数)。
5) 教练表。存储教练的相关信息,教练与课程具有多对一的关系。包含以下九个字段:coach_id(主键)、coach_name(教练名字)、account(教练账号)、password(密码)、gender(性别)、birthday(出生日期)、mobile(联系方式)、profile(教练简介)、course_id(引入课程表的主键作为外键)。
6) 器材表。存储器材的相关信息,器材与场地具有多对一的关系。包含以下五个字段:equip_id(主键)、equip_name(器材名称)、status(器材状态)、time(器材购买时间)、site_id(引入场地表的主键作为外键)。
7) 场地表。存储场地的相关信息。包含以下五个字段:site_id(主键)、site_name(场地名称)、area(面积)、charge(收费标准)、profile(场地简介)。
本文阐述了使用Java 语言,基于前端Thymeleaf模板引擎+后端Spring Boot 框架开发健身房管理系统的过程。实现了用户登录、课程管理、器材管理等模块,使得用户线上即可全方位了解健身房设施配备和课程安排,有利于管理员对健身房进行精准的信息维护,实现科学高效的用户管理。该系统投入使用后,既解决了以往健身房管理困难的问题,又提高了用户的体验感,具有一定的应用和推广价值。研究条件所限,后续还有很多改进之处。在后续的系统完善过程中,可以在课程模块中加入用户所购买课程的学习进度,方便用户随时掌握自己的学习状况,合理做出下一步的学习安排;还可以根据用户的需求添加相应功能,满足不同用户的个性化需求,使用户在达到训练目的的同时获得更高的满足感,吸引更多的用户走入健身房,加入健身队伍,提高身体素质,增强生命活力。