00:01
各位大家好,我们继续来开发上传医院接口,刚才咱们初步实现了上传医院接口功能,然后咱们下面把功能做个完善,首先我们做第一个完善就是来做一个签名的一个校验,那什么叫签名校验呢?给各位来强调一下,首先我现在大家看咱们是不是通过这个医院系统去调用我们这个就是刚才写的接口啊。而这过程中,我们的接口是咱们在好P里边完成这么一个上传医院的这么一个接口,那这过程中大家看到我刚才调的过程中,大家注意,只要说我知道地址,咱是不是就可以直接调用,这里边没有做任何校验,而我现在要做一个校验,什么校验呢?就是我现在比如说我要知道我只有是我这个医院才能去调我的接口,比如说我这医院是新和医院才能调我的医院,比如说是人民医院才能调的接口,而不是说随便一个医院都能去调入接口,让他们做一个相关的一个连接。
01:07
让你相的医院去调用对应的接口,所以咱们要做一个就是签名的一个校验,那什么叫签文校验呢?咱们之前在做医院设置的时候,曾经设了一个这个签名,这么一个随机的字符串,而我现在在里边也有这么一个字符串,那咱就让这两字符串做个比对,如果它们的值相同,那我们再允许它进行接入调用,如果它们的值不相同,咱就不允许它做调用。所以就好比说我们现在做一个权限的校验,看他是不是我当前这个医院,只有是这个医院才能调我对应的这个接口。那下面咱就把这个签名校验给他做个实践,那我们看这个功能该怎么去做,首先大家看一下,在咱们的医院系统中,我们把这个打开。然后在里边各位看到在我们传的数据中,这个ma机构中有这么一行数据,这数据的名字叫S,然后里边的值其实就是我们那个是不是签名啊,包括你刚才那签名中我们做了一个处理,什么处理,是不是用MD5做一个加密啊,也如我现在在我传到接口中的个地方中,在里边的map中就有咱们那个相关的签名,比这个签名做了MD5加密,那我们要做的事情是什么?
02:28
把这签名得到,然后从我当前这里边取到我这个签名,把它们做个比对是不是可以了,如果说他们相同,那我们做个调用,如果说他们不相同,咱们说就不进行这么一个调用,所以现在我们就来做这么一个事情,那现在给各位来写一下。首先解压步骤啊,第一步咱们先获取一下我们那个医院的系统中传递过来的那个签名。把这个我们先给它得到,那怎么得到呢?咱们通过这个per map,点上盖头,加上你的K,然后这个K是咱们刚才看的这个名字,就是这个S,咱把它得到。
03:14
这是得到由医院系统传过来那个签名,那比如说我起个名字就叫hospital这个。S把这个得到,然后这个签名,刚才咱们看到它的值是不是做了一个MD5的加密啊,所以咱们注意这得到是一个MD股加密的一个签名,那我先给它做一个转换,为了咱方便比较,给它都变成一个。四数类型,这里特别标注一下,这个签名是进行了MD5的这么一个加密。然后这个得到之后,下面咱怎么做呢?咱是不是要查一下我们当前这个接口中这个签和签名,也是我hospital这个表里边那个签名,看跟这个是否一样,那怎么查给各位来写一下,因为现在我在这个拍拍map里边是不是有你那个院的编号啊,所以第二步我们的做法就是写一下根据你的。
04:11
就是传递过来的那个医院编号,去查询咱的数据库,看里边那个签名,就是查询出你的签名,看它们是否一样,那下面我来写一下,通过他点。Map,点上里边的get方法,加上你那个签名的那个,就是相关那个K,咱用编号,编号是house code这个拿过来。然后他得到就是我们这个好的扣,我把这个给各位直接复制过来。这个位置咱们做一个。强转。对,然后这个得到之后,下面咱就来调用咱们数据库中的方法,把那值得到,然后得到之后进行MD5加密,然后做操作,然后得到的话咱就调一下方法,之前呢,咱那签名我们里边有一个service,就是这个service咱找一下。
05:08
我们之前在里边写过一个叫hospital是不是?所以我们现在就调这里边的方法来做实验。当然你写的好,批中也一样,咱就在这个医院设置中做操作,因为这个里边咱专门是用于维护这个相关签名,还有医院编号的,那咱们来调一下啊,首先调的话,我先把这个hospital set service先注入进来,因为咱们要做个调用。那我来做一个注入。把这个咱们先给他拿过来引入依赖,然后住之后咱们调里边的相应的方法,那我们来调一下这一方法,目前应该是没有,咱们来快速写一下,我就叫这个get这个size。然后里边传入咱们那个医院的编号,最终让他就返回我们那个相应的这个那种,咱就返回那个。
06:07
我们查出来的稿。医院的那个。签名key就是3K。咱们拿过来,然后写完之后,下面呢,咱们把这个方法快速完成一下,那我来写一下啊,在里边把方法咱们先做一个重建,然后创建之后来到它的实验类中,在实验类中把这方法快速实一下。就这位置我们来做个实验,然后这个方法查的肯定是咱们的买so数据库,所以咱调的就是base map中这个方法,咱们找个方法,因为现在一个医院编号对应的是不是一个K,就是一个签名,所以咱用这个SY那就可以了,然后上面加上咱这条件,就是咱们之前的MP中的实现。RY加上。好的,劈头。这个再等。
07:00
然后这个我们叫做rapper。等于U上一个query rapper,在里边设置它的值,点上EQ,加上里面那个表,里边那个字段,我们叫hot code。给它复制过来,然后后面传入你的参数。最终把这个rapper传到方法中来,然后它会返回这个好set这个对象。包括这个对象里边,咱把它的值直接得到就可以了,比如这里边为了明显,咱们可以先做一个。简单的一个判断啊,就直接传就可以了,比如说这里边直接给他就。返回这个值了啊,直接返回一下get这个。SK这样的话,咱们现在这个方法就根据医院编号得到你那个签名的K,所以现在我们在CTRL中调的方法把它就得到了,然后得到之后我们就用到第三步,因为大家看到现在我们通过医院传过来的签名是不是进行了MD5的加密,所以咱们把查出来的签名是不是也要进行MD加密,我写一下把数据库查询出来的签名进行MD5的这么一个。
08:18
加密,那我们来加密一下啊,就是用这个MD5。咱们工具类中有这个方法,然后点上里面那个加密方法,把它传过来,最终得到我们这个值,比如说叫这个。MD5这么一个加密的这么一个值,然后得到之后,下面咱们最后一步就来做一个判断。就是判断你这个签名是否一致,也就是咱们传过的签名跟数据库中查出的签名是否一样,如果一样的话,那我们做这个操作,不一样的话,咱就不做这个操作,给他来一些提示,那咱们下面判断一下。
09:01
我来写一下,首先我用这个传过来那个签名,咱们就叫做这个好赛。点上equals sin k md5,如果说他们一样,我们做操作如果不一样,比如咱们就来一个C不一样,不一样的话呢,咱可以来个提示,那我就直接抛出一个自定义异常,咱之前写过这异常,就这个预约挂号exception里边加上它那个相关的值,然后这个值呢,当时咱应该写过这么一个,就是枚举类,我就直接写下啊,当时我们应该是在common里边写过,给咱们快速找一下啊。找到这里边有一个result,是不是写过这个微类,那我就用里边的一个值,直接给它做个返回就可以了,比如用里边的咱找一下啊,应该有这个相应的值。有一个那个赛就是签名错误,把这个给他做个返回可以了,那我在里边开头写一下,直接还有这个异常。
10:05
用枚举类中这个就是叫做赛。哀。这样的话呢,现在咱就把这个签名做了一个判断,这个过程就完成了,这过程给各位再说一下啊,并不复杂,只是说我们要做一些相关的处理,首先第一步得到你那个医院那边系统中传过来的这个签名,因为医院系统中咱看到他的签名是做了一个MD5的这么一个加密,所以咱们给他直接得到,用这个叫S得到,然后得到之后咱根据传回来的医院编号,查我们的数据库,把数据库中存的签名得到,然后把存的签名M9加密,最终做一个比较。如果他们不一样,咱们抛异常一样的话,我们进行这样的操作,这样的话,咱们现在把这个我们就完成了。然后完成之后,下面咱们把这个效果我们来试一下,看现在加上之后效果能不能做到。
11:06
那我们来做个测试啊。首先这里边为了效果明显,我这么来测试啊,我用底bug方式启动,然后咱们在里边加上断点,通过断点调试方式,我们应该看到会更加明显。然后这里边为了更加清楚,我把这数据库中内容先给它去掉,为了咱们一会儿方便做咱们的操作,比如先给它删掉啊。现在里边应该没有数据了啊,然后咱们比如往里边添加做力测试。然后大家看现在d bug方式已经启动了,我在这位置加上这个断点,然后咱们来到这个系统中做测试,首先添加咱们直接传入咱们那段这个数据,这个数据。把数据直接拿过来,然后拿来之后我点保存。
12:01
大家看是不是过来了,首先第一个得到传过来那个签名,大家看这签名是这个纸,这个纸是进行MD股加密的,然后咱们得到医院编号1000,小号线零,然后得到查数据库,这个就是相关这个签名,然后各位看数据库中的签名是不是这个值,这是没有加密的,然后下一步MD5进行加密。你看这是加密之后的,把这两是不是做个比较,目前两个是一样的,所以咱们做个比较,然后最终加到咱的数据库中。这样的话,我们就完成了这么一个操作啊,这是我们实验的这么一个过程,然后到里边,比如咱们刷新数据是不是加进来了。所以这是关于签名的这么一个校验,各位把它做到这里边,就好比说我们做一个权限这么一个判断,让你对应的签名相同才能调接口,而不是随便一个都能调我们的接口。这个就记完了,然后这个选完之后呢,咱们操作中啊,还有最后一个小问题,给各位快速解决一下,什么小问题呢,大家看啊,就这里边啊,有这么一个值叫logo date。
13:14
Logo date什么意思啊,是不是你那个图标啊,而图标我这里边大家看是不是传了一长串的值,这值什么意思呢?我强调就是现在这部位分其实是一个图片值,这个图片呢,我们做了一个处理,什么处理看一下文档中。我们把图片做了一个BASE64的这么一个编码处理,在我数据库中直接存这个编码之后那种,咱们看到这一段就是编码之后数据,但是这个编码数据在你传输过程中会有一个问题,什么问题呢?我这里也写出来了,咱们看一下啊,它里边会做了一个这么一个操作,会把你里边的就是。这个加号变成空格,所以咱们需要把数据再给它转回来,也就是把这个空格再给它变回成加号,要不然你最后显示会有问题,那咱下面把这个咱给它快速来处理一下,也就是把我们这个加号给它在。
14:14
做一个相关的给他再转回来,因为它里边传输过程中会有这么一个问题。那我们现在快速来写一下啊,我在这个位置给各位处理一下。到这里。然后咱们怎么做呢?首先第一个我们先通过p map得到你传过来那个logo date这个数据,我们点上一个get,加上它那个名字,这个名字就叫做咱们这里边这个名字,我把它分过来啊,叫这个logo date。拿过来,然后它里边返回的,咱就直接给他想转成一个字符串,然后再做这个相关的操作。那我写一下啊,这来一个字符串缀,我教这个logo。
15:03
变成一个组串。这样的话就得到了传来那个图片那个内容,然后得到内容之后,下面单位里边那个空格转成这个加号,那我们就写个logo。Date等于logo date.replaceo把里面那个空格。给它变成这个加号。然后电完之后把它是不是要再放回到咱的map里面去,它里边这个K就是。Logo date,然后它的值是咱们转完之后的这个内容,这样的话,咱们现在把这个就完成了,然后最终你把它再加到数据库,你的图片就能显示,如果说你不做这个转换,你的图片最终是不能显示的,因为里边有这么一个空格和加号的问题。这样的话咱们就完成了,然后完成之后咱们来做一个简单测试,我把这服务重新启动一下。
16:05
咱们给他来测试一下啊。然后怎么测试呢?咱就测试这个图片。大家看我的文档中啊,因为咱们现在是用BASE64做了一个编码,所以说你要显示图片,你需要用个隐秘制标签src里面加路径。但是路径的前缀需要加上这个值,就是date冒号隐蔽值,PD变身64逗号,后面才是咱们内种,所以咱们一会儿加到数据库中,用这个咱们试一下,看我的图片能不能正常显示,如能显示,证明咱的操作就是正确的。那现在这个启动了啊,我首先把里面的值先给它删掉。给它去掉啊。然后去掉之后,我们再做这个操作。啊,这个删掉了啊,然后咱们再做一次添加,再重新加一次啊。
17:04
给它加到里面去,就是现在把这个数据。直接复制过来。然后到里边我们做保存。各位看是不加进去了,包括咱们看这个猫DB中有这数据,然后我现在把这个logo date的数据给它,直接就复制出来,就这段数据。的直接复制到我们这里面来,然后咱怎么测试呢?比如现在我在里边啊,咱们新建一个文件里边就写一个隐秘值S2C,然后加上你的这个内容,在这里边加上咱们刚才这段值。这个值我们看一下啊,就是里边有这么一些相关的值。然后包括在这个位置,咱们把这个内容给他直接拿过来,就这段。到这个逗号部分,注意不要写多,也不要写少。把这个拿过来,然后咱往后看啊,就是最后应该是里边。
18:04
有这么一段内容。所以这样的话呢,在里边我们加了一个标签,然后加上之后咱给它保存中,这个就是。HTML这么一个文件,那我来做个保存。呃,比如说我直接啊,先把这个文件,然后咱们到这里边桌面上给他改一下,改成这个HTML文件。给它改一下。这个改完了啊,然后改完之后我用浏览器把它打开。然后咱们打开一下啊。打开这个内容。呃,我们看一下啊,就这个值。现在我用浏览器打开。打开之后大家看这图片是不是就显出来了,是不是就能正常显示,证明咱们改的过程就正确了,所以这样的话呢,咱们现在通过这个修改就完成了上传医院接口这么一个计算功能,这个就做到了。
19:05
包括这个测试过程给各位也都点出来了,然后这个完成之后,后面咱再来实现医院这个查询功能,包括医院里边的科室,包括医院里面的排班的监管接口。
我来说两句