00:01
各位同学大家好,下面呢咱们继续来开发预约挂号功能,刚才呢,咱们完成了两大功能,第一个功能显示可预约的挂号信息,在里边我们完成显示,然后咱们点击每一个日期能显示它的具体内容,而我们选择这个剩余的这个挂号数量,那它进入到一个预约挂号的确认页面,咱们在确认页面中能选择就诊人,包括里边显示挂号信息,最后有咱们的用户的信息,最终咱们点确认挂号,那这里边是不是就可以完成挂号,所以咱们下面就来做这个确认挂号功能,而确认挂号功能怎么做呢?首先给大家先做个分析。各位注意啊,当我们点击确认挂号,这里边是不是要生成我这个挂号这个订单呀,所以咱就是一个挂号订单的这么一个生成,而挂号订单生成过程中,它会向咱们这个订单表中加一条数据,那我们先看一下这个订单表里边一个表结构,在我们数据库中,这个预约挂号order里边有一个表叫做order info,然后order info中有咱们订单中的基本信息,包括大家看一下里边有用快递。
01:23
包含医院的信息,科室的信息,排班的信息,包括日期,以及里边是不是还包含救人的信息等内容,所以咱们在这个确认挂号,比如说下订单的过程中,就像这个订单表中加交数据,这些数据中包含咱们的就诊人信息,包含咱们的挂号或者说排班信息,所以这些信息都要加到数据库中,这是咱们一个基本分析,然后大家看一下我的课件中,在课件中呢,我这里列出了我们下单的一个基本流程,那什么流程呢?第一部分就是我们点击确认挂号,那咱做法就是根据咱们的就诊人的ID,包括排班ID来查出里面内容,内容中包含就人的信息。
02:13
下单信息,排班信息、规则等内容,然后咱们通过医院签名信息去调用医院的接口进行下单,下单之后更新你的排班信息,发送短信,比如说我这个医生挂了一个号,那号源数量是不是要减一啊,然后给我的用户发个短信说你挂号已经成功了,所以咱们里边呢,在这个就是下单过程中主要完成的就是这么一个流程。这个过程各位给他要知道啊,然后在过程中呢,就是这里边的。一第一个流程,第二个流程,第四个流程应该比较好理解,主要是第三个流程可能稍微复杂点,那我给大家说一下这个第三个流程是什么特点啊?其实咱们之前曾经做过类似功能,当时咱们写那个数据接口中应该用过,给大家强调啊,大家注意咱们现在做的部分是不是一个平台的系统啊,而我们的平台真正去预约挂号是不是要去调用医院的接口啊?
03:17
而咱们之前呢,写了一个医院的模拟系统,所以咱们现在真正去下单,最终肯定要去医院那边调医院的进手经实现,所以这过程中就来做这个事情,咱们在里边得到一些相关操作或一些参数,然后把参数去调用医院接口,最终完成医院预约下单功能,所以这是我们实现的下单功能一个基本流程,这各位给他知道,然后咱们一会儿就按照流程把这个功能我们最终做个实现。所以这个就是一个需求分析,然后分析之后下面我们来做一下这个功能,因为咱们现在做的是一个订单部分,所以我在里边呢,我们就重新建个新的模块,我起名就叫service order,用它专门作为咱的订单的操作。那service order的创建方式跟之前这些都一样,我这里边已经提前创建过了wi order,各位可以参考之前的servicewi user service hospital等等,把它快速创建出来,我这里边已经创建过了,然后创建之后,首先第一部分在里边,我们先引入相关的依赖,那我们先引入第一个依赖,因为一会儿我们要做这个远程调用,所以咱先把这个引入,后面缺少大家往里面加,这是第一部分。
04:38
然后引入依赖之后,第二部分呢,我们在里边创建它的配置文件application.practice然后在配置文件中加上它相关内容,那我现在把配置文件给各位复制过来,咱们就放到这里边来,跟之前基本上都一样的,比如你看里边端口号8206呼名字这是O。
05:02
数据库的地址,包括NAS等等地址在里边,我们给它都复制过来了,这是它的第二部分,然后这个做到之后呢,我们的第三部分创建启动类,包括最终配置网关,那咱下面把这个启动类给它创建出来。我在这个Java文件夹下边,咱们先创建一个包,这个包我起名就叫com点。At硅谷预约挂号点O。把这个先创建,然后创建之后里边把启动类创建出来。咱们叫。这个完成了,完成之后上面加上相关注解,下面加上问方法,就是里边的这个结构,我把这个给各位直接复制过来,因为咱们之前写过很多次类代码,包括然后它的包扫描,包括在na行注册以及远程进行调用。
06:04
然后最后问方法,这样的话,咱们这个基本结构写出来了,然后写完之后呢,我们下面呢,在网关里边把它也做过配置,因为咱后面都是通过网关进行操作的,那我用这个给他来改一下。咱们这里边首先下标改成六。这里边我们叫order。下面是service order,然后这里面路径中,然后后面的路径中,让它都包含这个order,这个网关就完成了,所以这是一个最基本的service o的模块搭建,按照这个课件中的流程,各位把它快速搭建出来可以了,没有什么难点啊,就是一个固定流程,然后搭建之后呢,下一部分咱们先添加订单的基础类,包含它的control service map,还有这个model model呢,之前我们应该都统一引入过了,那咱看一下啊,在这个model里边我们找一下。
07:08
里边有个包叫model,然后model中有个order order中一个叫order info,这里边就是咱们相关这些属性,这个已经引入过了,所以咱们就后面直接用可以了,包括VI里面有相关的一些操作。这是我们的十几类,然后除了它之外,下面我们在里边创建control service map等内容,那我来做个创建,咱们先创建一个controller。那我加个包。Ctrler,然后CTRL里边我们加上这么一个CTRL这个内容,那CTRL了,我给它起名,比如说我叫这个order API CTR。那这CTRL了呢,为了明显啊,我在里边呢,再给他建个包,这个包我们就叫这个。A片。
08:00
然后给它创建啊,比如说我这么做直接就叫API,然后里面直接进行创建啊。我创建一个包就叫。API,然后在API中呢,咱们把这个CTRL类创建,我们叫o API ctrl,然后在上面加上注解。Risk ctrl了,包括request mapping request mapping中加上咱的路径,路径中我们让它包含这个O,为了咱们网关配置中。进行使用,这个咱就完成了,完成之后下面我们创建service,包括它的map。那我先写service service里边呢,首先我们建个interface接口。咱们叫这个order service。然后order service呢,让他来继承,就是这么一个接口,咱们叫这个I UI service,让他做一个继承,里边传入这个order in for。
09:04
然后写完之后再来写一下它这个实现类,我们同样建个包。然后包里边创建它的实现类,咱们叫O。Service m PL,然后让它实现咱们这个接口。O。Service,然后让这个时间内来继承里边这个就是service m PL,让他用到MP中的相关内容。咱们把它快速完成,这个有依赖。然后影之后呢,在这上边加上一个service这么一个注解。这个我们就完成了,然后最后我们创的那个部分。我在里边写一下。Map。然后map里边呢,咱们来创建这么一个interface,我们叫old map,让这个map继承一个叫base map。
10:05
里边加入O的音。所以咱们啊,现在的话,把这个基本的结构咱们就要完成创建,也就是里边一些相关基础类的创建,各位按这个过程把它快速做到就可以了,就这个我们就完成了。然后完成之后,在这里边呢,我们应该还有一个配置类,因为咱们要去扫描那个map,所以我在里边呢,加上一个配置类,我们叫config,然后config中把这个类起个名字,我们就叫order。考上面加上注解。Config。然后加一个map sc,在map sc中加上它这个包的这个路径,也就是里边的这个路径。我把这个拿过来,所以这样的话,这个结构咱们就完成了,就是关于订单相关基础类的创建,各位把这能给到快点实验出来,然后实验之后呢,因为咱后面啊,要做这功能是不是就是一个生成订单,或者说创建订单,而在里边刚才咱分析到了,他需要排班的ID,还有这个就诊人的ID,然后根据这些来完成一个订单的一个生成,或者说一个订单的这么一个添加,那咱们下面呢,在里边我们把这个方法可以给他先创建出来,然后后面再做完善。
11:36
那我写一下啊,我先加个O,然后来注入这个O。Service在里边,我们将这个方法它就是生成。挂号的订单。然后在里边呢,把这方法我们给它起个名字啊,比如说我就跟这个名字,咱起成同样的名字了啊,就叫这个名字。
12:00
把这个拿过来,然后咱们来一个public。Result。加上这个叫做啊,我们是这个,比如说save。Orders。然后在save order里边,我们得到里边这么两个值啊,就是一个筛type ID,一个是这个patient就诊人的ID,把2ID得到。那我们来写一下啊,我们加上一个帕不解,第一个这个筛掉ID。然后第二个加一个注解啊,这应该是个浪类型,我们叫这个黑头。ID。这样的话把两值得到,然后得到之后,最终我们来调用service里边的方法实验这个功能,Service里边我叫save o里边传这两个值,一个schedule ID,一个patient ID,然后这个我们添加之后呢,最重要它就返回,比如说返回我们那个订单的ID,我们叫浪类型。
13:07
O的ID,最后把这O的ID咱做个T就可以了,那加个蕊造的点,OK,加上O的ID。这样的话呢,咱就把这个CTRL部分就快速完成了,根据排班ID还有就诊人ID,然后最终生成咱们的订单,这两个值为了查询数据就能生成,然后这个写完之后呢,咱们下面按照结构中,我们在service接口实现类中把这方法先做个创建。然后后面再再做完善啊,这里边我创建方法。然后来到它的实现内中,在实现内中把这方法咱们先定义出来,然后后续我们再进行完善。所以现在基础类我们就写完了,就是这么一个结构,所以大家按照我刚才的过程把这些代码快速写出来,然后这个写完之后呢,咱们说一下下面咱要干什么。
14:09
刚才咱们分析到了,我们要根据这个就诊人ID得到就人的信息,根据排班ID得到他的排班下单信息与预约规则,所以这两部分呢,咱们还要继续进行调用方法进行实现,但是调的话,因为咱们在order里边没法直接去调用我们相关这个里边内容,所以咱们下面操作中就通过远程调用方式分别去得到咱们的就诊人信息,还有这个排班下单信息,下面就是这两个信息需要通过远程调用进行实现。所以咱们下面把这个我们就来写一下。首先第一部分呢,我们先得到救人的信息,那这个信息呢,咱可以在service user里边一会儿写一下这个接口返回可以了,然后最终写远程调用,另外就是下单信息,我们可以写到service hospital里边,然后最终远程调用得到就可以了。所以这两个方法一会儿咱们来完成,通过远程调用进行实现,目前是搭建了一个最基本的环境。
我来说两句