Vue.js+SpringBoot开发天沐瑜伽馆管理系统

本文主要是介绍Vue.js+SpringBoot开发天沐瑜伽馆管理系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 数据中心模块
    • 2.2 瑜伽课程模块
    • 2.3 课程预约模块
    • 2.4 系统公告模块
    • 2.5 课程评价模块
    • 2.6 瑜伽器械模块
  • 三、系统设计
    • 3.1 实体类设计
      • 3.1.1 瑜伽课程
      • 3.1.2 瑜伽课程预约
      • 3.1.3 系统公告
      • 3.1.4 瑜伽课程评价
    • 3.2 数据库设计
      • 3.2.1 瑜伽课程表
      • 3.2.2 瑜伽课程预约表
      • 3.2.3 系统公告表
      • 3.2.4 瑜伽课程选课表
      • 3.2.5 学生成绩表
  • 四、系统展示
  • 五、核心代码
    • 5.1 查询瑜伽课程
    • 5.2 瑜伽课程预约
    • 5.3 瑜伽课程评价
    • 5.4 查询瑜伽器械
    • 5.5 新增公告
  • 六、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的天沐瑜伽馆管理系统,包含了瑜伽课程、课程预约、课程安排、课程评价、瑜伽器械、系统公告模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,天沐瑜伽馆管理系统基于角色的访问控制,给瑜伽学员、瑜伽教练、瑜伽管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

本文设计的天沐瑜伽馆管理系统的包括了系统数据中心模块,用来存放管理系统通用的模块,另外分别设计了瑜伽课程模块、课程预约模块、系统公告模块、课程评价模块和瑜伽器械模块这五大模块,用于存放系统的核心业务逻辑。

在这里插入图片描述

2.1 数据中心模块

数据中心模块包含了对天沐瑜伽馆管理系统的基础模块,比如管理谁可以登录这套系统,记录这些人登录系统做了什么,不同的人拥有不同权限的管理。

2.2 瑜伽课程模块

瑜伽课程模块用于对瑜伽课程的数据进行管理,其中包括课程名称、课程介绍、课程类型、讲师ID、讲师、课程图片、课程价格、创建人等,可以通过此模块对瑜伽课程数据进行添加、编辑更新、删除、查询操作。

2.3 课程预约模块

课程预约模块是学生对课程的预约信息进行管理,学生可以对喜欢的瑜伽课程进行预约操作,包括团课和私教课程,瑜伽课程预约的字段包括课程ID、课程名称、课程介绍、课程类型、课程图片、课程价格、预约人、预约时间等,学生可以对管理员发布的瑜伽课程进行预约,也可以查询自己的历史预约情况,管理员可以维护学生的预约记录。

2.4 系统公告模块

系统公告模块用于管理员对系统公告的维护,系统公告的作用就是通知相关信息给学员,比如瑜伽课程的停课、调课信息等。系统公告字段其中包括公告标题、公告内容、图片、状态、排序值、发布人、创建人、创建时间等,瑜伽管理员可以增加、删除、编辑和条件查询系统公告,瑜伽学生可以查询系统公告。

2.5 课程评价模块

课程评价模块是维护学生的瑜伽课程的评价,当学生完成对某个瑜伽课程的学习后,有权对该瑜伽课程进行评价,以便于改善该课程的质量,瑜伽评价字段包括课程ID、课程名称、评价等级、评语、学生ID、学生、评价时间、创建人等。

2.6 瑜伽器械模块

瑜伽器械模块是维护瑜伽课程中所需要的器械数据,瑜伽机械是学生学习瑜伽课程的必备条件,所以系统设计了这个模块,瑜伽器械字段包括器械名称、品牌、功能用途、厂商、采购价、图片、备注、创建人等,瑜伽管理员可以新增、删除、修改瑜伽机械信息,瑜伽学员可以查询管理员发布的瑜伽器械明细。


三、系统设计

3.1 实体类设计

3.1.1 瑜伽课程

在这里插入图片描述

3.1.2 瑜伽课程预约

在这里插入图片描述

3.1.3 系统公告

在这里插入图片描述

3.1.4 瑜伽课程评价

在这里插入图片描述

3.2 数据库设计

3.2.1 瑜伽课程表

在这里插入图片描述

3.2.2 瑜伽课程预约表

在这里插入图片描述

3.2.3 系统公告表

在这里插入图片描述

3.2.4 瑜伽课程选课表

在这里插入图片描述

3.2.5 学生成绩表

在这里插入图片描述

本章是对天沐瑜伽馆管理系统的设计部分。这个章节介绍了天沐瑜伽馆管理系统的设计基本思想,和各个模块的设计思想,设计了瑜伽课程模块、课程预约模块、系统公告模块、课程评价模块、瑜伽器械模块和数据中心模块。


四、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


五、核心代码

5.1 查询瑜伽课程

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询瑜伽课程")
public Result<IPage<YogaCurriculum>> getByPage(@ModelAttribute YogaCurriculum yogaCurriculum ,@ModelAttribute PageVo page){QueryWrapper<YogaCurriculum> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(yogaCurriculum.getTitle())) {qw.like("title",yogaCurriculum.getTitle());}if(!ZwzNullUtils.isNull(yogaCurriculum.getType())) {qw.eq("type",yogaCurriculum.getType());}if(!ZwzNullUtils.isNull(yogaCurriculum.getUserName())) {qw.like("user_name",yogaCurriculum.getUserName());}User currUser = securityUtil.getCurrUser();IPage<YogaCurriculum> data = iYogaCurriculumService.page(PageUtil.initMpPage(page),qw);for (YogaCurriculum vo : data.getRecords()) {QueryWrapper<YogaOrder> orderQw = new QueryWrapper<>();orderQw.eq("curriculum_id",vo.getId());orderQw.eq("order_id",currUser.getId());vo.setOrderFlag(iYogaOrderService.count(orderQw));}return new ResultUtil<IPage<YogaCurriculum>>().setData(data);
}

5.2 瑜伽课程预约

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增预约")
public Result<Object> addOne(@RequestParam String id){YogaCurriculum c = iYogaCurriculumService.getById(id);if(c == null) {return ResultUtil.error("瑜伽课程不存在");}YogaOrder o = new YogaOrder();o.setCurriculumId(c.getId());o.setCurriculumName(c.getTitle());o.setContent(c.getContent());o.setType(c.getType());o.setUserId(c.getUserId());o.setUserName(c.getUserName());o.setImage(c.getImage());o.setPrice(c.getPrice());User currUser = securityUtil.getCurrUser();o.setOrderId(currUser.getId());o.setOrderName(currUser.getNickname());o.setOrderTime(DateUtil.now());// 扣除费用User user = iUserService.getById(currUser.getId());if(o.getPrice().compareTo(user.getMoney()) > 0) {return ResultUtil.error("余额不足");}user.setMoney(user.getMoney().subtract(o.getPrice()));iUserService.saveOrUpdate(user);iYogaOrderService.saveOrUpdate(o);return ResultUtil.success();
}

5.3 瑜伽课程评价

@RequestMapping(value = "/addAppraise", method = RequestMethod.GET)
@ApiOperation(value = "新增评价")
public Result<YogaArrange> addAppraise(@RequestParam String id,@RequestParam String level,@RequestParam String content){YogaCurriculum c = iYogaCurriculumService.getById(id);if(c == null) {return ResultUtil.error("瑜伽课程不存在");}User currUser = securityUtil.getCurrUser();YogaAppraise a = new YogaAppraise();a.setCurriculumId(c.getId());a.setCurriculumName(c.getTitle());a.setLevel(level);a.setContent(content);a.setOrderId(currUser.getId());a.setOrderName(currUser.getNickname());a.setOrderTime(DateUtil.now());iYogaAppraiseService.saveOrUpdate(a);return ResultUtil.success();
}

5.4 查询瑜伽器械

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询瑜伽器械")
public Result<IPage<YogaApparatus>> getByPage(@ModelAttribute YogaApparatus yogaApparatus ,@ModelAttribute PageVo page){QueryWrapper<YogaApparatus> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(yogaApparatus.getTitle())) {qw.like("title",yogaApparatus.getTitle());}if(!ZwzNullUtils.isNull(yogaApparatus.getBrand())) {qw.like("brand",yogaApparatus.getBrand());}if(!ZwzNullUtils.isNull(yogaApparatus.getPurpose())) {qw.like("purpose",yogaApparatus.getPurpose());}IPage<YogaApparatus> data = iYogaApparatusService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<YogaApparatus>>().setData(data);
}

5.5 新增公告

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增公告")
public Result<Announcement> insert(Announcement announcement){if(Objects.equals(0,announcement.getSortOrder().compareTo(BigDecimal.ZERO))) {announcement.setSortOrder(BigDecimal.valueOf(iAnnouncementService.count() + 1L));}User currUser = securityUtil.getCurrUser();announcement.setPublisher(currUser.getNickname());iAnnouncementService.saveOrUpdate(announcement);return new ResultUtil<Announcement>().setData(announcement);
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

这篇关于Vue.js+SpringBoot开发天沐瑜伽馆管理系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/814804

相关文章

如何在 Spring Boot 中实现 FreeMarker 模板

《如何在SpringBoot中实现FreeMarker模板》FreeMarker是一种功能强大、轻量级的模板引擎,用于在Java应用中生成动态文本输出(如HTML、XML、邮件内容等),本文... 目录什么是 FreeMarker 模板?在 Spring Boot 中实现 FreeMarker 模板1. 环

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

SpringBoot整合OpenFeign的完整指南

《SpringBoot整合OpenFeign的完整指南》OpenFeign是由Netflix开发的一个声明式Web服务客户端,它使得编写HTTP客户端变得更加简单,本文为大家介绍了SpringBoot... 目录什么是OpenFeign环境准备创建 Spring Boot 项目添加依赖启用 OpenFeig

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖