基于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;
/**