00:01
下面呢,我们继续来开发获取可预约的排班数据接口,刚才呢,咱通过查询猫DB已经获取了日期对应的科室的剩余预约数量,那咱们下面呢,我们为了后面的显示方便,咱把数据啊做一个合并。为什么显示方便呢?大家看啊,就是我的这张图上,你看啊,每个日期对应的是不是有它这个预约的剩余数量,然后这里边是不是有它的可约的排班规则呀,所以咱们就一会儿这么来约定,我们一会儿创建一个麦克集合,让ma集合的K是咱的日期,Y6是它的可约规则,包括剩余数量,因为这么做为了咱后面显示更加方便啊,当然你也可以不这么做,是不这么做的,后面前端不好处理,所以咱为了方便,我们建ma集合,让ma集合的K是咱的日期,Y6是你的可预约规则,包括你这个相关的剩余数量。
01:01
那我写一下啊,咱就使用一个map集合。然后卖回去的T是咱的那个日期,它的Y6是咱们的预约规则,包括这个剩余的数量等信息,所以咱们做这么一个合并,那这合并呢,我就从我课件中给大家直接拿过来,咱们看一下啊,我这里边有这么一段代码,我把这代码给各位复制过来,然后咱们看一下啊,这一代码中用到了我们的子循流的操作,然后各位看这个写法啊,首先new了一个外集合,外克集红的K就是日期,Y6是咱的规则,包括数量等等那种是咱这个V对项,然后咱们首先判断,如果它不等于空,不等于空的话,再用这个什么流在什么流中,你看啊,里边用到这个方法叫collect.to map是不是给它转成一个map集合,然后在map集合中大家看在里边的K,就这个日期Y6就是咱这个对象,然后最终把它就变成了一个map集合,这。
02:05
这个筛掉VO map里边有日期,还有你的规则,包括数量,目前应该只有数量规则,咱一会儿给他就是放进去,所以现在。这个过程我们就完成了,然后完成之后呢,下面呢,咱就做一下获取,这个就是可预约的一个排班的规则,就是把规则放到这里面去,那下面我们来写一下。那这怎么做呢?里边也是我们得到数据,然后便利,然后做各种判断,最终把它实现,那下面给各位写一下啊,首先我先创建一个list集合。为了咱们操作方便,List机的泛型就是这个booking she入了VO,然后给它起个名字叫booking入了VO list。我们等于new上一个a list,把这集合先创建,然后创建集合之后,下面咱做个判断,因为咱们的K是日期嘛,那我根据日期做个循环,循环之后,然后得到里边的相关这个排班规则,那我写一下啊,我加上一个。
03:17
For循环,然后在for循环中写一下int I等于零,然后这里边我们I小于就是这个。list.s啊,那比如说我先给它来一个变量啊,Date这个。List点上这个。再走。然后在里边我们写一个I小于这个类,再来一个叫I加加给它里边做这么一个,就是相关的这个便利。咱们循环写完之后呢,下面呢,我们取到就是里边的每一个日期啊,给它写一下啊,我们取一下就是在里边我们写一个date date等于date list点上get,哎,这是得到里边的每个日期,然后得到每个日期之后,因为现在我们上面是不是有一个ma克集合呀,Ma克机工的key是不是就是咱的日期啊,所以我现在先从map集合中根据它的key把它支取到日期,就是里面这个K,那我取一下啊,咱们从我们上面那个map集合中根据它的K获取啊,它那个Y6值K就是我们那个日期。
04:33
那咱们来做一下啊,这应该很简单了,我们就筛掉VO map这个。点上get方法里边加上这个date。最终返回的是这么一个对象,所以这个我们根据K得到它的Y6值,那咱看一下啊,就是现在如果说这个得到这个Y调值,这个对象等于空,那就说明啊,我当天就是当天没有这个排班的医生,所以咱们做个设置,就当天五号,如果这个不等于空,那我们再往下进行操作,所以现在我们来做这个判断,我写一下啊。
05:12
如果说我这个当天没有排班的,这个就是医生,那我们做一些相关的设置,那咱来写一下啊,就是if,如果说你这个根据K得到里边这个Y6值的对象。等于钠,那就是没有派派一生没有的话,我们怎么做呢?咱是不是就要设置一下当天这个号源等于零,然后当前是没有号,没有号的话,其实就把里边的值改成负一就可以了,那这里边我们看一下这个课件中啊,把这个代码拿过来,也就是里边的。这么一个写法。我给它复制过来,就是如果等于空,我们就这对象,然后就这一生报这个人数是零,然后负一表示没有号,现在这个我们就写出来了,做了一个基本判断,然后这里边如果说它的值不等于空,那我们再进行相关的设置,那我写下啊,我们就来一个booking。
06:12
Ruler这个VO,点上set这个当前这个work date时间,我们变成这个date。然后除了它之外,再设置里边这个健康内容,那我们来设置啊,这个booking vo.site里边这个方法叫work data MD,就这个方法。可预约的日期嘛,啊,就是他是到这个。月,包括到这个日,然后在里边我们就写上里边这个就是相关这个date,这样的话咱们就完成了这么一个设置啊,就是里边的相关的这个方法,包括这是两个不同的格式啊,其实这两个方法是一样的,只是说咱为了后面页面使用方便,这是年月日,这是月和日,为了后面更加方便,所以我这里边就单独加了一个方法,为了后面做设置。
07:04
然后除了这个之外,咱们再来做操作,我们可以计算一下,就是当前这个预约的日期。啊,日期它的这个对应的这个星期,就是他是星期几,是星期一啊,还是星期二还是星期三等等,这个咱们之前应该有这个方法,当然咱们写过,那我们来找下这个方法啊,你看这个get day。Of week里边传入我们这个日期,然后最终我们就可以做到这个操作,那我们给他写一下啊。就是在里边咱就溜上一个。Datetime,然后传入这个date,传入之后最终它返回是这么一个字符串,我们叫day of week,然后咱们把这个day of week也设置到我们这个will里面去。那我设置一下啊,就当前这个是哪一个星期set day of week,是咱这个day of week,这样的话,咱们把这几个值就完成了这么一个设置,然后这几个设置之后呢,下面咱还有其他值,那我说一下我们下面要做什么啊,比如说啊,我现在是最后一页是最后一条记录,那这个时候是不是就没有这个号源呀,咱就显示成叫即将预约或者说即将放号,如果说当天呢,已经错过了这个就是过了这个停号时间,比如说每天约定十点就不再发号了,那这个时候咱是不是就不能预约呀,所以下面我们还有这么两个处理。
08:37
那咱看一下这两部分我们该怎么做啊,也就是里边的。这个结构。我把这个代码给各位拿过来,咱看一下最后的这个判断啊,然后判断中我这里写到,如果说你这里边是最后一页,那这个时候呢,咱就显示即将放号,如果不是的话,那我们就正常往下进行,而这里边如果说你已经过了这个停号时间,那咱就不能进行预约,这里边就停止预约,它就变成了负一。
09:09
然后这些都做完之后,最后咱们向这个booking入了。这个例子里边来设置咱们最终这个view对象,把它就最终放进去。所以这样的话呢,咱们通过这一长串代码就完成了里边这个日期对应的预约的排班规则的设置,咱现在把这部分我们就完成了,所以大家把这个代码能给它写出来啊,过程要麻烦一点,但是这个过程中你需要给他拆分出来,每一步也能给它实现出来。这些数据呢,都完成之后呢,最后咱们把数据是不是要放到我们的map集合中了,然后通过map集合给它最终返回是不是可以了,那最后咱给他都放到咱的ma机构中去啊,那我把这个代码给各位拿过来,咱看一下最后这个。
10:03
返回过程我们看到啊,首先这个预约的规则,我们这个例子集合放进去,然后里边的总接录数,包括下面有医院的科室的等等信息都放到了我们这个外部机构中,最终把它做了一个理退,然后在过程中啊,还有一个地方,这个值咱目前没有这个方法,这个只是干什么呢?我们想根据这个医院编号和科室编号得到我们的科室信息,得到它的大科室名称,还有科室名称,但是目前这个方法应该没有。所以咱们先把这个方法我们做一个创建,创建出来啊,应该很简单,就是里边跟上面这个方法类似,只是说上面方法返回的是你这个名称,我下面方法返回的是这个。对象,那咱们现在在里将这个方法,然后创建方法之后咱们在service里边把这个方法做一个实现。
11:00
实现之后,我们就来做一个最终调用啊,也就是调里边的这个方法,最终反应对象,然后咱们给它做个捋寸就可以了啊,就是跟这个你看根据医院编号,科室编号,得到你这个对象,最终做个捋寸。这样的话,这个我们就快速写出来了啊。这么一个基本的方法。然后洗完之后,最后咱再看一下啊,我们这个最终的这么一个过程是怎么样的。那咱们回到我们的search里边,大家看啊,这就是咱们最终完成的这么一个方法,这个方法中你看到啊,我们写了这么多,其实这个过程中就是我提到的,各位在写的代码的时候呢,你可以把里面的过程给它拆分成不同的小部分,然后每一部分每一部分进行编写,最终把它们整到一起,然后最终进行实现这些过程。如果说单独写每个小部分应该并不复杂,它的复杂点是把很多东西放到一起就感觉很麻烦,所以大家写接口时要一定给他好好去练习一下,这是我们在我们目前知识中一个比较综合的应用,也是一个比较复杂点的这么一个业务,这就是我们开发的接口,获取可预约的规则的这些数据。
12:19
所以咱们到这里为止呢,咱就把这两个接口就完成了,一个是可约的排班数据,一个是排班数据的这个具体内容,这个关于我们的接口开发,然后接口开发完成之后呢,咱们下面就可以开始整合它的前端,在前端中定义,然后页面中调用,最终把这效果我们就可以做个实现,那咱们一会儿来整合前端,目前开发的是里边的接口部分。
我来说两句