基于SpringBoot的桃花峪滑雪场租赁系统 JAVA简易版

在这里插入图片描述


目录

  • 一、摘要
    • 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.mzph.cn/news/239610.shtml

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

相关文章

WebAssembly 的魅力:高效、安全、跨平台(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

JUC并发编程 08——原子操作类

目录 一.原子更新基本类型类 实现原理 二.原子更新数组 三.原子更新引用类型 四.原子更新字段类 Java从JDK1.5开始提供了J.U.C下的atomic包&#xff0c;atomic包提供了一系列的操作简单&#xff0c;性能高效&#xff0c;并能保证线程安全的类去更新基本类型变量&#xff0…

WebAssembly 的魅力:高效、安全、跨平台(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Unity中的导航系统

NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术&#xff0c;将游戏中复杂的结构组织关系简化为带有一定信息的网格&#xff0c;在这些网格的基础上通过一系列的计算来实现自动寻路。导航时&#xff0c;只需要给导航物体挂载导航组建&#xff0c;导航物体便…

【Grafana】Grafana匿名访问以及与LDAP连接

上一篇文章利用Docker快速部署了Grafana用来展示Zabbix得监控数据&#xff0c;但还需要给用户去创建账号允许他们登录后才能看展示得数据&#xff0c;那有什么办法让非管理员更方便得去访问Grafana呢&#xff1f;下面介绍两个比较方便实现的&#xff1a; 在开始设置前&#xff…

显示器屏幕oled的性能、使用场景、维护

OLED显示器屏幕具有许多独特的性能和使用场景&#xff0c;以下是关于OLED显示器屏幕的性能、使用场景和维护的详细介绍&#xff1a; 一、性能 色彩鲜艳&#xff1a;OLED显示器屏幕能够呈现出更加鲜艳的色彩&#xff0c;色彩饱和度高&#xff0c;色彩还原性好&#xff0c;可以给…

SpringBoot+JaywayJsonPath实现Json数据的DSL(按照指定节点表达式解析json获取指定数据)

场景 若依前后端分离版手把手教你本地搭建环境并运行项目&#xff1a; 若依前后端分离版手把手教你本地搭建环境并运行项目_前后端分离项目本地运行-CSDN博客 在上面搭建SpringBoot项目的基础上&#xff0c;并且在项目中引入fastjson、hutool等所需依赖后。 Jayway JsonPat…

【【C++11特性篇】【强制/禁止 】生成默认函数的关键字default&delete(代码演示)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Linux》…

动物分类识别教程+分类释义+界面展示

1.项目简介 动物分类教程分类释义界面展示 动物分类是生物学中的一个基础知识&#xff0c;它是对动物进行分类、命名和描述的科学方法。本教程将向您介绍动物分类的基本原则和方法&#xff0c;并提供一些常见的动物分类释义。 动物分类的基本原则 动物分类根据动物的形态、…

vue3老项目如何引入vite

vue3老项目如何引入vite 安装 npm install vite vitejs/plugin-vue --save-dev Vite官方中文文档修改package.json文件 在 npm scripts 中使用 vite 执行文件 "scripts": {"serve": "vite","build": "vite build","pr…

听GPT 讲Rust源代码--src/tools(22)

File: rust/src/tools/tidy/src/lib.rs rust/src/tools/tidy/src/lib.rs是Rust编译器源代码中tidy工具的实现文件之一。tidy工具是Rust项目中的一项静态检查工具&#xff0c;用于确保代码质量和一致性。 tidy工具主要有以下几个作用&#xff1a; 格式化代码&#xff1a;tidy工具…

Rust报错:the msvc targets depend on the msvc linker but `link.exe` was not found

当我在我的 windows 电脑上安装 rust&#xff0c;然后用 cargo 新建了一个项目后&#xff0c;cargo run 会报错&#xff1a; error: linker link.exe not found| note: program not foundnote: the msvc targets depend on the msvc linker but link.exe was not foundnote: p…

css学习笔记6(盒子模型)

CSS盒子模型 五、CSS盒子模型1.CSS长度单位2.元素的显示模式3.总结各元素的显示模式4.修改元素显示模式5.盒子模型的组成6.盒子内容区&#xff08;content&#xff09;7.关于默认宽度8.盒子内边距&#xff08;padding&#xff09;9.盒子边框&#xff08;border&#xff09;10.盒…

Apache Flink 进阶教程(七):网络流控及反压剖析

目录 前言 网络流控的概念与背景 为什么需要网络流控 网络流控的实现&#xff1a;静态限速 网络流控的实现&#xff1a;动态反馈/自动反压 案例一&#xff1a;Storm 反压实现 案例二&#xff1a;Spark Streaming 反压实现 疑问&#xff1a;为什么 Flink&#xff08;bef…

基于Netty构建Websocket服务端

除了构建TCP和UDP服务器和客户端&#xff0c;Netty还可以用于构建WebSocket服务器。WebSocket是一种基于TCP协议的双向通信协议&#xff0c;可以在Web浏览器和Web服务器之间建立实时通信通道。下面是一个简单的示例&#xff0c;演示如何使用Netty构建一个WebSocket服务器。 项目…

深圳鼎信|输电线路防山火视频监控预警装置:森林火灾来袭,安全不留白!

受线路走廊制约和环保要求影响&#xff0c;输电线路大多建立在高山上&#xff0c;不仅可以减少地面障碍物和人类活动的干扰&#xff0c;还能提高线路的抗灾能力和可靠性。但同时也会面临其它的难题&#xff0c;例如森林火灾预防。今天&#xff0c;深圳鼎信智慧将从不同角度分析…

signaltap立即触发的错误解决方法

signaltap点下run analysis后没有等到触发条件满足就触发了&#xff0c;原因是触发方式设置错误&#xff0c;应修改触发方式&#xff1a; 将Trigger flow control 从State-based 改为Sequential。

trino-435版本windows下源码编译

一、源码下载地址 https://github.com/trinodb/trino/tags 二、编译环境及工具准备 1、maven &#xff08;1&#xff09;版本&#xff1a;3.6.3 &#xff08;2&#xff09;settings.xml配置 <?xml version"1.0" encoding"UTF-8"?> <settin…

Jmeter 性能测试 —— 评估一个系统TPS与并发数!

问题&#xff1a;性能压测&#xff0c;如何评估一个系统的TPS和并发数&#xff1f; 1、对于新系统 由业务部门或开发人员预估交易量和TPS指标 可以参考公式&#xff1a;并发用户 在线用户数 * 10%。 当一个系统还没有上线时&#xff0c;我们可以预判的是这个系统准备要给多…

【数据结构】队列的使用|模拟实现|循环队列|双端队列|面试题

一、 队列(Queue) 1.1 概念 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出FIFO(First In First Out) 入队列&#xff1a;进行插入操作的一端称为队尾&#xff08;Tail/Rear&#xff09; 出队列…