今天给在家介绍一篇健身俱乐部信息管理系统设计与实现
項(xiàng)目描述
臨近學(xué)期結(jié)束,還是畢業(yè)設(shè)計(jì),你還在做java程序網(wǎng)絡(luò)編程,期末作業(yè),老師的作業(yè)要求覺(jué)得大了嗎?不知道畢業(yè)設(shè)計(jì)該怎么辦?網(wǎng)頁(yè)功能的數(shù)量是否太多?沒(méi)有合適的類(lèi)型或系統(tǒng)?等等。這里根據(jù)疫情當(dāng)下,你想解決的問(wèn)題,今天給在家介紹一篇健身俱樂(lè)部信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。
功能需求
大量的健身房都沒(méi)有自己的系統(tǒng),會(huì)員的登記、健身報(bào)名、身份信息的更改等服務(wù)完全依靠管理人員操作,這樣并不利于健身房的發(fā)展和大大降低了工作人員的效率。因此,一個(gè)健全的管理系統(tǒng)是十分必要的,管理人員、會(huì)員、游客可以根據(jù)自己的權(quán)限,來(lái)自主完成的操作,提高工作效率;
具備以下功能:
本文研究的是解決健身俱樂(lè)部管理問(wèn)題,通過(guò)調(diào)查和分析部分俱樂(lè)部面臨的問(wèn)題和困難,綜合評(píng)價(jià)了健身俱樂(lè)部信息管理系統(tǒng)建設(shè)當(dāng)前形勢(shì)和以后發(fā)展趨勢(shì),進(jìn)而提出了比較好的管理方案。
1、會(huì)員權(quán)限功能需求:
(1)用戶注冊(cè)登錄:可以在首頁(yè)進(jìn)行注冊(cè)成為會(huì)員用戶,登錄后即可進(jìn)行在線預(yù)約課程和評(píng)價(jià)教練 。
(2)用戶信息管理:登錄后可以修改、刪除自己的個(gè)人信息。
(3)查看教練信息:可以查看教練的基礎(chǔ)信息,對(duì)其教練的水平進(jìn)行了解。
(4)用戶評(píng)價(jià)管理:在線針對(duì)某個(gè)教練進(jìn)行評(píng)價(jià)信息發(fā)布,并可以查看教練全部已有評(píng)價(jià)信息。
(5)用戶課程管理:查看管理員發(fā)布所有課程信息并可以在線預(yù)約
(6)用戶健身房介紹:可以在前臺(tái)瀏覽健身房簡(jiǎn)介信息以及所有的健身房器材。
(8)用戶留言管理:可以在前臺(tái)發(fā)布自己的建議意見(jiàn)給管理員留言。
2、管理員權(quán)限功能需求:
(1)管理員管理:管理員可以添加新的普通管理員。
(2)查看用戶信息:管理員可以查看用戶姓名,性別,身高,體重,辦卡時(shí)間和到期時(shí)間。
(3)管理教練信息:管理員需要發(fā)布教練的基本信息供會(huì)員瀏覽了解。
(4)教練評(píng)價(jià)信息:管理員可以在教練基礎(chǔ)信息頁(yè)面點(diǎn)擊某個(gè)教練的評(píng)價(jià)信息可以查看所有該教練的評(píng)價(jià)信息。
(5)課程管理:管理員可以發(fā)布課程信息供會(huì)員瀏覽了解并可以處理會(huì)員的在線預(yù)約課程信息。
(6)健身房介紹:管理員可以修改健身房介紹信息,針對(duì)健身房的所有器械進(jìn)行動(dòng)態(tài)發(fā)布管理。
(7)留言管理:管理員可以查看全部留言信息,進(jìn)行回復(fù)和刪除。
系統(tǒng)設(shè)計(jì)
通過(guò)前面的一系列的分析研究,對(duì)本系統(tǒng)的功能也有了一定的規(guī)劃,本系統(tǒng)分為會(huì)員用戶、管理員兩個(gè)角色。系統(tǒng)設(shè)計(jì)思想遵循以下幾點(diǎn):
5.速度優(yōu)先原則。由于系統(tǒng)的最重要評(píng)測(cè)標(biāo)準(zhǔn)就是響應(yīng)速度,因此在設(shè)計(jì)開(kāi)發(fā)中,請(qǐng)求響應(yīng)處理盡量做到資源占用少響應(yīng)快。
部分效果圖
登錄注冊(cè)界面:
用戶首頁(yè)
個(gè)人中心
課程預(yù)約
器材介紹信息
后端功能截圖
數(shù)據(jù)庫(kù)設(shè)計(jì)
系統(tǒng)中用到了21張表,針對(duì)每個(gè)表都進(jìn)行了設(shè)計(jì),下面對(duì)部分核心表進(jìn)行匯總羅列展示。
(1)用戶信息表
(2)預(yù)約信息表
(3)器材信息表
(4)課程信息表
(5)公告信息表
部分代碼
@RequestMapping("/yonghu") public class YonghuController {@Autowiredprivate YonghuService yonghuService;@Autowiredprivate TokenService tokenService;/*** 登錄*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("zhanghao", username));if(user==null || !user.getMima().equals(password)) {return R.error("賬號(hào)或密碼不正確");}String token = tokenService.generateToken(user.getId(), username,"yonghu", "用戶" );return R.ok().put("token", token);}/*** 注冊(cè)*/@IgnoreAuth@RequestMapping("/register")public R register(@RequestBody YonghuEntity yonghu){//ValidatorUtils.validateEntity(yonghu);YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("zhanghao", yonghu.getZhanghao()));if(user!=null) {return R.error("注冊(cè)用戶已存在");}Long uId = new Date().getTime();yonghu.setId(uId);yonghuService.insert(yonghu);return R.ok();}/*** 退出*/@RequestMapping("/logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 獲取用戶的session用戶信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");YonghuEntity user = yonghuService.selectById(id);return R.ok().put("data", user);}/*** 密碼重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("zhanghao", username));if(user==null) {return R.error("賬號(hào)不存在");}user.setMima("123456");yonghuService.updateById(user);return R.ok("密碼已重置為:123456");}/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,YonghuEntity yonghu, HttpServletRequest request){EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));request.setAttribute("data", page);return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,YonghuEntity yonghu, HttpServletRequest request){EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));request.setAttribute("data", page);return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( YonghuEntity yonghu){EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();ew.allEq(MPUtil.allEQMapPre( yonghu, "yonghu")); return R.ok().put("data", yonghuService.selectListView(ew));}/*** 查詢*/@RequestMapping("/query")public R query(YonghuEntity yonghu){EntityWrapper< YonghuEntity> ew = new EntityWrapper< YonghuEntity>();ew.allEq(MPUtil.allEQMapPre( yonghu, "yonghu")); YonghuView yonghuView = yonghuService.selectView(ew);return R.ok("查詢用戶成功").put("data", yonghuView);}/*** 后端詳情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){YonghuEntity yonghu = yonghuService.selectById(id);return R.ok().put("data", yonghu);}/*** 前端詳情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){YonghuEntity yonghu = yonghuService.selectById(id);return R.ok().put("data", yonghu);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody YonghuEntity yonghu, HttpServletRequest request){yonghu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(yonghu);YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("zhanghao", yonghu.getZhanghao()));if(user!=null) {return R.error("用戶已存在");}yonghu.setId(new Date().getTime());yonghuService.insert(yonghu);return R.ok();}安裝部署需求
eclipse、idea運(yùn)行啟動(dòng)
系統(tǒng)部署
系統(tǒng)開(kāi)發(fā)后,在生產(chǎn)環(huán)境配置項(xiàng)目運(yùn)行環(huán)境,具體步驟如下:
安裝linux或者windows10操作系統(tǒng);
安裝JDK1.8并配置環(huán)境變量;
安裝MySQL5.7版本以上版本數(shù)據(jù)庫(kù),創(chuàng)建數(shù)據(jù)庫(kù)并執(zhí)行腳本創(chuàng)建表;
在IDEA中編輯進(jìn)行打包;
下載并配置Tomcat8.0服務(wù)器,配置系統(tǒng)服務(wù),上傳項(xiàng)目打包文件
本項(xiàng)目用到的技術(shù)和框架
1.開(kāi)發(fā)語(yǔ)言:Java
2.開(kāi)發(fā)模式:B/S
3.數(shù)據(jù)庫(kù):MySQL
4.框架:Springboot+mybatis
本項(xiàng)目中的關(guān)鍵點(diǎn)
此系統(tǒng)的開(kāi)發(fā)采用java語(yǔ)言開(kāi)發(fā),基于B/S結(jié)構(gòu),這些開(kāi)發(fā)環(huán)境使系統(tǒng)更加完善。使用到的工具和技術(shù)都是開(kāi)源免費(fèi)的。
環(huán)境工具
開(kāi)發(fā)工具 Eclipse/IDEA
語(yǔ)言 JDK1.8 、jsp、Springboot 、mybatis
硬件:筆記本電腦;
軟件:Tomcat8.0 Web服務(wù)器、Navicat數(shù)據(jù)庫(kù)客戶端、MySQL;
操作系統(tǒng):Windows 10;
其它軟件:截圖工具、常用瀏覽器;
總結(jié)
以上是生活随笔為你收集整理的今天给在家介绍一篇健身俱乐部信息管理系统设计与实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Tensorflow2.0:Faster
- 下一篇: 架构师的自我修养