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