项目提供:完整源码 + 数据库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