图书馆座位预约时间冲突提示(前后端全) 前端elementUI 时间选择器只显示时和分,SQL实现时间冲突判断

背景

帮客户定制项目,要实现图书馆预约座位的功能。
功能描述如下:学生选择开始时间和结束时间,只选择小时和分钟,提交预约后,如果该时间有冲突提示学生修改预约时间。

问题

前端样式选择的是elmentUI,但是它组件只有日期时间选择器 :年月日时分秒。不满足我的需求,所以要改造下。该怎么改造?
如何改造,后端更好处理数据以及业务逻辑?

实现过程

前端样式

时间选择器(只有时和分)

 <el-form-item label="开始时间">
    <el-time-picker v-model="form.startTime"  value-format="HH:mm" format="HH:mm"  size="small" style="width: 100%"></el-time-picker>
  </el-form-item>
  <el-form-item label="结束时间">
    <el-time-picker v-model="form.endTime" format='HH:mm' value-format="HH:mm" size="small" style="width: 100%">
    </el-time-picker>
  </el-form-item>

后端业务逻辑和SQL

 //预约前判断该座位该时间段是否被预约,如果被预约,则提示改时间段不能被预约。
        Integer seatId = seatReservation.getSeatId();
        List<SeatReservation> byNum = seatReservationDao.findByNum(seatId, seatReservation.getStartTime(), seatReservation.getEndTime());
        if (CollectionUtil.isNotEmpty(byNum)){
            throw new CustomException("-1","该时间段已经被预约");
        }

Dao

@Select("select * from seatreservation where seatId = #{seatId} and !(startTime > #{end} or endTime < #{start})")
    List<SeatReservation> findByNum(@Param("seatId")Integer seatId, @Param("start") String start, @Param("end") String end);

实现结果

在这里插入图片描述

搞定!!!!

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>