Vue+SpringBoot打造桃花峪滑雪场租赁系统

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 游客服务
    • 2.2 雪场管理
  • 三、数据库设计
    • 3.1 教练表
    • 3.2 教练聘请表
    • 3.3 押金规则表
    • 3.4 器材表
    • 3.5 滑雪场表
    • 3.7 售票表
    • 3.8 器材损坏表
  • 四、系统展示
  • 五、核心代码
    • 5.1 查询教练
    • 5.2 教练聘请
    • 5.3 查询滑雪场
    • 5.4 滑雪场预定
    • 5.5 新增滑雪器材
  • 六、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的桃花峪滑雪场租赁系统,包含了滑雪场、门票预定、滑雪教练聘请、器材租赁归还、规章制度等模块,分为管理后台和微信小程序端,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,桃花峪滑雪场租赁系统基于角色的访问控制,给滑雪爱好者、滑雪管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

本系统以桃花峪滑雪场内部计费收银及运营业务管理流程为基础,通过“—卡通消费”的收费方式,简化滑雪场消费业务的管理环节,优化业务操作流程,实现游客消费和雪场管理的全面自动化,对滑雪场的设备、器具、人力、款项合理化运营管控,从而提升滑雪场经济效益。

在这里插入图片描述

2.1 游客服务

游客服务主要为游客提供在线便利服务,核心功能如下。

游客通过系统完成如门票预订购买、教练聘请、快速入园、滑雪器材便捷租赁、会员充值、多元化支付,自助结算、订单管理、其他二次消费(就餐、购物)等

2.2 雪场管理

主要功能包括售票管理、租赁配置管理、租赁方案管理、超时档位管理、押金规则管理、器材信息管理、器材库存管理、器材损坏规则、教练信息管理。

三、数据库设计

3.1 教练表

public class Coach extends ZwzBaseEntity {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "姓名")private String name;@ApiModelProperty(value = "性别")private String sex;@ApiModelProperty(value = "年龄")private BigDecimal age;@ApiModelProperty(value = "介绍")private String content;@ApiModelProperty(value = "一寸照")private String image;@ApiModelProperty(value = "级别")private String level;@ApiModelProperty(value = "聘请费用")private BigDecimal cost;
}

3.2 教练聘请表

public class CoachEngagement extends ZwzBaseEntity {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "教练ID")private String coachId;@ApiModelProperty(value = "姓名")private String name;@ApiModelProperty(value = "性别")private String sex;@ApiModelProperty(value = "年龄")private BigDecimal age;@ApiModelProperty(value = "介绍")private String content;@ApiModelProperty(value = "一寸照")private String image;@ApiModelProperty(value = "级别")private String level;@ApiModelProperty(value = "聘请费用")private BigDecimal cost;@ApiModelProperty(value = "聘请人ID")private String userId;@ApiModelProperty(value = "聘请人")private String userName;@ApiModelProperty(value = "聘请日期")private String date;
}

3.3 押金规则表

public class DepositRules extends ZwzBaseEntity {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "押金规则")private String title;@ApiModelProperty(value = "内容")private String content;@ApiModelProperty(value = "金额")private BigDecimal number;@ApiModelProperty(value = "排序值")private BigDecimal sortOrder;@ApiModelProperty(value = "备注")private String remark;
}

3.4 器材表

public class Equipment extends ZwzBaseEntity {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "器材名称")private String title;@ApiModelProperty(value = "器材型号")private String model;@ApiModelProperty(value = "采购价")private BigDecimal price;@ApiModelProperty(value = "计量单位")private String unit;@ApiModelProperty(value = "图片")private String image;@ApiModelProperty(value = "库存")private BigDecimal stock;@ApiModelProperty(value = "押金规则ID")private String ruleId;@ApiModelProperty(value = "押金规则")private String ruleName;
}

3.5 滑雪场表

public class SkiField extends ZwzBaseEntity {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "滑雪场名称")private String title;@ApiModelProperty(value = "介绍")private String content;@ApiModelProperty(value = "分馆编号")private String code;@ApiModelProperty(value = "图片")private String image;@ApiModelProperty(value = "排序值")private BigDecimal sortOrder;@ApiModelProperty(value = "状态")private String status;@ApiModelProperty(value = "价格")private BigDecimal price;
}

3.7 售票表

public class SellTicket extends ZwzBaseEntity {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "滑雪场ID")private String skiId;@ApiModelProperty(value = "滑雪场名称")private String skiName;@ApiModelProperty(value = "买票人ID")private String userId;@ApiModelProperty(value = "买票人")private String userName;@ApiModelProperty(value = "日期")private String date;@ApiModelProperty(value = "价格")private BigDecimal price;@ApiModelProperty(value = "购买时间")private String buyTime;
}

3.8 器材损坏表

public class EquipmentDamage extends ZwzBaseEntity {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "损坏情况")private String title;@ApiModelProperty(value = "损坏赔偿比例")private BigDecimal proportion;@ApiModelProperty(value = "排序值")private BigDecimal sortOrder;@ApiModelProperty(value = "备注")private String remark;
}

四、系统展示

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


五、核心代码

5.1 查询教练

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询教练")
public Result<IPage<Coach>> getByPage(@ModelAttribute Coach coach ,@ModelAttribute PageVo page){QueryWrapper<Coach> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(coach.getLevel())) {qw.eq("level",coach.getLevel());}if(!ZwzNullUtils.isNull(coach.getContent())) {qw.like("content",coach.getContent());}if(!ZwzNullUtils.isNull(coach.getName())) {qw.like("name",coach.getName());}IPage<Coach> data = iCoachService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Coach>>().setData(data);
}

5.2 教练聘请

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "小程序预约")
public Result<SellTicket> addOne(@RequestParam String id, @RequestParam String date){Coach s = iCoachService.getById(id);if(s == null) {return ResultUtil.error("教练不存在");}User currUser = securityUtil.getCurrUser();QueryWrapper<CoachEngagement> oldQw = new QueryWrapper<>();oldQw.eq("coach_id",s.getId());oldQw.eq("date",date);oldQw.eq("user_id",currUser.getId());Long oldCount = iCoachEngagementService.count(oldQw);if(oldCount > 0) {return ResultUtil.error("您已聘请!");}CoachEngagement st = new CoachEngagement();st.setCoachId(s.getId());st.setName(s.getName());st.setSex(s.getSex());st.setAge(s.getAge());st.setContent(s.getContent());st.setImage(s.getImage());st.setLevel(s.getLevel());st.setCost(s.getCost());st.setUserId(currUser.getId());st.setUserName(currUser.getNickname());st.setDate(date);iCoachEngagementService.saveOrUpdate(st);User user = iUserService.getById(currUser.getId());if(user != null) {user.setMoney(user.getMoney().subtract(s.getCost()));iUserService.saveOrUpdate(user);}return ResultUtil.success();
}

5.3 查询滑雪场

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询滑雪场")
public Result<IPage<SkiField>> getByPage(@ModelAttribute SkiField skiField ,@ModelAttribute PageVo page){QueryWrapper<SkiField> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(skiField.getTitle())) {qw.like("title",skiField.getTitle());}if(!ZwzNullUtils.isNull(skiField.getCode())) {qw.like("code",skiField.getCode());}if(!ZwzNullUtils.isNull(skiField.getStatus())) {qw.like("status",skiField.getStatus());}IPage<SkiField> data = iSkiFieldService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<SkiField>>().setData(data);
}

5.4 滑雪场预定

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "小程序预约")
public Result<SellTicket> addOne(@RequestParam String id,@RequestParam String date){SkiField s = iSkiFieldService.getById(id);if(s == null) {return ResultUtil.error("滑雪场不存在");}User currUser = securityUtil.getCurrUser();QueryWrapper<SellTicket> oldQw = new QueryWrapper<>();oldQw.eq("ski_id",s.getId());oldQw.eq("date",date);oldQw.eq("user_id",currUser.getId());Long oldCount = iSellTicketService.count(oldQw);if(oldCount > 0) {return ResultUtil.error("您已预定!");}SellTicket st = new SellTicket();st.setSkiId(s.getId());st.setSkiName(s.getTitle());st.setUserId(currUser.getId());st.setUserName(currUser.getNickname());st.setDate(date);st.setPrice(s.getPrice());st.setBuyTime(DateUtil.now());iSellTicketService.saveOrUpdate(st);User user = iUserService.getById(currUser.getId());if(user != null) {user.setMoney(user.getMoney().subtract(s.getPrice()));iUserService.saveOrUpdate(user);}return ResultUtil.success();
}

5.5 新增滑雪器材

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增器材")
public Result<Equipment> insert(Equipment equipment){DepositRules rule = iDepositRulesService.getById(equipment.getRuleId());if(rule == null) {return ResultUtil.error("押金规则不存在");}equipment.setRuleName(rule.getTitle());iEquipmentService.saveOrUpdate(equipment);return new ResultUtil<Equipment>().setData(equipment);
}

六、免责说明

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

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

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

在这里插入图片描述

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

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

相关文章

Python接口自动化之cookie、session应用!

以下介绍cookie、session原理及在接口自动化中的应用。 HTTP 协议是一种无状态协议&#xff0c;即每次服务端接收到客户端的请求时&#xff0c;都是一个全新的请求&#xff0c;服务器并不知道客户端的历史请求记录&#xff1b;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的…

Linux之线程概念

目录 一、细粒度划分 1、堆区细粒度划分 2、物理内存和可执行程序细粒度划分 3、虚拟地址到物理地址的转化 二、线程的概念 1、基本概念 2、线程的优点 3、线程的缺点 4、线程异常 5、线程用途 三、Linux下的进程和线程 一、细粒度划分 1、堆区细粒度划分 在语言…

为什么我建议你2024年一定要入局鸿蒙?

自去年发布现象级“爆款”手机Mate 60后&#xff0c;华为就备受关注。小编作为一枚程序员&#xff0c;关注的重心更偏向于技术。华为手机搭载的国产自研的鸿蒙操作系统&#xff08;HarmonyOS&#xff09;&#xff0c;已经成为一个业界的里程碑&#xff0c;是我国国产技术自主化…

企业如何实现跨部门和员工之间的高效沟通协同?

在当今高度竞争和信息化的商业环境中&#xff0c;企业内部各部门和员工之间的沟通协同效率直接影响到企业的整体运营效果。那么&#xff0c;企业如何实现各部门和员工之间的高效沟通协同呢&#xff1f; 一、建立有效沟通机制与明确部门职责 要实现各部门和员工间的高效协同&…

【vue3之组合式API及其新特性】

组合式API及其新特性 一、setup1.写法2.如何访问3.语法糖4.同步返回对象 二、reactive()和ref()1.reactive()2.ref() 三、computed四、watch函数1.侦听单个数据2.侦听多个数据3. immediate4. deep5.精确侦听对象的某个属性 五、生命周期函数六、组件通信1.父传子2. 子传父 七、…

K8s Pod控制器

目录 前言&#xff1a; 1.Deployment 查看控制器配置 查看历史版本 2.SatefulSet 安装CoreDNS&#xff0c;仅二进制部署环境需要安装CoreDNS 方法一 方法二 查看statefulset的定义 清单定义StatefulSet 创建pv 定义PV 创建statefulset 滚动更新 总结 扩展伸缩…

Ubuntu/Linux系统下Redis的基本操作命令

版本查询 redis-server --version # 或者redis-server -v 如上图所示&#xff0c;redis-server的版本为6.0.9,证明redis已经安装完成。 启动Redis服务 启动命令如下&#xff1a; redis-server启动成功如下所示&#xff1a; 启动过程中遇到如下问题时&#xff0c;杀死指定端…

从mysql 数据库表导入数据到elasticSearch的几种方式

从MySQL数据库导入数据到Elasticsearch有几种方式&#xff0c;主要包括以下几种&#xff1a; 1. 使用Logstash&#xff1a; Logstash是一个开源的数据收集引擎&#xff0c;可以用来从不同的数据源导入数据到Elasticsearch。它具有强大的数据处理能力和插件生态系统&…

8套成熟在用的三级医院信息化系统源码,HIS、LIS、PACS、智慧导诊、线上预约挂号支付系统源码

8套成熟在用的二级医院、三级医院医院管理系统源码&#xff0c;均有自主知识产权&#xff0c;应用案例&#xff0c;系统稳定运行中。可直接上手项目&#xff0c;支持二次开发 ▶ 一、SaaS模式Java语言开发的云HIS系统源码 在公立二甲医院应用三年&#xff0c;融合B/S版电子病历…

如何在Linux系统Docker本地部署SimpleMindMap并实现远程访问?

文章目录 1. Docker一键部署思维导图2. 本地访问测试3. Linux安装Cpolar4. 配置公网地址5. 远程访问思维导图6. 固定Cpolar公网地址7. 固定地址访问 SimpleMindMap 是一个可私有部署的web思维导图工具。它提供了丰富的功能和特性&#xff0c;包含插件化架构、多种结构类型&…

【Web - 框架 - Vue】随笔 - Vue的简单使用(02) - 快速上手

【Web - 框架 - Vue】随笔 - Vue的简单使用(02) - 快速上手 Vue模板代码 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue模板</title> </head> <body> <div id"…

计算机设计大赛 深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的视频多目标跟踪实现 …