关于数据库查询会议室占用情况的一些感想
在公司项目上遇到的情况需求如下:在选择会议室和会议时间,需要校验该会议室是否正在使用,并且可以弹窗显示多个会议室一周内的占用情况。
然后我找来找去,各种搜索(我也不确定我是不是找错方向了),找到的大部分方法都是写了几个条件用or连接(但这种用不能使用mybatis-plus的注释简单实现,我实在是不想写那么复杂的sql语句),然后我简简单单其实可能并不捋了一下逻辑,发现有个可以实现的简单判断。
这边先假定数据库存储的会议开始时间和结束时间是meetingTimeStart和meetingTimeEnd,前台传过来查询的数据是queryTimeStart和queryTimeEnd
这里我重新整理了一下我的推断过程(逻辑不多就是用了枚举法),如枚举的情况有遗漏的可以指出,当然如果不想看这一部分的可以跳到最后看结论
为了简化这部分内容,这边先简化变量名称为
meetingTimeStart – ms ,meetingTimeEnd – me
queryTimeStart – qs ,queryTimeEnd – qe
然后看图(csdn的表格功能不太会用就用文档写了截图上来)
所以,最后的结论是,我只需要判断meetingTimeStart < queryTimeEnd 和 meetTimeEnd < queryTimeEnd就可以达到我要的效果了,只要两个条件且还是用and连接的,就可以轻轻松松利用mybatis-plus的注解去实现了。