首页 > 编程语言 >[Java原创精品]基于Springboot+Vue的座位预约系统、自习室预约管理、微信二维码扫描模拟支付

[Java原创精品]基于Springboot+Vue的座位预约系统、自习室预约管理、微信二维码扫描模拟支付

时间:2024-09-20 19:22:45浏览次数:9  
标签:1.4 Vue 预约 orders 订单 座位 自习室

项目提供:完整源码 + 数据库sql文件 + 数据库表Excel文件

1、项目功能描述

本项目为双角色,用户和管理员,用户使用前台,管理员使用后台。

1.1 注册

注册功能:填写用户名、密码进行注册。(“我已阅读同意《隐私政策》和《服务条款》”没有做后续,只是单纯有这样一行文字做模拟)

1.2 登录

登录功能:填写你所注册过的账号和密码进行登录。(“我已阅读同意《隐私政策》和《服务条款》”没有做后续,只是单纯有这样一行文字做模拟)

1.3 前台界面(用户)

本系统角色为普通用户、系统管理员双角色,用户使用前台功能,管理员后台管理系统。

1.3.1 系统首页

登录进入首页,最上面是轮播图。

下方左侧为自习室列表,右侧为公告列表。

点击进入自习室,这里以自习室4为例子,设置二级关系,自习室下设置多个座位。

点击查看某个自习室位置,显示该座位的预约情况,如果有已被预约的情况,则可以查看,并选择预约之后的时间。

选择一个空闲位置,选择开始结束时间进行预约。

预约成功,但是还没有进行支付。

1.3.2 预约记录

显示所有我的预约座位记录,如果不需要该座位可以点击取消。

定时器处理过期订单,每分钟一次。

设置如果15分钟内未支付该预约订单,则自动取消。

//1.未支付订单,判断当前时间和下单时间是否超过15分钟,超过的话就取消
if (StrUtil.equals(orders.getState(),"待支付")){
    if (calculateMinuteDifference(orders.getTime(),now)>15){
        orders.setState("已取消");
        expiredOrderList.add(orders);
        continue;
    }
}

订单金额计算:自习室的金额*预约时长,计算规则为不满一小时自动算一小时。

Duration duration = Duration.between(dateTime1, dateTime2);
long seconds = duration.getSeconds();
int hours = (int) (seconds / 3600);
if (seconds % 3600 != 0) {
    hours++;
}

点击支付,显示二维码,这时候使用手机微信扫一扫,进行模拟支付。(须开内网穿透)

手机端截图:

支付成功:

系统内定时器会持续刷新,设置逻辑如下:

//2.预约中订单,判断当前时间是否超过截止时间,如果超过就取消
if (StrUtil.equals(orders.getState(),"预约中")){
    if (isExpired(now,orders.getEndTime())){
        orders.setState("已完成");
        expiredOrderList.add(orders);
    }
}

当预约成功,且正在预约中时,再次返回该自习室查看,该座位状态已改变。

此时再次预约该座位,显示错误“该座位当前时间段已经有人预约,预约失败!

如果新订单的开始时间在现有订单的结束时间之前,并且新订单的结束时间在现有订单的开始时间之后,则表示时间段重叠。

for (Orders one : ordersList) {
    LocalDateTime existingStartTime = LocalDateTime.parse(one.getStartTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    LocalDateTime existingEndTime = LocalDateTime.parse(one.getEndTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    if (newStartTime.isBefore(existingEndTime) && newEndTime.isAfter(existingStartTime)) {
        return Result.error("605","该座位当前时间段已经有人预约,预约失败!");
    }
}

核心是确保在尝试预约某个座位时,所请求的时间段不会与已有的预约冲突。

1.3.3 我的收藏

我收藏的自习室,通过首页自习室详情页选择自习室后,点击收藏,成功后,多次收藏会显示“已经收藏过该自习室了”

我的收藏

点击取消收藏,设置再次确认。

确定后,我的收藏将不再显示该自习室

1.3.4 个人中心

支持基础个人信息修改和密码修改的同时,将平台热线留言反馈也隐藏在这。

个人信息

修改密码:

1.4 后台界面(管理员)

登录管理员账号密码 admin admin

进入主页(主页非功能页,但不可删除,购买源码后可自行增删主页中的内容!)

1.4.1 数据统计(Echarts)

对自习室座位和订单情况进行数据统计。

1.4.2 公告管理

系统公告设置,增删改查

1.4.3 轮播图管理

添加轮播图,前台页面展示,增删改

1.4.4 自习室管理

自习室信息的增删改查

1.4.5 座位管理

座位管理,添加自习室下的座位,多级管理。支持筛选自习室查询座位。

1.4.6 预约订单管理

查看座位预约订单情况

1.4.7 收藏管理

管理员查看用户收藏自习室的情况。

1.4.8 系统管理

用户管理:可以由管理员对用户进行增删改,可以通过上方四种搜索条件进行查询,即角色、昵称、地址、邮箱查找

1.4.9 修改个人信息

管理员也可以进行个人信息的修改,以及密码的修改

2、项目技术栈

操作系统: Windows10/11

开发工具:IDEA

系统架构: 前后端分离B/S架构

后端: SpringBoot+Mybatis-Plus

前端: Vue+ElementUI+Axios

数据库: Mysql5.7/8.0

3、项目创新点

(1)精美的前台页面布局设计

(2)巧妙的数据库动态关联数据,多表数据关联查询,多级关系管理

(3)点击后台管理系统左边的 LOGO 在右边的弹窗当中可以选择系统后台的主题色和界面布局

(4)内网穿透,二维码微信扫码模拟支付

(5)定时器定时对过期订单进行清理

(6)集成Echarts,统计项目数据,本项目使用柱状图、饼图

(7)提供数据库字段对应的Excel表

项目获取看主

标签:1.4,Vue,预约,orders,订单,座位,自习室
From: https://blog.csdn.net/2401_87324741/article/details/142371806

相关文章

  • springboot+vue招聘信息管理系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和互联网的普及,传统的招聘方式已难以满足企业与求职者之间高效、精准的信息对接需求。在当前就业市场日益竞争激烈的环境下,构建一个高效、便捷的招聘信息管理系统显得尤为重要。该系统旨在打破信息壁垒,通过数字......
  • springboot+vue云农门户经典案例子系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,云计算、大数据与物联网等前沿技术在农业领域的深度融合,正逐步改变着传统农业的面貌。云农门户作为现代农业信息化的重要载体,旨在通过集成化、智能化的服务平台,为农民、农场主及农业相关从业者提供便捷、高效的......
  • springboot+vue智能诊后随访系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着医疗技术的飞速发展和患者健康意识的不断提升,传统的医疗随访模式已难以满足现代医疗体系的需求。在医疗资源紧张、患者流动性大的背景下,如何高效、精准地进行诊后随访,成为提升医疗服务质量、增强患者满意度的重要课题。智能诊后随......
  • 案例269购物商城网站的设计与实现[SSM+MySQL+Vue]
    目录系统展示项目背景系统设计总结系统展示项目背景网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。计算机软件可以针对不同行业的营业特点以及管理需求,设置不同的功能,可以符合各个行......
  • 基于spring boot+vue+mysql的汽车评论分类系统
    结尾名片获取源码开发语言:Java框架:SpringBoot持久化框架:Mybatis-plusJDK版本:JDK1.8服务器:tomcat7\8\9数据库:mysql5.7以上数据库工具:Navicat11以上开发软件:eclipse/myeclipse/ideaMaven:Maven3.5.4浏览器:谷歌浏览器\Edge功能描述随着科学技术的飞速发展,社会的方方......
  • 基于spring boot+vue+mysql的电子招投标系统
    结尾名片获取源码开发语言:Java框架:SpringBoot持久化框架:Mybatis-plusJDK版本:JDK1.8服务器:tomcat7\8\9数据库:mysql5.7以上数据库工具:Navicat11以上开发软件:eclipse/myeclipse/ideaMaven:Maven3.5.4浏览器:谷歌浏览器\Edge功能描述随着信息技术的不断发展,电子招投标......
  • 【F153】基于Springboot+vue实现的无人智慧超市管理系统
    主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。收藏点赞不迷路,关注作者有好处项目描述本系统结合现今主流管理系统的功能模块以及设计方式进行分析,使用Java语言和Springboot框架进行开发设计,具体研究......
  • Vue 3 来读取和创建 Excel 文件
    在前端处理Excel文件(读取和创建)通常借助于一些第三方库,如 xlsx。以下是如何使用 xlsx 库在前端从Excel文件中读取数据以及创建并写入数据的详细步骤。1.安装xlsx库并导入npminstallxlsximport*asXLSXfrom'xlsx';2.创建并下载Excel文件直接上代码<but......
  • 上门安装维修服务预约平台源码开发
    预约上门安装维修系统接单平台是一种为用户提供便捷的上门服务解决方案的应用。这种系统通常用于家电维修、家具安装、家政服务等领域,通过线上预约、派单、跟踪等流程,提高服务效率和用户体验。开发编辑wcz9563以下是对该设计的详细解析以下是对该系统的开发案例解析和源码示例。一......
  • vue2实现监听usb接口的扫码器,获取扫码数据。
    原理扫码枪本质就是一个快速输入+回车(注意:扫码输入法要设置英文,不然会乱码)全局安装importscannerfrom'./install';Vue.use(scanner);使用exportdefault{data(){return{items:[],//扫码结果isStart:false//是否开启扫码}......