00:01
各位大家好,我们继续来开发相关的接口,刚才咱们完成了医院管理的相关接口,咱们完成了两个接口,一个是上传医院接口,第二个是查询院接口,那咱们下面来完成,下面接口就是关于科室的接口,在科室里边的咱们主要做三个接口,第一个就是上传接口,第二个是查询接口,第三个就是里边的删除接口。那咱们首先先把科室的相关基础类,我们先做个创建,创建之后按照文档再来开发对应的接口,那我们先创建基础类。首先第一个在我们的model里边,之前咱们引入了一个实体类,我们找到就是这个实体类我们叫department,代表咱的科室,然后里边包含,比如说这里边有科室编号,科室名称等等,而科室是不是要属于某个医院,所以里边还有这个医院的编号,这是我们的第一部分,引入这个实习类,然后引入之后我们看里面的第二部分,第二步呢,咱就创建repttery,创建service,然后创建controller,最终来编写咱们对应的这个内容。那咱们下面把这个我们来做个创建,首先我先创建这个Rep,那我来做个创建。
01:25
咱们现在来到咱们的好的PI里边,里边有这个re poer这个包,然后在里边呢,我们现在就来创建一个interface接口,起名就叫做department repttery,把这个做创建,然后创建之后让他是不是要继承一个接口,咱之前写过这接口就叫做mango。Repy里边加上咱的实体类,实体类是这个department,然后加上一个string。所以咱们现在把这个repttery就作为创建,我给它加上这个项的这个注解。
02:05
然后这个创建之后,下面再来创建一个servicece,在service里边,首先我们先创建一个service的interface,我在里边写一下,就是这个department service。然后创建之后再来创建它对应的实现类,那我在里边写一下。Department service mtl让他实现这个接口。Department。然后在上面加上这个注解,我们加一个service,加上之后,因为service里边要去调这个reporter里边方法,所以咱们做一个注入O。我们加上一个private。
03:00
Department。Re report这样的话,咱们现在把这个就创建了,然后创建之后呢,下面咱们把这个CR了做创建,CR了我就写到这个API里边,在这个位置我们来创建这么一个CTRL了,那我在里边写下。这个controller我起名就叫做department controller,或者说咱们controller也可以都写到这个API中,都是可以的,那比如现在我就把它写到API中,因为API咱是统一对外去调用的这么一个接口,所以现在咱们把这个基础类就完成了创建。基础类创建之后,下面我们先来做第一个接口,上传课时接口,那首先我们先来到医院的这个系统中找到它用的方法,那我们来找一下上传。关于科室的这个方法,我们来找到,然后里边来看一下,用的应该就是这个方法,然后你看里边也是跟之前我们上传那个医院是类似的,只是说这里边多了一个步骤,大家看这步是什么,是不是一个负循环呀,因为咱们一个医院中是不是可以有多个科室,所以他把多课时做过便历,最终把数据传过去,包括在里边也有咱们这的内容,然后内容中咱把这个稍微改一下,因为咱们传那个就是加密的签名T,或者点小问题,咱给他改造一下,改成这个就是。
04:30
MD5。点上里边这个方法,然后把它直接传进去就可以了,所以现在我们这个做一个简单处理,就跟之前我们做那个上传,包括。医院的这部分基本上是一致的啊,那我就把它这些咱就。顺过来,用我们之前的方式把这个快速改一下,就是这个。然后这个我们改完之后大家看啊,在这里边做的事情就是也是把这个传到我们这个对应的接口中去,所以咱们现在开发就是来写一个接口,接口名字我们叫c department,那下面。
05:09
把这个咱就快速给他写下。咱们看这个该怎么进行实现。那我们现在给他来开发一下啊。然后现在呢,我就来到这个API,这个CTRL里边,我给他找到。找到之后在里边写方法,因为它跟我们之前写的上传医院接口基本上是类似的,所以他就仿照上传医院接口把这个快速完成,我们现在做的是上传科室的。这个接口。然后在里边写一下,首先第一个咱们还是来一个POS提交,加上我们提交那个路径,这个路径我们到文档中,咱找一下上面科室名字叫save department,然后把这个拿回来,下面写上咱的方法。
06:04
Public。我给它起个名字,我就叫c department,然后在里边我应该知道咱们传的是不含这个htp serve块对象,把这个拿回来,拿回来之后第一部分把块里边的这个数据得到,然后咱给它转成一个ma集合,跟这个过程是类似的,把这个我就直接复制过来,给它做一个转换。就是获取传递管那个科室的。信息,然后这个做到之后,咱下面做的是不是也要去验证一下里边那个数字签名啊,或者说签名是否一样,验证方式跟之前应该说也是一模一样的,没有什么区别,那我就把之前代码咱们就拿过来,应该用的就这个代码,或者说你可以把这代码写到一个工具类,然后在里边每次调就可以了,我现在就简单给各位来复制过来,各位可以把它抽取到一个工具类中,然后每次调就可以了,过程应该很简单。
07:08
然后咱们现在做这么一个校验,大家看过程啊。我们现在传的数据中定包含你那个医院的编号,包括咱们来看一下,就是我们这里边。是不是有这个院编号,包括有里边那个科室编号,然后咱做法就是在里边得到院编号,得到你的签名,根据这个院编号去查询出他的签名,最终加密做比较,如果说他们不一样,咱就抛异常,如果一样的话,咱再往下进行操作,这样的话就完成了签名的校验,然后完成之后咱就调这个department service中的方法进行实现,那咱们把department service给他先。入进来。来写一下。Private department。Service,咱们来调一下里面的方法,那我来写下找到它的接口。
08:04
我写个注释。调用。Service。里边的方法。然后在里边,比如这个方法,我起个名字,我就叫这个C,然后在C里边,咱就把刚才转换之后那个map给它传进来,最终给它加一个返回值。T result.ok所以这样的话,现在咱们把这个CTR了,我们就完成了,完成之后呢,下面再来写这个service,包括它最终这个实现,那现在我在service里边把这方法做创建,就是添加课时信息,然后创建之后在它的实现类中把这方法我们做一个实现。现在都有了,然后实现中跟咱们之前上传类似,那现在就快速写下,咱们看怎么做,首先第一个呢,因为咱们传的是不是一个map集合呀,咱们把map集合是不是要转成我们那个对象,会让咱们操作更加方便,那我写一下我们这个做法。
09:09
把这个para转换成一个那个department对象,那我们就直接写下了啊。我们来一个department。然后。我们加上GC。Object。点上这个叫pass object。在里边传入map转到字符串,然后在转字符串,用Jason object里边这个方法叫to Jason string里边就传入我们这个字母串就可以了,那能给它传进去啊,就传入我们这个p map。这样的话呢,它就变成了一个字符串,比如我叫这个。Terrible。然后咱们把这字符串放到方法中,最终它就会转成一个这个就是我们这个B项,所以这样的话我们就完成了啊,当然这里边加上你那个要转对象那个类型的。
10:13
Class在这个我们现在就把它写出来了,这么一个基本结构。然后这里边啊,啊,写的位置写的不对啊,应该把这个类型的class是不是写到下边啊,不是写到上边,写到这样,这样的话就完成转换,然后完成转换之后咱们就往下做,因为现在我的数据库中可能已经存在了课时信息,所以咱是不是做过判断呀,看里边是否存在课室信息,那怎么判断呢?咱们来看一下啊,因为咱们刚才说的我们那个数据中呢,咱再看下数据,它包含咱的科室编号,是不是也包含了医院编号,而这里边咱是不是要根据医院编号和科室编号进行查询,因为我们医院中有科室,科室可以重复,但是两个加一起不能重复,所以咱们下面根据这两个编号来做查询。
11:07
那我在里边写一下,这个查询,我就调用department中的方法进行实现,按照咱们spring date的规范,我们来做个创建,咱之前介绍过,那我直接写一下,就是get department。我在里边写一下,然后后面加上一个BY,加上你那个两个字段,一个叫house code。然后加上一个and,第二个是这个叫做department code,那我从这里边咱给它直接就分过来,应该是这个值,只是把你的首字母变成大写,这样的话咱们把方法就写出来了,然后写完之后在里边传入两个参数,第一个参数就是我们这个house code,比如你的医院编号。那通过department给他取下。
12:00
然后第二个参数是里边这个。科室的编号,这样的话,咱们把这个就给它写出来了。就是我们的这么一个结构,然后这个方法我们再检查一下啊,Get department by。How cold and。DEP Co这样的话就写出来了,然后写完之后,它最终返回的肯定是这个底帕他们的这么一个对象,就是咱们查出来这个数据,比如叫这个department exist。个写出来了啊,然后写完之后,咱们现在在这个reporter里边,把这方法给它快速创建出来,它就是。查询你那个科室的信息,这个就完成了,完成之后咱们再回到我们的API中,那下面做的事情,我觉得各位应该都会做了,做什么是不是就判断一下呀,判断里边有没有,如果有的话咱做更新,没有的话是不是做添加,所以最终我们就实现这个操作,我加上注释。
13:05
根据医院编号还有你的科室编号进行查询,然后下面我们做一个判断。让我判断一下啊,加上一个if。Department。如果说它不等于空,表示咱们有数据,那我做的是不是就是更新,那我就调这个就是departmentpay里边的save方法,然后里边传入咱们这个对象就可以了。然后这个对象中呢,咱就要给它传入几个值,就是给它改几个值,那我给它来改一下啊,首先里边比如我们改一下这个值,这个改值呢,如果你不会做,你可以参考我们之前写那个上传医院那个service,因为跟他基本上是一样的,然后里边就改的,比如你的时间啊等哪些值,那我给他就快头改一下,比如说第一个我们就改这个。
14:06
修改时间,这个肯定需要,因为它里边是一个新的时间。然后除了这个之外,咱们再改一个,就这个意思。Delete的这个值我们起个零,然后最终把这个传到方法中,我们做这操作,然后咱们再加else,如果它的值等于空,那咱们做的可能就是一个添加操作,而添加操作咱就直接调用这个save方法,然后里边传这个对象就可以了,那我来调一下。Department report点上。这个方法,然后里边传这个底盘的问道。在这过程中,咱也是需要给它设置几个值,就是它几个时间的这个那种,我来设置一下啊,第一个创建时间溜上一个date。然后第二个。Set一个,它这个修改时间,咱们也是上一个。
15:05
然后第三个就是里边这个是否删除的标志,这个值我们还是零。这样的话,我们现在就把这个关于上传科室的操作,咱们就最终完成了,这是我们写的这个代码,所以各位按照这个流程,能把咱这功能给它快速做到现在我们就写完了,然后写完之后咱来检查一下,最终我们来做一个测试,看一下效果。那我们检查一下啊,首先CTRL里边得到这个数据,然后得到数据之后给它变成一个map集合,然后咱们做这个就是签名的校验,最终调方法做这个操作,在方法中我们就是。首先先给它变成一个对象,然后咱们查数据库中是否存在,如果不存在或者存在,我们进行不同的操作,这样的话,这个功能就完成了。
16:03
完成之后,现在咱们把这个服务重新启动一下,然后咱们做一个最终测试,就看一下上传科室信息,最终咱们能不能实现,那我们来测试一下啊,首先我启用这个医院系统来看,里面报了一个错啊,这位置我们少写了一个逗号。我给他再重启一下啊。把这个医院这个系统给它重启一下。然后这个重启之后,我们再重启我们刚才写的一个hospital里边关于科室的相关内容,等他先集起来。这个已经启动了,然后把这个服务启动。咱们等他启动完成,都启动完成之后,最终咱就来到我们这个医院系统中做,这个就是科室的添加功能,而科室添加这里边我们需要找一些数据,数据我在这个资料中给大家引擎出来了,咱找这个部门或者说科室这个数据。
17:02
然后再看一下数据啊,这些数据中大家发现是不是有很多有,因为我一个医院中有很多的课时,所以我这里边写了一个这算数组,然后里边有不同内容,咱们现在就把这个数据加到咱的数据库中。那我现在把它就直接做个复制,现在我们看服务已经启用起来了,咱们来到我们的系统中,现在我点击科室列表。因为咱没有写这个列表功能,这里报了一个错,一会儿咱们把金额完成,咱们先做个添加,在里边点添加。是不是进入到这个页面,然后里边呢,我这个位置直接复制刚才我这个科室信息,大家看是一个这是数组,然后里边有很多的科室,包括数组,最终我们点保存,咱们看一下效果什么样,咱们来点一下。大家看里边最终的结果是什么样的,我们等它进行完成,大家看提示咱们是不是操作成功证明就就正确了,然后咱们到这个芒果DB中,我们来刷新,咱们来看一下最终的效果什么样,看这数据我们现在到底是有没有,那我到里面刷新,我们来试一下。
18:19
现在我们这么来做啊,咱们把这个语句改一下,之前咱们写过。这里边加上咱们那个collection,就是我们的表那个名字,我们现在叫department。然后现在我们把它执行一下,咱们看一下效果。可以看这里边数据是不是有了,然后你看里边是不是有很多的document,就是我们这个科室信息,比如说我们随便点一个,你看里边有这个医院编号,科室编号,包括你的科室名称等等那种里边是不是都存在了,所以咱们现在就把这个上传科室的接口,咱们就最终完成了,跟我们之前上传医院是类似的,然后这个完成之后,咱下面就来实现科室的查询,包括科室的删除功能。
我来说两句