基于javaweb+mysql的springboot健身房管理系统(java+springboot+vue+elementui+layui+mysql)

本文详细描述了一个基于SpringBoot、Vue、ElementUI和Layui构建的健身房管理系统,包括管理员、用户和教练的角色功能,以及环境配置、技术栈和使用说明。涵盖了数据库管理、用户登录验证、课程管理、订单管理和个人信息管理等内容。
摘要由CSDN通过智能技术生成

基于javaweb+mysql的springboot健身房管理系统(java+springboot+vue+elementui+layui+mysql)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Node.js≥10

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行

前端:WebStorm/VSCode/HBuilderX等均可

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb的SpringBoot健身房管理系统(java+springboot+vue+elementui+layui+mysql)

项目介绍

基于SpringBoot Vue的私人健身与教练预约管理系统

角色:管理员、用户、教练

管理员:管理员登录系统后,可以对首页、个人中心、用户管理、服务人员管理、服务信息管理、服务类型管理、服务预约管理、服务取消管理、服务分配管理、服务进度管理、评价信息管理、留言反馈、系统管理等功能进行相应的操作管理

用户:用户登录进入系统可以对首页,预约,个人中心,教练预约管理等功能

教练:教练登录进入系统可以对首页,个人中心,教练信息管理,教练预约管理等功能

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;

技术栈

后端:SpringBoot+Mybaits

前端:Vue+ElementUI+Layui+HTML+CSS+JS

使用说明

项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,控制台提示运行成功后再去运行前端项目; 5. 管理员用户名密码:admin/admin 普通用户名密码:user/123456

文章拆分的解读:

首页的展示情况:

每个项目的具体详情:

健身的咨询信息:

个人中心的管理情况详情:

后台管理情况的一个总体详情:

教练信息的一个详情列表:


cookie.setPath("/");

cookie.setMaxAge(7 * 24 * 60 * 60);//一星期

response.addCookie(cookie);

res.put("username",mname);

request.getSession().setAttribute("member", member);

} else {

res.put("status", "0");

res.put("msg", "用户名或者密码错误!");

return res;

/**

* 用户退出


sheet.setSid(1);

courseService.updateByPrimaryKey(sheet);

File newFile = new File(Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)+"/sterngymimages/"+filename);

try {

file.transferTo(newFile);

} catch (IOException e) {

e.printStackTrace();

srcMap.put("src",filename);

uploadMap.put("data",srcMap);

uploadMap.put("code",0);

uploadMap.put("msg","");

return uploadMap;


MemberExample.Criteria criteria = memberExample1.createCriteria();

criteria.andMemailEqualTo(memail);

long memailCount = memberService.countByExample(memberExample1);

if(memailCount>0){

verifyMap.put("status",0);

verifyMap.put("msg","邮箱已被注册");

return verifyMap;

if(mphone!=null && !mphone.equals(" ")){

MemberExample memberExample2 = new MemberExample();

MemberExample.Criteria criteria2 = memberExample2.createCriteria();

FieldError midnoError = result.getFieldError("midno");

FieldError mphoneError = result.getFieldError("mphone");

FieldError memailError = result.getFieldError("memail");

if(nameError != null){

errorList.add(nameError.getDefaultMessage());

if(mpasswordError != null){

errorList.add(mpasswordError.getDefaultMessage());

if(midnoError != null){

errorList.add(midnoError.getDefaultMessage());

if(mphoneError != null){

errorList.add(mphoneError.getDefaultMessage());

if(memailError != null){

errorList.add(memailError.getDefaultMessage());
/**

* 订单管理 -控制层

*/

@Controller

public class OrderController {

@Autowired

private OrderService orderService;

@Autowired

private ClassService classService;

/**

* 后台跳转到订单页面
File newFile = new File(Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)+"/sterngymimages/"+filename);

try {

file.transferTo(newFile);

}catch (Exception e){

e.printStackTrace();

Map<String,String > srcMap = new HashMap<String, String>();

srcMap.put("src",filename);

Map<String,Object> imgMap = new HashMap<String,Object>();

imgMap.put("code",0);

imgMap.put("msg","");

imgMap.put("data",srcMap);

return imgMap;

/**

* 查看课程信息

}else {

sheet.setSid(1);

courseService.updateByPrimaryKey(sheet);

File newFile = new File(Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)+"/sterngymimages/"+filename);

try {

file.transferTo(newFile);

} catch (IOException e) {

e.printStackTrace();

srcMap.put("src",filename);

uploadMap.put("data",srcMap);

uploadMap.put("code",0);

uploadMap.put("msg","");

return uploadMap;

登录管理控制层: 


*/

@RequestMapping("/login.html")

public String loginPage(HttpServletRequest request,Model model) throws IOException {

//判断是否用户登录时选择了记住密码,即cookie中有没有信息

Cookie[] cookies = request.getCookies();

String username = "";

String pwd = "";

if(cookies != null){

for (Cookie cookie : cookies) {

if(cookie.getName().equals("user")){


* @return

*/

@RequestMapping("/admin/course.html")

public String admincourse(Model model){

//查询所有员工,进行教练名称显示

List<Employee> employees = employeeService.selectByExample(new EmployeeExample());

model.addAttribute("employees",employees);

//查询所有课程类型

List<Coursecategory> coursecategories = coursecategoryService.selectByExample(new CoursecategoryExample());

model.addAttribute("coursecategories",coursecategories);

//查询所有课程功能

List<Coursefunction> coursefunctions = coursefunctionService.selectByExample(new CoursefunctionExample());

model.addAttribute("coursefunctions",coursefunctions);


return "forward:/admin/course.html";

@RequestMapping("/admin/course/del.html")

@ResponseBody

public Map<String,Object> courseDel(String cid){

int i = courseService.deleteByPrimaryKey(Integer.parseInt(cid));

Map<String ,Object> delMap = new HashMap<String,Object>();

if(i>0){//删除成功

delMap.put("status",1);

}else{

delMap.put("status",0);

return delMap;


int i = employeeService.deleteByPrimaryKey(Integer.parseInt(eid));

if(i>0){

delMap.put("status","1");

}else {

delMap.put("status","0");

return delMap;

/**

* 教练管理

*/

@RequestMapping("/admin/trainer.html")

public String adminTrainer(Model model){
return verifyMap;

/**

* 忘记密码 -重置密码

*/

@RequestMapping("/user/resetpwd.html")

@ResponseBody

public Map<String,Object> resetPwd(String email){

Map<String,Object> map = new HashMap<String,Object>();

if(email!=null&&!email.equals(" ")){

MemberExample memberExample = new MemberExample();

MemberExample.Criteria criteria = memberExample.createCriteria();

criteria.andMemailEqualTo(email);

List<Member> members = memberService.selectByExample(memberExample);
ClassExample classExample = new ClassExample();

ClassExample.Criteria criteria = classExample.createCriteria();

criteria.andCourseIdEqualTo(Integer.parseInt(cid));

List<Class> classes = classService.selectByExample(classExample);

//查询该课程已预订人数

for (Class aClass : classes) {

TblOrderExample tblOrderExample = new TblOrderExample();

TblOrderExample.Criteria criteria1 = tblOrderExample.createCriteria();

criteria1.andClassIdEqualTo(aClass.getClassid());

long haveOrder = orderService.countByExample(tblOrderExample);

aClass.setHaveOrder(new Long(haveOrder).intValue());


model.addAttribute("posts",posts);

//分页查询员工

EmployeeExample employeeExample = new EmployeeExample();

EmployeeExample.Criteria criteria = employeeExample.createCriteria();

if(ename != null&& !ename.equals("")){

criteria.andEnameLike("%"+ename+"%");

PageHelper.startPage(Integer.parseInt(page),Integer.parseInt(limit));

List<Employee> employees = employeeService.selectByExample(employeeExample);

PageInfo<Employee> employeePageInfo = new PageInfo<Employee>(employees);

employeeMap.put("code",0);

employeeMap.put("msg","");

employeeMap.put("count",employeePageInfo.getTotal());


response.setContentType("text/html;charset=utf-8;");

PrintWriter writer = response.getWriter();

writer.print("<scriipt>alert('没有访问权限!');parent.location.href='"+request.getContextPath()+"/index.html'</script>");

return false;

return request.getContextPath()+"/admin/adminindex";

/**

* 后台跳转到会员管理

* @return

*/

@RequestMapping("/admin/memberlist.html")

public String memberlistPage(){

return "admin/member/membermanage";


*/

@RequestMapping("/admin/orderlist.html")

@ResponseBody

public Map<String,Object> orderList(String page,String limit,String mname){

Map<String,Object> orderPageMap = new HashMap<String,Object>();

PageHelper.startPage(Integer.parseInt(page),Integer.parseInt(limit));

List<TblOrder> orders = orderService.selectAllOrderWithMember(mname);

PageInfo<TblOrder> orderPageInfo = new PageInfo<TblOrder>(orders);

orderPageMap.put("code",0);

orderPageMap.put("msg","");

orderPageMap.put("count",orderPageInfo.getTotal());

orderPageMap.put("data",orders);

return orderPageMap;

@RequestMapping("/admin/orderlist.html")

@ResponseBody

public Map<String,Object> orderList(String page,String limit,String mname){

Map<String,Object> orderPageMap = new HashMap<String,Object>();

PageHelper.startPage(Integer.parseInt(page),Integer.parseInt(limit));

List<TblOrder> orders = orderService.selectAllOrderWithMember(mname);

PageInfo<TblOrder> orderPageInfo = new PageInfo<TblOrder>(orders);

orderPageMap.put("code",0);

orderPageMap.put("msg","");

orderPageMap.put("count",orderPageInfo.getTotal());

orderPageMap.put("data",orders);

return orderPageMap;

/**

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值