首页 > 编程语言 >基于Java的桃花峪滑雪场租赁系统(Vue.js+SpringBoot)

基于Java的桃花峪滑雪场租赁系统(Vue.js+SpringBoot)

时间:2024-03-21 09:33:55浏览次数:20  
标签:Vue Java SpringBoot private st ApiModelProperty 滑雪场 value String

在这里插入图片描述


目录


一、摘要

1.1 项目介绍

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

1.2 项目录屏

<iframe allowfullscreen="true" data-mediaembed="bilibili" frameborder="0" id="w37mJCK1-1697158592835" src="https://player.bilibili.com/player.html?aid=661136241"></iframe>


二、功能模块

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

在这里插入图片描述

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

在这里插入图片描述

标签:Vue,Java,SpringBoot,private,st,ApiModelProperty,滑雪场,value,String
From: https://blog.csdn.net/yangyin1998/article/details/136896318

相关文章

  • 基于Java+Springboot技术仓库管理系统的实现+项目全套源码+完整文档源码说明+毕业论文
    摘 要现如今,许多企业存在的问题:信息化不足,计算机使用率不高,大量的日常工作皆是手工处理,因此工作效率低,企业内部沟通不良等等问题很难克服。要提升企业竞争力,企业内部信息化是不可缺少的一个步骤。所以要实施先进的自动化系统,实现企业内部信息管理、共享及交流,才能让企业在......
  • 免费分享一套SpringBoot+Vue大学新生报到管理系统,帅呆了~~
    大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue大学新生报到管理系统,分享下哈。项目视频演示【免费】SpringBoot+Vue大学新生报到管理系统Java毕业设计_哔哩哔哩_bilibili【免费】SpringBoot+Vue大学新生报到管理系统Java毕业设计项目来自互联网,免费开源分享,严......
  • 【JAVA------基础篇】
    java基础1.JDKJDK:javadevelopmentkitJRE:javaruntimeenvironmentJDK包含JREjava跨平台:因为java程序运行依赖虚拟机,虚拟机需要有对应操作系统的版本,而jre中有虚拟机。当你想要在Linux系统下运行,则需要安装对应的虚拟机,及对应的jdk版本,而对应的jdk版本中的jre有对......
  • JAVA------基础篇
    java基础1.JDKJDK:javadevelopmentkitJRE:javaruntimeenvironmentJDK包含JREjava跨平台:因为java程序运行依赖虚拟机,虚拟机需要有对应操作系统的版本,而jre中有虚拟机。当你想要在Linux系统下运行,则需要安装对应的虚拟机,及对应的jdk版本,而对应的jdk版本中的jre有对......
  • Java并发编程:第四章 线程池(Executor框架)
    文章目录一、为什么需要线程池1、线程的创建2、线程销毁二、优点1、降低资源消耗2、提高响速度3、线程管理三、架构说明四、Executors工具类1、介绍2、Executors工具类常用的方法(1)newFixedThreadPool(intnThreads):(2)newCachedThreadPool()(3)newSingleThreadExecutor()......
  • Java-Java基础学习(3)-多线程(1)
    Java-Java基础学习(4)-多线程(1)3.多线程在Java中,多线程主要的实现方式有四种:继承Thread类、实现Runnable接口、实现Callable接口经过FutureTask包装器来建立Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。3.1.四种创建方式Threadclass==>......
  • Java为什么是值传递?
    Java为什么是值传递?在我们调用方法的时候,通常会传递参数,那我们到底传递的是对象本身,还是仅仅是对象的拷贝对象呢?先搞懂两个概念,形参和实参形参和实参实参(实际参数,Arguments):用于传递给函数/方法的参数,必须有确定的值。形参(形式参数,Parameters):用于定义函数/方法,接收实参,不......
  • java学习系列(四):面向对象
    一、面向过程和面向对象1、程序设计的思路●面向对象(具体的步骤)是软件开发中的一类编程风格、开发范式。●除了面向对象,还有面向过程、指令式编程和函数式编程。在所有的编程范式中,我们接触最多的还是面向过程和面向对象两种。●早期先有面向过程思想,随着软件规模的......
  • Kotlin,简直是 Java 的 Pro Max!(笔记3 进阶篇)
    目录拓展拓展函数拓展属性运算符重载operator高阶函数通过高阶函数,模拟实现标准函数apply内联函数inlinenoinlinecrossinline泛型泛型类泛型方法限定泛型类型模拟实现apply标准函数(泛型版)泛型高级特性回顾Java中的协变和逆变Kotlin的协变和逆变委托......
  • 9.JavaWeb& javaScript基础
    目录导语:一、JavaWeb概述二、JavaScript基础概念:功能:1.基本语法(1)与html结合方式(2)注释(3)数据类型(4)变量(5)运算符(6)流程控制语句:(7)JS特殊语法:案例:99乘法表2.基本对象(1)Function:函数(方法)对象(2)Array:数组对象(3)Boolean(4)Date:日期对象(5)Math:数学对象(6)Number(7)String(8......