首页 > 编程语言 >天沐瑜伽馆管理系统 JAVA开源项目 毕业设计

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计

时间:2023-11-04 13:32:11浏览次数:35  
标签:JAVA 毕业设计 预约 瑜伽 value 开源 课程 模块 currUser

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_spring boot


一、摘要


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


天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_java_02

https://gf.bilibili.com/item/detail/1104311029

为了帮助小白入门 Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。



二、功能模块

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

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_spring boot_03

2.1 数据中心模块

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

2.2 瑜伽课程模块

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

2.3 课程预约模块

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

2.4 系统公告模块

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

2.5 课程评价模块

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

2.6 瑜伽器械模块

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


三、系统设计

3.1 实体类设计

3.1.1 瑜伽课程

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_瑜伽_04

3.1.2 瑜伽课程预约

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_spring boot_05

3.1.3 系统公告

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_vue.js_06

3.1.4 瑜伽课程评价

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_java_07

3.2 数据库设计

3.2.1 瑜伽课程表

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_vue.js_08

3.2.2 瑜伽课程预约表

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_管理系统_09

3.2.3 系统公告表

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_spring boot_10

3.2.4 瑜伽课程选课表

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_管理系统_11

3.2.5 学生成绩表

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_瑜伽_12

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


四、系统展示

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_瑜伽_13

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_java_14

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_瑜伽_15

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_vue.js_16

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_管理系统_17

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_管理系统_18

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_瑜伽_19

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_vue.js_20


五、核心代码

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

天沐瑜伽馆管理系统 JAVA开源项目 毕业设计_java_21


感谢大家点赞、收藏、关注、评论啦 ,

标签:JAVA,毕业设计,预约,瑜伽,value,开源,课程,模块,currUser
From: https://blog.51cto.com/u_16322671/8181748

相关文章

  • 无涯教程-MongoDB - Java
    在本章中,无涯教程将学习如何设置MongoDBJDBC驱动程序。安装驱动在Java程序中开始使用MongoDB之前,需要确保在计算机上设置了MongoDBJDBC驱动程序和Java,您可以检查Java教程以在计算机上安装Java。现在,让无涯教程检查如何设置MongoDBJDBC驱动程序。您需要从路径下载 jarmong......
  • JavaScript内存管理
    在使用垃圾回收的编程环境中,开发者通常无须关心内存管理。不过,JavaScript运行在一个内存管理与垃圾回收都很特殊的环境。分配给浏览器的内存通常比分配给桌面软件的要少很多,分配给移动浏览器的就更少了。这更多出于安全考虑而不是别的,就是为了避免运行大量JavaScript的网页耗......
  • JavaScript如何定义类与函数如何实现继承自Object类实现方法------前端
    HTML页面用于展示<!DOCTYPEhtml><!--这是HTML的注释--><htmllang="en"id="myHtml"> <head> <!--这里不是设置了编码,而是告诉浏览器,用什么编码方式打开文件避免乱码--> <metacharset="UTF-8"> <metaname="viewport"......
  • JavaSE day03【多态、内部类、 常用API】测评题
    选择题题目1(多选):下列关于多态的前提描述正确的是()选项:​ A.继承/实现关系​ B.子父类存在同名成员变量​ C.方法重写​ D.父类的引用指向子类的对象题目2(单选):下列关于多态成员访问的特点错误的是()选项:​ A.构造方法和继承一样,子类通过super()......
  • JavaScript Array对象(属性、方法) 留言板案例
    一、创建数组对象的方式vararrOb=newArray(值,........)vararrOb=Array(值,.......)vararrOb=[值,.........]vararrOb=newArray(n);arrOb[0]=值1;arrOb[1]=值2;二、数组的属性length   //数组中元素的数目vararr=['云南','九寨沟','拉萨','西双版纳','......
  • java实现大文件的分片上传与下载
    1.1项目背景对于超大文件上传我们可能遇到以下问题•大文件直接上传,占用过多内存,可能导致内存溢出甚至系统崩溃•受网络环境影响,可能导致传输中断,只能重新传输•传输时间长,用户无法知道传输进度,用户体验不佳1.2项目目标对于上述问题,我们需要对文件做分片传输。分片传输就是......
  • JavaSE day03-多态 ,内部类,常用API
    JavaSEday03-多态,内部类,常用API多态内部类常用API1多态1.1面向对象三大特征?封装,继承,多态1.2什么是多态?一个对象在不同时刻体现出来的不同形态举例:一只猫对象我们可以说猫就是猫:Catcat=newCat();我们也可以说猫是动物:Animal......
  • 205-java 从资源目录获取txt内容
    java从资源目录获取txt内容publicStringgetCookie(){ClassPathResourceclassPathResource=newClassPathResource("cookie.txt");Stringck=FileUtil.readString(classPathResource.getAbsolutePath(),CharsetUtil.CHARSET_UTF_8);ret......
  • java练习:热部署
          ......
  • 【Java】智慧校园云SaaS平台源码带微信小程序
    智慧校园以互联网为基础,以“大数据+云服务”为核心,融合校园教学、管理、生活软硬件平台,定义智慧校园新生活。智慧校园管理平台管理者、教师、学生、家长提供一站式智慧校园解决方案,实现校园管理智能化、校园生活一体化、校园设施数字化、课堂教学生动化、家校沟通无缝化。一、智慧......