【附源码】健身房综合管理系统(源码+数据库+毕业论文齐全)java开发springboot+vue框架,可做毕业设计或课程设计
🙊作者简介:多年一线开发工作经验,分享技术代码帮助学生学习。自有计算机毕设的工作室团队,专注计算机毕设开发、定制、远程、文档编写指导等。
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 Java毕设项目精品实战案例《3000+套》🍅
⬇️文章末尾获取联系方式,需要源码+毕设论文或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
本系统包含(源码+数据库+万字毕业论文) 文末可获取本项目java源码和数据库参考。
系统程序文件列表

在软件开发的过程中系统的可行性分析是必不可少的,可行性的研究就是评估问题是否能得到解决并且是要以最少的时间和最少的代价来解决。为实现上面的目标还要必须考虑到解决这些问题的方法的优点和缺点,还要考虑到实现了这些系统规模的开发带来的经济效益。这里可以用技术的可行性,操作的可行性,经济的可行性对我们的系统进行可行性的研究。健身房综合管理系统的可行性分析如下所示:
健身房综合管理系统是在Springboot和MySQL的环境中运行的,而系统的成本也只是主要分布在软件的开发和维护上。但如果系统上线投入使用之后,不仅可以方便人们,还节省了用户的时间和精力,而且还极大限度的方便了运营者,减少了运营者的工作强度。健身房综合管理系统其实也不太复杂,在开发的时候经济支出也不大,在开发系统时时间用的也不多,从时间的优势和对经济利益方面产生的好处远超过维护和管理的成本,所以开发此系统是可行合适的。
本系统是基于浏览器和服务器的健身房综合管理系统,系统开发完成之后用户只需要在浏览器中输入正确的URL地址即可进行访问。本系统的前台页面简单明了,在没有操作指导的情况下也可以进行操作,无论是系统管理员还是普通用户在页面中所有的操作都是在浏览器中完成的,因此只要电脑在有网络的情况下,打开浏览器都能操作。而且在使用之前也不用进行相关的环境配置,因此本系统方便、简单、易于使用,所以该系统是容易并且可操作的。
根据用户对系统的需求,要求系统简单操作,能够准确,完整的对信息进行管理。健身房综合管理系统在对需求做解析后,整个系统主要分为三个部分:管理员、会员、教练,每个模块下的分支功能不一样。对功能做出如下说明:
管理员模块:会员注册管理、余额充值管理、到期提醒、健身商品管理、报名课程管理,购买商品管理、会员办卡管理、会员续卡管理。
会员模块:健身课程、健身商品、公告信息、会员办卡、余额充值、会员续卡、报名课程、购买商品。
教练模块:个人中心、健身课程管理、报名课程管理。
会员用例图如下所示。
图3-1 会员用例图
管理员用例图如下所示。
图3-2 管理员用例图
教练用例图如下所示。
图3-3 教练用例图
根据用例图,对一些重要的用例进行描述。
注册用例描述如下表所示。
表3-1 注册用例描述
|
用例名称 |
注册 |
|
参与者 |
用户 |
|
描述 |
用户填写相关注册数据完成注册成为系统的用户 |
|
前置条件 |
无 |
|
后置条件 |
用户填写相关注册数据并且要注册的账号不存在与系统中 |
|
事件流 |
|
|
补充说明 |
|
登录用例描述如下表所示。
表3-1 登录用例描述
|
用例名称 |
登录 |
|
参与者 |
用户 |
|
描述 |
用户填写用户名和密码登录系统 |
|
前置条件 |
用户拥有账号和密码 |
|
后置条件 |
用户名和密码都正确 |
|
事件流 |
(1)用户在登录页面输入用户名和密码 (2)系统检测用户输入的用户名和密码是否正确 (3)用户名和密码正确的话,显示登录成功并返回主页面 |
|
补充说明 |
(a)系统检查除密码不正确,返回登录页面 |
个人信息管理用例描述如下表所示。
表3-1 个人信息管理用例描述
|
用例名称 |
管理和修改个人信息 |
|
参与者 |
用户 |
|
描述 |
用户查看、修改个人信息 |
|
前置条件 |
用户已登录到系统中 |
|
后置条件 |
无 |
|
事件流 |
(1)用户查看个人信息 (2)用户修改个人信息 |
|
补充说明 |
(a)用户可修改密码 (b)用户可修改个人资料,例如姓名,头像等 |
评论用例描述如下表所示。
表3-1 评论用例描述
|
用例名称 |
评论 |
|
参与者 |
用户 |
|
描述 |
用户发表评论 |
|
前置条件 |
用户已登录 |
|
后置条件 |
评论内容不违规 |
|
事件流 |
(1)在评论页输入评论数据,提交评论 (2)更新并显示评论板 |
|
补充说明 |
(a)评论内容不能为空 |
课程报名用例描述如下表所示。
表3-1 课程报名用例描述
|
用例名称 |
课程报名 |
|
参与者 |
用户 |
|
描述 |
用户执行课程报名操作 |
|
前置条件 |
用户已登录 |
|
后置条件 |
该课程存在,并且能被报名 |
|
事件流 |
(1)在课程页点击要报名的课程 (2)填写课程报名表单 |
|
补充说明 |
(a)课程报名表单数据不能为空 |
健身课程用例描述如下表所示。
表3-1 健身课程用例描述
|
用例名称 |
健身课程管理 |
|
参与者 |
用户 |
|
描述 |
用户提供新增、修改、删除、查阅等功能 |
|
前置条件 |
|
|
后置条件 |
无 |
|
事件流 |
(1)用户查看修改健身课程 (2)用户添加健身课程 (3)用户删除健身课程 |
|
补充说明 |
(a)新添加的健身课程不符合要求时会添加失败 (b)修改的健身课程不符合要求时会修改失败 |
健身房综合管理系统的业务流程如下图所示。
图3-4 系统业务流程图
管理员拥有最高权限,在对各项信息进行增加、删除、修改后会更新后台数据库的内容。
与强调控制逻辑的程序流程图不同,它更关心的是整个系统中数据的具体流动以及数据的加工处理的整个客观过程,是对数据规格的说明。也正因如此,系统数据流图作为系统结构化分析方法中极为重要的一种描述工具备受青睐。
瑜伽健身房综合管理系统的顶层数据流如下图所示。
图3-5系统顶层数据流图
系统顶层数据流:外部实体为用户,第一个流程为登录验证,用户信息表返回密码验证,是否正确,正确则登录系统,错误则反馈信息,登录系统后,根据不同用户的功能选择,来读写数据库。
系统底层数据流如下图所示。
图3-6系统底层数据流图
系统底层数据流:外部实体为管理员和会员,数据流分别有管理员和会员流向系统数据流程,数据表提供数据支持,来完成逻辑操作。
由于本系统在逻辑事务处理方面对数据库的操作比较频繁所以系统在底层连接数据库时并没有使用原生的JDBC,而是把JDBC进行了封装,封装之后相当于一个连接数据库的工具DB UTIL,这样使用起来会更加方便而且这样进行封装还可以降低系统中代码的冗余,当我们需要连接和使用数据库时只需要调用这个工具里面的一个方法就可以了。而且通过封装可以把对数据库的操作独立起来,当需要连接不同种类的数据库时只需要加以修改就可以达到目的。
系统架构如下图所示。

图4-1系统架构图
进入系统后首先要进行登录,验证你的身份,赋予你不同的权限。当你成功登录后,页面会有多个板块,分别是会员注册管理、余额充值管理、到期提醒、健身商品管理、报名课程管理,购买商品管理、会员办卡管理、会员续卡管理。里面界面简单易懂,根据标示可以直接进行方便快捷的操作。
管理员账户的基本信息管理。主要提供管理员账户的基本信息录入、删除、维护和查询等功能,包括:
管理员录入管理员账户基本信息;
管理员更新、增加及删除管理员账户基本信息;
用户根据管理员账户 ID 查询基本信息;
系统管理员更改个人密码;
健身商品信息管理。主要进行健身商品信息录入、修改和查询功能,包括:
管理员对健身商品信息进行增删改查以及用户可以进行健身商品的查看搜索;
管理员更新、增加及删除健身商品的基本信息;
课程报名的基本信息管理。主要是提供课程报名的基本信息录入、维护和查询功能,包括:
用户录入课程报名基本信息;
用户更新、增加及删除课程报名基本信息;
用户根据课程报名 ID 查询课程报名基本信息;
健身课程的基本信息管理。主要提供健身课程的基本信息录入、删除、维护和查询功能, 包括:
管理员录入健身课程信息;
管理员更新、增加健身课程基本信息;
管理员根据健身课程 ID 查询健身课程基本信息;
用户根据个人信息导航栏查询健身课程信息;
一个好的系统它的后台数据库一定要考虑的全面,这和我们建造房子一个概念,房子不是随心所欲建起来的,一切都是在合理设计的基础是实现的,地基打牢固了房子才能建的更高。数据库如果设计的很合理,而且每个方面都能考虑到了那么这个系统才能不会出现大的问题。
本系统在数据库中存放了多张表,分别是健身商品表、课程报名表、商品购买表、会员充值表、会员续卡表。
系统的主要实体间关系E-R图如下图所示。

图4-7系统E-R图
此环节把概念转变成数据。由于整个数据库所处理的信息过多,就只展示几个表。
表名:baomingkecheng
功能:报名课程
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
dingdanbianhao |
varchar |
200 |
订单编号 |
||
|
kechengmingcheng |
varchar |
200 |
课程名称 |
||
|
jine |
float |
费用 |
|||
|
goumaishijian |
datetime |
购买时间 |
|||
|
zhanghao |
varchar |
200 |
账号 |
||
|
xingming |
varchar |
200 |
姓名 |
||
|
shouji |
varchar |
200 |
手机 |
||
|
huiyuanyue |
float |
会员余额 |
|||
|
jiaolianzhanghao |
varchar |
200 |
教练账号 |
||
|
jiaolianxingming |
varchar |
200 |
教练姓名 |
||
|
sfsh |
varchar |
200 |
是否审核 |
待审核 |
|
|
shhf |
longtext |
4294967295 |
审核回复 |
||
|
ispay |
varchar |
200 |
是否支付 |
未支付 |
表名:jiaolian
功能:教练
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
jiaolianzhanghao |
varchar |
200 |
教练账号 |
||
|
mima |
varchar |
200 |
密码 |
||
|
jiaolianxingming |
varchar |
200 |
教练姓名 |
||
|
nianling |
int |
年龄 |
|||
|
jiaoling |
int |
教龄 |
|||
|
xingbie |
varchar |
200 |
性别 |
||
|
lianxidianhua |
varchar |
200 |
联系电话 |
||
|
touxiang |
longtext |
4294967295 |
头像 |
表名:aboutus
功能:关于我们
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
title |
varchar |
200 |
标题 |
||
|
subtitle |
varchar |
200 |
副标题 |
||
|
content |
longtext |
4294967295 |
内容 |
||
|
picture1 |
longtext |
4294967295 |
图片1 |
||
|
picture2 |
longtext |
4294967295 |
图片2 |
||
|
picture3 |
longtext |
4294967295 |
图片3 |
表名:jianshenshangpin
功能:健身商品
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
shangpinmingcheng |
varchar |
200 |
商品名称 |
||
|
shangpinfenlei |
varchar |
200 |
商品分类 |
||
|
guige |
varchar |
200 |
规格 |
||
|
jiage |
float |
价格 |
|||
|
shuliang |
int |
数量 |
|||
|
fengmian |
longtext |
4294967295 |
封面 |
||
|
shiyongshuoming |
longtext |
4294967295 |
使用说明 |
||
|
shangjiariqi |
date |
上架日期 |
|||
|
shangpinjieshao |
longtext |
4294967295 |
商品介绍 |
||
|
clicktime |
datetime |
最近点击时间 |
|||
|
clicknum |
int |
点击次数 |
0 |
表名:jianshenkecheng
功能:健身课程
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
kechengmingcheng |
varchar |
200 |
课程名称 |
||
|
kechengfenlei |
varchar |
200 |
课程分类 |
||
|
kaishishijian |
datetime |
开始时间 |
|||
|
keshi |
varchar |
200 |
课时 |
||
|
jine |
float |
费用 |
|||
|
shangkedidian |
varchar |
200 |
上课地点 |
||
|
jiaolianzhanghao |
varchar |
200 |
教练账号 |
||
|
jiaolianxingming |
varchar |
200 |
教练姓名 |
||
|
chuangjianshijian |
datetime |
创建时间 |
|||
|
kechengneirong |
longtext |
4294967295 |
课程内容 |
||
|
fengmian |
longtext |
4294967295 |
封面 |
||
|
clicktime |
datetime |
最近点击时间 |
|||
|
clicknum |
int |
点击次数 |
0 |
表名:huiyuanxuka
功能:会员续卡
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
zhanghao |
varchar |
200 |
账号 |
||
|
xingming |
varchar |
200 |
姓名 |
||
|
huiyuankaleixing |
varchar |
200 |
会员卡类型 |
||
|
jine |
float |
售价 |
|||
|
youxiaotianshu |
varchar |
200 |
有效天数 |
||
|
xukashijian |
datetime |
续卡时间 |
|||
|
ispay |
varchar |
200 |
是否支付 |
未支付 |
表名:huiyuanleixing
功能:会员类型
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
huiyuankaleixing |
varchar |
200 |
会员卡类型 |
||
|
youxiaotianshu |
int |
有效天数 |
|||
|
jine |
float |
售价 |
|||
|
xiangqing |
varchar |
200 |
详情 |
表名:huiyuanbanka
功能:会员办卡
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
zhanghao |
varchar |
200 |
账号 |
||
|
xingming |
varchar |
200 |
姓名 |
||
|
huiyuankaleixing |
varchar |
200 |
会员卡类型 |
||
|
jine |
float |
售价 |
|||
|
youxiaotianshu |
varchar |
200 |
有效天数 |
||
|
bankashijian |
datetime |
办卡时间 |
|||
|
ispay |
varchar |
200 |
是否支付 |
未支付 |
表名:huiyuan
功能:会员
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
zhanghao |
varchar |
200 |
账号 |
||
|
mima |
varchar |
200 |
密码 |
||
|
xingming |
varchar |
200 |
姓名 |
||
|
nianling |
int |
年龄 |
|||
|
xingbie |
varchar |
200 |
性别 |
||
|
shouji |
varchar |
200 |
手机 |
||
|
touxiang |
longtext |
4294967295 |
头像 |
||
|
jine |
float |
金额 |
|||
|
huiyuankaleixing |
varchar |
200 |
会员卡类型 |
||
|
youxiaotianshu |
varchar |
200 |
有效天数 |
表名:yuechongzhi
功能:余额充值
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
zhanghao |
varchar |
200 |
账号 |
||
|
xingming |
varchar |
200 |
姓名 |
||
|
jine |
float |
金额 |
|||
|
chongzhishijian |
datetime |
充值时间 |
|||
|
beizhu |
varchar |
200 |
备注 |
||
|
ispay |
varchar |
200 |
是否支付 |
未支付 |
表名:goumaishangpin
功能:购买商品
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
dingdanbianhao |
varchar |
200 |
订单编号 |
||
|
shangpinmingcheng |
varchar |
200 |
商品名称 |
||
|
jiage |
float |
价格 |
|||
|
shuliang |
int |
数量 |
|||
|
jine |
float |
总价 |
|||
|
xiadanshijian |
datetime |
下单时间 |
|||
|
beizhu |
varchar |
200 |
备注 |
||
|
zhanghao |
varchar |
200 |
账号 |
||
|
xingming |
varchar |
200 |
姓名 |
||
|
shouji |
varchar |
200 |
手机 |
||
|
huiyuanyue |
float |
会员余额 |
|||
|
ispay |
varchar |
200 |
是否支付 |
未支付 |
该登录模块利用js进行设计,JavaScript函数CheckSubmit()对输入框是否为空进行验证,使用js的技术结合MySQL 2012数据库的查询语句进行登录信息的验证。首先从文本框中分别获得账号user_name和密码user_pw,使用Sql语句“select * from t_user where user_name=‘”+user_name+“’ and user_pw=‘”+user_pw+“’”将查询结果赋给rs结果集,若rs.next()返回值为空,表示数据库找不到该用户数据,若rs.next()返回值不为空,则显示登录成功,进入主界面。
用户登录流程图如下所示。

图5-1用户登录流程
用户登录流程:用户只有输入正确的用户名和密码才会成功进入系统,用户输入用户名密码后点击登录按钮,系统会进行校验该用户名是否存在,如果用户名与密码不匹配或者用户名不存在,则返回主界面。
系统登录界面如下图所示。

图5-2系统登录界面
登录功能的逻辑代码如下所示。
* 登录
* @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,"用户不存在");
}
在浏览器的地址栏里输入http://localhost:8080/index.vue 地址,就可以跳转到瑜伽健身房综合管理系统的首页,首页是由4个页面组成的,包括top、left、down和center等页面,这里也是浏览者访问系统的入口,通过@ include引入。
首页载入流程图如下所示。

图5-3首页载入流程
首页载入流程:系统先连接数据库,显示界面参数初始化,读取数据库的数据表,读取html显示模板,对数据按添加时间排序,按照模板设计位置显示数据,刷新显示界面,断开数据库连接。
首页如下图所示。

图5-4首页界面
其中载入首页的主要代码如下。
public Map<String, Object> obj(HttpServletRequest request) {
Query select = service.select(service.readQuery(request), service.readConfig(request));
List resultList = select.getResultList();
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
}
public Query select(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select ");
sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
}
if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return runEntitySql(sql.toString());
}
-
-
- 用户注册模块
-
系统的用户通过自行注册生成,在系统首页点击用户注册菜单,系统跳转到对应的注册页面。点击重置按钮,清空所填数据,点击注册按钮完成注册。
用户注册流程图如下所示。

图5-5用户注册流程
注册个人信息实现流程为:填写个人信息,系统使用JQuery选择器获取在网页中输入的注册信息,再对联系方式、登录密码等信息进行验证,验证通过后用Ajax异步请求方式向服务器发送请求并把数据传送到后台,然后验证用户名是否已存在,如果已存在则注册失败提示“用户名已存在”;如果用户表中没有该用户名则把用户信息加入数据库,把操作状态以json字符串方式返回到前台。Ajax请求成功接收到返回的数据时会触发成功回调函数,然后解析返回的json字符串,系统根据返回信息弹出提示框,注册成功后返回登录页。
用户注册界面如下图所示。

图5-6用户注册界面
用户注册页面的逻辑代码如下。
* 注册
* @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传参,找到该课程,在add.vue提交报名表单,生成报名记录。
健身课程报名流程如下图所示。

图5-7健身课程报名流程
健身课程报名界面如下图所示。

图5-8健身课程报名界面
健身课程报名的主要逻辑代码:
@RequestMapping(value = {"/avg_group", "/avg"})
public Map<String, Object> avg(HttpServletRequest request) {
Query count = service.avg(service.readQuery(request), service.readConfig(request));
return success(count.getResultList());
}
管理员对会员用户的管理,在yhzhgl.vue实现管理员用户的管理,包括录入、删除、修改,修改密码通过SESSION获取会员用户名,然后输入新密码,提交到mod.vue中,使用sql命令更新密码。
会员用户管理的界面如下图所示。

图5-9会员用户管理界面
用户在系统前台后,数据库的健身课程表生成私教课记录信息,管理员在jianshenkecheng_list.vue录入,进行管理。
健身课程管理如下图所示。

图5-10健身课程管理界面
健身课程管理主要逻辑代码如下所示。
@RequestMapping("auth")
public class AuthController extends BaseController<Auth, AuthService> {
/**
* 服务对象
*/
@Autowired
public AuthController(AuthService service) {
setService(service);
}
}
-
-
- 健身商品管理模块
-
管理员在kechengxinxi_add.vue发布健身商品,跳转至健身商品添加表单,提交健身商品,包括商品编号、名称、规格、价格、数量、上架日期等,商品信息提交后,数据库的健身商品信息表刷新数据,系统前台将健身商品信息展示出来。
健身商品管理的界面如所示。

图5-11健身商品管理界面
健身商品管理的逻辑代码如下。
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
public Map<String,Object> readBody(BufferedReader reader){
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map<String,Object> body){
StringBuffer sql = new StringBuffer("INSERT INTO ");
sql.append("`").append(table).append("`").append(" (");
for (Map.Entry<String,Object> entry:body.entrySet()){
sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
}
sql.deleteCharAt(sql.length()-1);
sql.append(") VALUES (");
for (Map.Entry<String,Object> entry:body.entrySet()){
Object value = entry.getValue();
if (value instanceof String){
sql.append("'").append(entry.getValue()).append("'").append(",");
}else {
sql.append(entry.getValue()).append(",");
}
}
sql.deleteCharAt(sql.length() - 1);
sql.append(")");
log.info("[{}] - 插入操作:{}",table,sql);
Query query = runCountSql(sql.toString());
query.executeUpdate();
}
-
-
- 会员办卡管理模块
-
会员办卡管理包括新增会员办卡、删除会员办卡、会员办卡查询等,以会员办卡新增为例,在视图层请求新增反馈后,调用业务逻辑层,通过业务逻辑层的接口调用底层的数据逻辑层完成数据库联动操作。
会员办卡管理的界面如所示。

图5-12会员办卡管理界面
会员办卡管理的逻辑代码如下。
@RequestMapping("/get_list")
public Map<String, Object> getList(HttpServletRequest request) {
Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
return success(map);
}
在这个产品被投入使用前,首先需要进行试用,这是重要的环节。考虑到某个部分的开发没有缺陷情况下,把各种模块拼接,也有一定概率就存在矛盾。这就好比每个人都很独特,但聚在一起就显得杂乱无章,需要保证有默契的配合。对于测试,要看它的各项内容是否契合的原则。若与最初定下的标准有一定程度上的出入,那么就需要做出一些调整,让最终的大方向朝着目标前进。
登录测试用例如下表所示。
表6-1登录测试用例
|
输入 |
输出 |
|
|
用户名 |
密码 |
|
|
空 |
空 |
用户名或密码不能为空 |
|
蔡徐坤 |
123 |
用户名不能为汉字,请重新输入 |
|
789 |
789 |
用户名或密码错误 |
|
678 |
123456 |
登录成功 |
注册测试用例如下表所示。
表6-2注册测试用例
|
输入 |
输出 |
|||
|
用户名 |
密码 |
确认密码 |
邮箱 |
|
|
空 |
空 |
空 |
空 |
请输入完整 |
|
001 |
001 |
001 |
001@qq.com |
注册成功 |
|
002 |
002 |
003 |
002@qq.com |
注册失败,两次密码不一致 |
|
003 |
003 |
003 |
003.com |
注册失败,邮箱格式不正确 |
-
-
- 评论测试
-
评论测试用例如下表所示。
表6-3评论测试用例
|
功能 |
测试数据 |
预期结果 |
测试结果 |
|
评论反馈 |
评论内容:你太美 |
在评论列表中显示评论内容,评论显示为未回复 |
和预期一致 |
|
回复评论 |
评论回复内容:你太美啊 |
评论列表中的评论“你太美”显示已回复 |
和预期一致 |
|
删除评论 |
删除评论“你太美” |
评论成功删除 |
和预期一致 |
-
-
- 公告信息管理测试
-
公告信息测试用例如下表所示。
表6-4添加公告信息测试用例
|
输入 |
输出 |
|||
|
标题 |
类别 |
内容 |
备注 |
|
|
空 |
空 |
空 |
空 |
添加失败 |
|
公告信息1 |
A |
1 |
添加成功 |
|
|
空 |
A |
1 |
添加失败,标题不能为空 |
|
|
公告信息2 |
空 |
1 |
添加失败,请选择类别 |
|
-
-
- 健身课程管理测试
-
健身课程测试用例如下表所示。
表6-4添加健身课程测试用例
|
输入 |
输出 |
|||
|
名称 |
类别 |
价格 |
备注 |
|
|
空 |
空 |
空 |
空 |
添加失败 |
|
健身课程1 |
A |
100 |
添加成功 |
|
|
空 |
A |
100 |
添加失败,名称不能为空 |
|
|
课程2 |
空 |
100 |
添加失败,请选择类别 |
|
-
-
- 健身商品测试
-
健身商品测试用例如下表所示。
表6-5健身商品测试用例
|
输入 |
输出 |
|||
|
名称 |
类别 |
价格 |
规格 |
|
|
空 |
空 |
空 |
空 |
添加失败 |
|
课程1 |
A |
100 |
001 |
添加成功 |
|
空 |
A |
100 |
001 |
添加失败,名称不能为空 |
|
课程2 |
空 |
100 |
001 |
添加失败,请选择类别 |
经过测试,得到测试结果如下表所示。
表6-6测试结果
|
测试项目 |
内容和目的 |
测试结果 |
|
用户登录 |
输入正确用户名与密码 |
可以登录 |
|
输入错误用户名与密码 |
提示错误的信息 |
|
|
健身课程管理(添加,修改,删除) |
输入正确信息 |
成功完成 |
|
输入错误信息 |
操作失败 |
|
|
修改登录密码 |
修改新的密码 |
成功完成 |
|
会员管理(添加,修改,删除) |
输入正确信息 |
成功完成 |
|
输入错误信息 |
操作失败 |
|
|
评论管理(添加,修改,删除) |
输入正确信息 |
成功完成 |
|
输入错误信息 |
操作失败 |
|
|
报名课程管理(添加,修改,删除) |
输入正确信息 |
成功完成 |
|
输入错误信息 |
操作失败 |
|
|
健身商品管理(添加,修改,删除) |
输入正确信息 |
成功完成 |
|
输入错误信息 |
操作失败 |
🙊项目介绍:已获导师指导并通过的高分项目。本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。
⬇️文章末尾获取联系方式,需要源码+毕设论文或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
源码、数据库获取↓↓↓↓
更多推荐

所有评论(0)