桑冉航,李曉明
(三江學院 計算機科學與工程學院,江蘇 南京 210000)
隨著經濟的快速發(fā)展,人民群眾的生活水平得到了明顯的改善,健身房作為一個重要的健康運動場所,越來越受到人們的關注和青睞,在繁忙的工作之后,健身房成了健身愛好者們釋放工作壓力的場所之一[1]。健身房管理系統可以減少健身房管理員的工作量,提高健身房的運行效率,并且用戶可以在線上對健身房進行了解,查看有哪些課程可供選擇,哪些教練可供選擇。而傳統的健身房管理方式已經無法滿足日益增長的用戶需求和復雜的運行管理挑戰(zhàn),比如:缺乏用戶與健身房線上的交流機制,用戶需要到線下去了解健身房的課程、教練、器材等,這樣會讓一些人感到比較麻煩,極大地影響了用戶的感受[2]。通過引入信息化手段和智能化技術,使得健身房管理更加便捷、高效并提供更好的用戶體驗。用戶可以通過線上購買課程,管理員可以登錄系統查看哪些用戶購買了課程。該系統可以幫助健身房管理者實現用戶管理、課程管理、器材管理等關鍵模塊的自動化和優(yōu)化。
Spring Boot 是一款基于Java 語言的開源框架,也是當前比較流行的Java 后端開發(fā)框架,能夠簡化Java應用程序的開發(fā)過程[3]。在Spring Boot 中只需引入相應的依賴,就可以省略掉Spring MVC 中煩瑣配置,它提供了一個很容易上手的開發(fā)環(huán)境,減少了開發(fā)者花費在煩瑣配置上的時間,增加了開發(fā)者實現業(yè)務邏輯的時間。Spring Boot內置了一個默認的自動化配置機制,它能夠根據應用程序的依賴和約定來自動配置。
Thymeleaf是一種用于Java語言的前端模板引擎,它是在服務器端生成動態(tài)HTML頁面,并且與HTML標準兼容,使得前端開發(fā)人員和后端開發(fā)人員能夠更好地協同工作[4]。
可以在HTML模板中嵌入動態(tài)數據、表達式和邏輯判斷,這些模板可以作為服務器端組件來生成最終的HTML頁面,然后將其發(fā)送給瀏覽器進行展示。它具有很多強大的功能,例如國際化、表單處理、條件判斷等??梢酝ㄟ^Spring Boot 輕松進行配置和使用,提高了開發(fā)效率和靈活性。
MyBatis-Plus(簡稱為 MyBatis+) 是一個基于My-Batis 的增強工具,為了簡化和加速MyBatis 應用程序的開發(fā)[5]。MyBatis-Plus 提供了一系列的增加、刪除、修改、查詢等常見數據庫操作的封裝方法,通過使用它可以減少大量冗余的重復代碼。同時,它還提供了一些高級功能,方便開發(fā)人員處理各種場景和需求,比如:分頁查詢、邏輯刪除、樂觀鎖、自動填充等。
本系統總共包括五個模塊,分別為用戶模塊、教練模塊、課程模塊、器材模塊、場地模塊,每個模塊實現的具體功能如圖1。
圖1 健身房管理系統的功能模塊圖
以用戶模塊、教練模塊、課程模塊三方面為例,概述健身房管理系統的設計[6]。
用戶模塊共包含以下四個功能:
注冊功能:在用戶模塊中實現用戶注冊功能,用戶輸入賬號、密碼、手機號,前端先用JavaScript 對其合法性判斷,如果不符合,則提示相應的錯誤信息,如果符合前端的要求,則將輸入的信息傳到后端,后端將信息與數據庫進行匹配,如果手機號或賬號在數據庫中已經存在,則提示相應的錯誤信息,并重新輸入注冊信息,否則將新用戶的信息保存到數據庫中,提示注冊成功。
登錄功能:為用戶提供登錄界面,并將用戶輸入的用戶名和密碼通過Post請求提交到后端,后端通過與數據庫匹配進行驗證,驗證通過后允許用戶登錄系統,并提供相應的權限和功能操作,不通過則提示賬號或密碼錯誤,請重新登錄。用戶登錄注冊流程如圖2:
圖2 用戶登錄注冊流程圖
基本信息管理:用戶登錄成功后,會顯示用戶的相關信息,可以查看自己購買了哪些課程,可以編輯個人信息,如修改密碼、更新聯系方式等。管理員可以強制性刪除用戶。
購買課程:點擊查看課程后,用戶可以看到所有課程,點擊課程,可以查看到該課程的所有信息,如果是自己喜歡的課程,用戶可以點擊購買課程,付款成功后,提示購買成功。
教練模塊共包含以下四個功能:
教練登錄:教練的賬號、密碼等基本信息由管理員在后臺進行設置,教練不可以進行注冊。教練輸入正確的賬號、密碼即可登錄成功。
教練信息修改:教練登錄成功后會顯示基本信息,點擊修改可以對自己的基本信息進行修改。如果教練忘記密碼,管理員可以對教練信息進行強制性修改,可以為教練分配課程以及對所教課程進行更改。
查看課程信息:教練登錄后,可以查看所教的課程、課程上課時間以及課程所包含的用戶。
增加刪除教練:有新的教練來,或者有教練離職,這時就需要管理員來增加或刪除教練信息。增加時,管理員點擊添加按鈕,輸入教練的基本信息,點擊提交,即可添加成功。刪除時,管理員點擊要刪除教練對應的刪除按鈕,會彈出提示框,是否要刪除該教練,點擊是,即可刪除成功。
課程模塊是為了管理和提供健身房的各種課程,滿足用戶的不同需求和健身目標,共包含以下四個功能:
查看包含用戶:管理員點擊課程管理后可以查看所有課程信息,并且可以查看每個課程包含的所有用戶。
增加新課程:當教練人數足夠多,用戶對課程的需求也比較強烈,這時非常有必要再開一門新的課程,管理員可以新增一門課程來供用戶購買。
課程信息修改:管理員可以對上課時間進行修改,以及限制每門課程的最多上課人數。
刪除課程:當一門課程對于健身房來說長期處于虧損狀態(tài)時,可以將該課程的教練分配到其他有需要的地方,管理員將該課程刪除。
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(器材狀態(tài))、time(器材購買時間)、site_id(引入場地表的主鍵作為外鍵)。
7) 場地表。存儲場地的相關信息。包含以下五個字段:site_id(主鍵)、site_name(場地名稱)、area(面積)、charge(收費標準)、profile(場地簡介)。
本文闡述了使用Java 語言,基于前端Thymeleaf模板引擎+后端Spring Boot 框架開發(fā)健身房管理系統的過程。實現了用戶登錄、課程管理、器材管理等模塊,使得用戶線上即可全方位了解健身房設施配備和課程安排,有利于管理員對健身房進行精準的信息維護,實現科學高效的用戶管理。該系統投入使用后,既解決了以往健身房管理困難的問題,又提高了用戶的體驗感,具有一定的應用和推廣價值。研究條件所限,后續(xù)還有很多改進之處。在后續(xù)的系統完善過程中,可以在課程模塊中加入用戶所購買課程的學習進度,方便用戶隨時掌握自己的學習狀況,合理做出下一步的學習安排;還可以根據用戶的需求添加相應功能,滿足不同用戶的個性化需求,使用戶在達到訓練目的的同時獲得更高的滿足感,吸引更多的用戶走入健身房,加入健身隊伍,提高身體素質,增強生命活力。