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. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/541734.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用opencv进行图片分析

opencv学习 一、配置环境并打开编译器 配置opencv在你的任意一个盘里创建一个专属于opencv的文件夹便于学习与整理 打开控制台winr输入cmd&#xff0c;进入后输入conda activate opencv&#xff0c;进入环境以后进入你所设置的opencv文件的盘&#xff0c;我的是D盘&#xff0…

专业款希亦、小米、必胜、云鲸洗地机怎么样?深度测评利弊

洗地机可以说是一种非常实用的清洁工具&#xff0c;尤其是对于那些需要经常给家里地板清洁的人来说。它能够高效、彻底清洁地板&#xff0c;去除顽固污渍、灰尘和细菌&#xff0c;让家居环境更加洁净卫生。可是面对型号繁多的洗地机&#xff0c;我们应该怎么挑选呢&#xff1f;…

综合利用Cisco Packet Tracer模拟器配置园区网

1. 内容 1.在课室交换机中创建各个课室的VLAN&#xff0c;并将1-20端口平均分配给各个课室。 2.使用课室交换机的每个端口只能接入一台计算机&#xff0c;发现违规就丢弃未定义地址的包。3.网络内部使用DHCP分配各课室的IP地址&#xff0c;在课室交换机按照第一题划分的VLAN地…

使用 Docker Compose 快速搭建监控网站 uptime-kuma

有时候需要监控自己搭建的一些网站、服务是否正常运行&#xff0c; 这时候可以考虑使用一个监控网站&#xff0c; 定时的进行检测&#xff0c; 记录网站、服务的运行状态&#xff0c; 在这推荐使用 uptime-kuma。 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539…

【BOM笔记】基本概述、window对象常见事件、定时器、JS执行机制、location/navigator/history对象

文章目录 1 BOM概述1.1 什么是BOM1.2 BOM的构成 2 window 对象的常见事件2.1 窗口加载事件2.2 调整窗口大小事件 3 定时器3.1 setTimeout() 定时器3.2 setInterval() 定时器3.3 this 4 JS 执行机制4.1 JS 是单线程4.2 同步和异步4.3 JS 执行机制 5 location 对象5.1 属性5.2 方…

【bioinformation 6】分子对接

&#x1f31e;欢迎来到机器学习的世界 &#x1f308;博客主页&#xff1a;卿云阁 &#x1f48c;欢迎关注&#x1f389;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f31f;本文由卿云阁原创&#xff01; &#x1f4c6;首发时间&#xff1a;&#x1f339;2024年3月15日&…

APP自动化测试-Appium Inspector入门操作指南

上一篇博客APP自动化测试-入门示例-CSDN博客介绍了APP自动化测试的入门示例,下面详细介绍下Appium 实现的页面元素查看器工具:Appium Inspector的使用方法。 Appium Inspector简介 Appium Inspector 是 Appium 测试框架中的一个工具,用于可视化和调试移动应用程序的 UI 结…

关系代数-练习

设有一个SPJ数据库&#xff0c;包括4个关系模式S、P、J和 SPJ。 S(SNO, SNAME,STATUS,CITY) ; P(PNO,PNAME,COLOR,WEICHT) ; J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY)。 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商…

苍穹外卖问题记录(持续更新)

Day01_3.2.4前后端联调 1. 前端无法登录 &#xff08;1&#xff09;确保nginx服务器已经启动 &#xff08;2&#xff09;查看自己数据库的用户名和密码是否和老师的一样&#xff0c;不一样的话需要在application-dev.yml文件中把老师的用户名密码修改成自己的 老师的用户名…

Spring-1

目录 概念 优点 Autowired和Resource关键字 相同点 不同点 依赖注入的三种方式 概念 Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用&#xff0c;但是有些扩展是针对构建J2EE&#xff08;Java平台企业版&#xff09;平台的web应用。Spring 框架目…

【C++】实现红黑树

目录 一、认识红黑树1.1 概念1.2 定义 二、实现红黑树2.1 插入2.2 与AVL树对比 一、认识红黑树 1.1 概念 红黑树是一个二叉搜索树&#xff0c;与AVL树相比&#xff0c;红黑树不再使用平衡因子来控制树的左右子树高度差&#xff0c;而是用颜色来控制平衡&#xff0c;颜色为红色…

VS2022一个项目中运行多个c++程序

VS2022一个项目中运行多个c程序设置 问题情况解决 问题 一般使用vs2022都需要配置好一些路径依赖&#xff0c;但一个项目中只能使用一个源文件&#xff0c;这也是为了避免找不到那些依赖&#xff0c;可是我们就是想为了可以快速编写&#xff0c;而不是浪费在那些配置环境的时间…