赞
踩
基于JAVA+Vue+SpringBoot+MySQL的天沐瑜伽馆管理系统,包含了瑜伽课程、课程预约、课程安排、课程评价、瑜伽器械、系统公告模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,天沐瑜伽馆管理系统基于角色的访问控制,给瑜伽学员、瑜伽教练、瑜伽管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。
本文设计的天沐瑜伽馆管理系统的包括了系统数据中心模块,用来存放管理系统通用的模块,另外分别设计了瑜伽课程模块、课程预约模块、系统公告模块、课程评价模块和瑜伽器械模块这五大模块,用于存放系统的核心业务逻辑。
数据中心模块包含了对天沐瑜伽馆管理系统的基础模块,比如管理谁可以登录这套系统,记录这些人登录系统做了什么,不同的人拥有不同权限的管理。
瑜伽课程模块用于对瑜伽课程的数据进行管理,其中包括课程名称、课程介绍、课程类型、讲师ID、讲师、课程图片、课程价格、创建人等,可以通过此模块对瑜伽课程数据进行添加、编辑更新、删除、查询操作。
课程预约模块是学生对课程的预约信息进行管理,学生可以对喜欢的瑜伽课程进行预约操作,包括团课和私教课程,瑜伽课程预约的字段包括课程ID、课程名称、课程介绍、课程类型、课程图片、课程价格、预约人、预约时间等,学生可以对管理员发布的瑜伽课程进行预约,也可以查询自己的历史预约情况,管理员可以维护学生的预约记录。
系统公告模块用于管理员对系统公告的维护,系统公告的作用就是通知相关信息给学员,比如瑜伽课程的停课、调课信息等。系统公告字段其中包括公告标题、公告内容、图片、状态、排序值、发布人、创建人、创建时间等,瑜伽管理员可以增加、删除、编辑和条件查询系统公告,瑜伽学生可以查询系统公告。
课程评价模块是维护学生的瑜伽课程的评价,当学生完成对某个瑜伽课程的学习后,有权对该瑜伽课程进行评价,以便于改善该课程的质量,瑜伽评价字段包括课程ID、课程名称、评价等级、评语、学生ID、学生、评价时间、创建人等。
瑜伽器械模块是维护瑜伽课程中所需要的器械数据,瑜伽机械是学生学习瑜伽课程的必备条件,所以系统设计了这个模块,瑜伽器械字段包括器械名称、品牌、功能用途、厂商、采购价、图片、备注、创建人等,瑜伽管理员可以新增、删除、修改瑜伽机械信息,瑜伽学员可以查询管理员发布的瑜伽器械明细。
本章是对天沐瑜伽馆管理系统的设计部分。这个章节介绍了天沐瑜伽馆管理系统的设计基本思想,和各个模块的设计思想,设计了瑜伽课程模块、课程预约模块、系统公告模块、课程评价模块、瑜伽器械模块和数据中心模块。
@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); }
@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(); }
@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(); }
@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); }
@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);
}
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。