在ivx的案例中,后台常常使用到的组件就是数据库了,一些须要持久化保存的数据都会保存在数据库中以便每次打开案例都能读取到这些数据,数据可能为用户信息,操做记录等等。今天咱们就来实现一个预定会议室的模型,要实现的功能就是用户能够选择使用会议室的时间段并提交,若是以前的预定中不包含这个时间段就能够预定成功并增长一条记录,下面就来讲说具体步骤。
一.数据库
数据库中咱们添加了三个字段,预订人,开始时间和结束时间,预订人的字段类型为文本便可,而开始时间和结束时间的字段类型要选择时间,能够注意到这两个字段的右上角图标是钟表样式。
二.预约会议室服务
服务中的三个接收参数分别对应数据库添加的三个字段,另外服务须要返回最终的执行结果,咱们使用“是否成功”标识预定成功与否,“重复记录”则存放与提交中的时间段有重叠的历史预定记录。服务中咱们先对数据库中的数据进行一个筛选输出,时间段发生重叠有三种状况:1数据库中数据的开始时间在提交时间段内;2数据库中数据的结束时间在提交时间段内;3数据库中数据的时间段被包含在提交时间段内,因此筛选的条件如图。注意咱们数据库的字段类型为时间,因此条件中的判断符是“时间>”和“时间<”。
另外注意一下ivx中且条件和或条件的结构是这样的:
依此条件输出后若是输出结果有数据,说明有时间段重叠,预定失败,;若是输出结果是空的,说明没有时间段重叠,咱们将新的预定写入数据库并返回预定成功。数据库
三.前台
1.预定事件
前台界面上方的绝对定位容器用于提交预定,第一行是用于输入预定人姓名的输入框,第二行的输入框则是用来展现选择好的时间段,其内容已经与“开始时间”、“结束时间”两个文本变量进行了数据绑定,点击它后会弹出一个手机日期时间选择器。
手机日期时间选择器是拓展组件的一种,咱们能够设定选取单个日期时间仍是,时间段模式,并限制选取日期时间的范围,在点击确认事件中咱们能够收到返回的参数“开始日期”、“结束日期”,把它们分别赋值给文本变量“开始时间”、“结束时间”。
点击预约按钮后,若是各项提交内容不为空就会调用预约会议室服务,若服务返回预约成功就在前台的预约列表添加一刚刚提交的预定数据,若服务返回失败就从重叠的记录找找出对应预定人提示当前用户已有人预定该时间段。
2.预定列表
前台下方的列1用来展现历史预定记录,以对象数组“已预定列表”进行循环建立,在前台初始化的时候会将数据库中的历史记录输出到“已预定列表”中。
总结
这个模型的关键是对时间段重叠的断定,须要注意数据库字段的类型设置,以及数据库输出时的条件判断符号还有条件层级关系。另外,能够拓展一下若是是多个会议室的状况,这时咱们能够在数据库中再增长一个字段,标识会议室的序号,对应筛选是否有重叠时间段的时候也增长一个筛选条件,从序号等于当前选中的会议室的记录中进行筛除。数组