00:01
下面呢,我们继续来开发生成挂号订单接口。这里边刚才咱们分析到了,我们生成订单接口中需要两份数据,第一问数据,那就是就诊人信息,第二份数据是咱的排班信息和规则等等内容,那咱们下面呢,就来编写这两个接口,根据ID得到数据,然后最终通过远程调用得到信息,完成最终的订单的生成。那下面我们来写一下,首先第一部分呢,我们做这个根据就诊人的ID得到就诊人信息的接口,那我们就在service user里边来编写这么一个接口,那下面我们就来写一下,咱们来到这个service user里边。然后在service user里边找到里边这个patient API在里边我们来编写这个相关的接口,那这个接口我在里边写一下,我写到这个位置,我们就是。
01:09
根据咱们这个就诊人的ID,获取就诊人的信息。然后这个接口我给它起个名字,我就叫这个inner get,然后根据ID取到咱们用这个inner表示咱们的内部比上调用,下面加上方法public public后面呢,我们可以写上result,但是为了后面方便取值,我们直接反映这个patient,就为了它更加方便,然后后面加上咱这方法,比如方法起名就叫get patient order,为了区分出来。方法写完之后,在里边我们通过pass这个注解,先取到就诊人的这个ID值,把这个取到我们来一个long类型ID,然后取到之后呢,咱们就可以调用中的方法来实现这个功能,那我们看一下啊,在service里边呢,有这个方法叫get patient ID,咱们之前应该写这个方法,然后这里边我们根据它的ID值最终返回我们这个相关这个对象。
02:21
这个方法我们来看一下啊,就是里边的。这个方法咱之前写过,根据它得到我们的数据,然后用配置patient向里面封装它的其他的一些值,然后这个对象我们就得到了patient。得到之后呢,最后咱们把它做这么一个对patient,这样的话,咱们把我们的第一个接口就完成了,根据就诊人的ID得到就诊人的信息,这个我们完成了第一部分。然后写完之后呢,下面我们来进行这个远程调用的过程的一个编写。
03:03
那远程调用过程该怎么做呢?大家看一下啊,咱们之前呢,曾经在里边呢,创建了这么一个模块,我们叫service client,当时里边咱们建了一个叫service cn client,里边是不是定的远程调度过程,那我现在在里边在创建另外一个模块叫service user client,这个我已经提前创建过了,各位参考CMN把这创建,包括一会咱的好,我也提前创建了,然后咱们在service user里边来定义咱们相关的调用内容,我们在里边就来做定义,那怎么定义呢?给各位来写一下啊,首先在里边呢,我们先创建一个包。然后在包里边我们建一个interface,在interface中定义我们接口的路径,包括里边这个对应的模块就可以了,那咱们来写一下啊。首先我把这个包我们先创建出来,我们叫com.at硅谷,点上预约挂号,点上这个user.client。
04:13
这个我们创建,然后创建之后呢,里边我们创建一个interface,比如说我给interface起个名字,我就叫。这个名字了啊,Patient fit client,这是我们创建的一个interface,然后创建之后呢,在这里边我们加上相关的注解,也就是里边的这个注解,我把它直接复制过来,因为咱们要通过service user侧这个模块进行这么一个表上调用,包括把它交给自主管理,然后这个写完之后,在里边定义咱的接口,就是获取就诊人信息,根据ID获取。然后这个接口,咱们把我们写的。这个部分给它复制过来,也就是里边的。
05:01
这个结构,然后复制之后,咱们需要改几个地方,第一个把它的路径咱们先补充完整,就是里边的这个路径,我们拿过来A片,User patient in the get ID,然后咱们在这个pass注解里边加上它的名字,ID就是加一个名字,如果你不加的话,调用过程中会出错,所以现在咱们就把这个service user可单里边那个远程调用的部分就完成定义,然后最后我们调的时候把它注入,调这个接口就能实现这个过程,这是我们写的service user client这么一个事件,也就是我们根据ID得到就诊人信息,然后这个写完之后呢,下面我们再写这个接口,根据排班ID得到我们的排班信息,以及它的规则。那咱们来做一下啊。这个部分呢,我们就写到service hospital里边,然后在里边找到我们这个接口,比如咱们写到这个hospital A片CTRL中,在里边来实现它相关这个接口,那这接口我就把它啊直接就复制过来了,咱们就根据这个来实现我把CTRL部分。
06:19
先拿过来,然后大家看一下啊,根据排班ID获取预约的下单数据,这里边有这个ID,然后咱们得到数据,最终返一个叫筛掉O的VO,因为这里边有更详细信息,通过VO我们做返回,这是我们写的这么一个结构,包括这些通过ID渠道。然后这个选完之后呢,咱们下面在service中把这方法做个创建,我们来出这个方法,然后方法创建之后,咱们来到它的实现类中,把这方法最终我们来做个实现。也就是这个方法,根据排班ID获取预约的下单的信息,包含里边的相关的规则等等,那下面我们在里边就来写一下这个监管接口,也就是里边service中的这个部分,那咱们来实现一下啊。
07:17
首先里边的第一部分,大家看咱们要返回的是不是一个view对象,所以说我把这个view对象我们先给它创建出来,妞上一个筛掉O的VO。这个我们写的第一部分,然后这个得到之后,我们再下一步,咱们先来获取一下这个排班的信息,做个查询,里边有ID吗?那我们就直接查一下啊,咱们调这个base map里面这个方法我们叫select。把ID根据这个ID就是筛ID,得到咱们这个筛对象,这是我们做的这么一个查询,然后得到对象之后,咱们写的完整点,比如说咱做个判断,如果它的值等于空,咱给他就直接抛出一个自定义异常。
08:07
筛掉等于这个,那我们给它直接叫子肉new一个预约挂号,Exception什么异常。预约挂号exception,然后里边加上咱们那个结果及那个枚举啊,里边我们加上一个。状态码就是这个叫。Pol啊,就参数不正确啊,比如给他反一个值就可以了,这个啊是我们写的这么一个获取拍信息,然后这个获取之后呢,下面咱要获取一下是不是它的预约的规则信息啊,预约规则信息咱要通过那个hospital来得到,而这里边通过筛中那个hospital code得到,因为大家看啊,在咱的排班信息中是不是有医院编号,所以咱们通过医院编号能得到我们的内容。然后写一下啊,获取我们这个就是预约的规则的信息,咱们来得到一下啊,我们调这个就是hospital service里边这个方法,咱们看一下啊,之前应该写过这个方法,应该就是这个方法get by hot code,而hot code在筛掉对象中我们可以取到这个值。
09:22
Get好扣。最终。返回这个。Hospital这么一个对象,这个啊,里边会有咱们新闻内容,然后这个得到之后呢,咱下面通过hospital学到里面那个叫building ruler,就是它的预约规则啊,但是这里边我们也是可以做一个判断,那就是判断里面这个数据啊,比如如果他这个值。等于空,咱们也是抛出一个定义异常,如果它不等于空,我们通过这个hospital取到里面那个预约的这么一个规则,就这个booking入了,这样的话把它就取到了,取到之后同样啊也是做一个判断了啊,跟上面都一样,就判断如果它等于空,我们也是反一个进行异常。
10:12
这样的话,把这值我们就取到了,然后取到值之后呢,咱下面把几个值是不是要给他,然后set到我们这个VO对象中去,就是向VO对象中set它相关这些内容,比如说我写一个啊,后面给它就复制了,那都是固定的,就是把我们获取的数据给它设置到这个筛掉view中去。那我们来设置一下哈。比如说里边的第一个值咱看一下啊,有一个set hot code,咱通过she.at hot code是做设置,但是里边还有其他值啊,那这个设置代什码我就从课件中直接复制了啊,就是里边的。这么几个代码,我把这个给各位直接复制过来,也就是里边的。
11:01
这几个值啊,然后咱看一下啊,第一个就是编号,然后第二个是咱的名称,我们通过这个方法,通过它查询出来,包括这个部门或者科室编号,科室名称,还有你的ID,包括这个剩余票数,就剩余那个。可约数量等等信息,包括title,包括里边这个金额等等内容,所以大家看通过这段代码,咱们在VO对象中是不是已经有了我们相关的数据了,在里边要把这些都进行设置,然后设置之后呢,下面有一些就是相关的日期的处理,那我们来看一下啊,比如说这日期中然有一个叫做退号的截止天数,包括预约的开始时间,包括的截止时间,还有当天停止挂号时间,所以咱把这些值给它做个处理,然后也都给它set到咱这个VO对象中去。这一部分我给它拿过来啊,就是都是得到这个日期,然后变成我们这个data time类型,把data time类型的数据set到感view对象中去,主要指的是刚才我提到的这么几个值,所以现在这些数据里边应该都有了,然后都有之后呢,最后咱就把这个view对象做一个铝寸就可以了。
12:19
这就是我们开发的第二个接口,根据我们的排班ID,得到排班相关的一些预约信息,这是我们完成的开发,然后这个完成之后呢,咱们用同样的方式在service里边也创建一个client,然后里边把这接口咱们用同样的方式也是做一个定义。那我现在把这个啊,咱给他快速写下啊,就是把这个也是定义一下就可以了。首先我也是建个包,我们叫com.at硅谷,点上预约挂号,点上这个hospital点。
13:02
然后在里边呢,创建一个interface,把咱们接口路径做个定义就可以了,那这个interface我到这里边,比如说给他啊,我们来找一下啊,就是这个名字,比如我们叫这个hospital b。这个拿过来,然后拿过来之后在上面加上相关注解,就是你指定是调的哪个服务,包括把它交给损管理,咱们调的是service hospital,然后repary交给损管理,这个选完之后,下面同样的方式把接口咱做定义啊,也就是里边的。这么一个接口,然后把它直接就从这里边哦,你直接复制过来啊,就是这么一个。拿给它拿,后来刚才刚写过这么一个结构,然后大家看啊,首先在里边我们写上它的完整路径,然后下面呢,在注解后面加上你的属性名字,摘掉ID啊,它是根据排班ID获取预约的下载数据,这样的话,咱把这个远程调用部分就完成了定义啊,就是里边的这么一个写法。
14:14
然后这个完成之后呢,在我们里边呢,还需要一个接口,这个接口是什么呢?大家看里边啊,它就叫做获取下单引用的签名信息接口,那这是什么意思呢?比如说咱们在操作中呢,咱们看第三步。我们是不是要最终去调用医院那边接口进行下单呀,而医院接口调度过程中,咱是不是要做一个签名的一个比对呀,看你双方的签名是否一致,如果一致的话,我们进行调用,所以这里边就会取那个签名的信息,那这一部分我把它就直接拿过来啊,因为这个接口就比较简单了,首先我们看这个方法啊。根据我们的院编号获取你院的。签名信息,然后这个方法我给他创建一下。
15:04
获取签名信息,咱们来到他的实现类中,在实现类中把这个签名信息我们最终给他得到一下就可以了,也就是里边的。这么一个结构啊,把这个给各位复制过来,然后咱们快速看一下啊,首先你看根据医院编号得到这个医院的site,就是医院的设置信息,因为我们在设置信息中有它的机会内容,比如说我们来看一下啊,之前咱们写过有同学应该忘记了,咱看到里边你看有这个地址,是不是有他的签名,所以咱就把这些纸得到,然后得到之后这里边我们set到这个single info view中,把它做返回,这样的话这个接口就完成了,完成之后我们用同样的方式把它也是在我们这里边咱们做一个定义。Hospital b。
16:00
Client里边我们定一下哈。咱们给他补充完整啊,就是里边的。这个地址。然后在后面部分,我把这个给他。补充完整,后面加上咱们相关的这个。注解,包括名字,包括这个接口,我们加上一个注释。这个接口就是根据医院的编号。获取医院的签名的信息,也就是里边的这部分。我把它拿过来,所以咱们现在呢就完成了,我们生成订单两个进行远程调用接口,一个接口就是根据就诊人的ID得到就诊人的信息,一个是根据排位ID得到下单信息与预约信息,这样的话我们就完成了,然后完成之后呢,咱们下面啊,在这个下单接口中进行远程调用,最终把功能进行实现,所以咱们现在先完成这两个远程调用接口的开发。
我来说两句