00:00
好,然后接下来呢,咱们来看一下啊,现在呢,我们就来实现这个save borrow in for啊,Out加answer啊,Create method好,然后接下来呢,Save borrowing for out加answer employment method好,然后接下来呢,在这里面我们呢,要对这个表单当中的内容进行保存,把它保存到什么位置呢?把这个表单当中的内容呢,保存到数据库的这个表当中,Borrow in for表当中,所以现在我们要做的事情呢,就是把borrow INF for的内容保存到borrow ino表中,诶这样看起来的话就简单的多了,是不是啊,所以就存嘛,存这个包for数据就好了啊,但是呢,我们还要前面的做这个健壮性的校验,什么校验呢?就是刚才咱们在笔记当中看到的。借款人提交借款,要判断借款人的账户的绑定状态与借款人的信息的审批状态,这个借款人信息审批其实就是借款人的借款额度信息的审批啊,所以这两个先判断一下,都通过了,咱们再真正的去保存,所以呢,首先呢,就是判断用户绑定状态,然后判断借款人。
01:23
额度。申请状态啊,然后注意,如果额度申请下来了,但是借款人呢,他所提交的这个借款额度大于他申请的额度,也就是说他们想方设法绕过了咱们前端的这个判断,咱们前端不是有一个判断吗,在这。嗯。这块对吧,咱们前端有一个判断,就是如果他的这个额度啊,这个超出了的话,咱前端直接就给他改回去,但是有一些恶意的用户,他会绕过这个判断,他一旦绕过这个判断来到我们后端了的话,那我们也不能够让他超出额度范围内的去借款,所以呢,我们依然要在后端进行进一步的判断,判断借款额度,借款人额度是否充足。
02:20
啊,然后咱们再存储。存储嗯b inform数据,所以是这样的啊好,那么前面我们说过这个用户的绑定状态和借款人的额度的申请状态呢,它实际上呢,在我们的user info表里面都能够找到,那么在user info表里面呢,首先这个band status就是用户的绑定状态,然后borrow us status就是借款人的额度的申请的状态,所以呢,我们来判断这两个状态啊就可以了。那么接下来呢,我们就来先判断一下用户绑定状态,那肯定是要根据user ID先把user in for取出来的,所以这块呢就是获取user in inform信息,那么我们呢,就是看看有没有user in inform啊。
03:21
有用它啊。User in for map.select by ID,然后呢,我们把user ID传进来,这样的话呢,我们就得到了一个user in for,接下来呢,我们判断它的状态,Aert.is true is true啥呢?就是我们用这两个进行比较啊,User in for.get band status。嗯,我看一下啊,User in for.get band status,然后点in the value就是呢,我们找到这个band status的这个绑定状态的这个值啊。
04:05
这个值呢,其实我们也要和那个半status看一下,和这边要同步。EMU。User办是吧,在这呢啊,零是未绑定,一是绑定成功,负一是绑定失败是吧?啊就是它,然后呢,接下来呢,我们就把这个band status和谁来比较呢。和这个优。Sir半刚才我们看到的那个。Um,然后里面的这个find OK,要get status啊,然后点in value啊,这两个值呢进行比较注意。再看一遍啊,就是userin four里面的get bad status啊,当前用户的这个绑定状态和谁比呢?和这个我们的。
05:06
U办的这个枚举当中的这个班的OK进行比较,那么他们两个如果相等的话,就说明了我这个当前用户呢,是绑定成功了,对吧?啊当前用户呢是绑定成功了,那么我们就认为呢,我们就断言啊,这个表达式呢是真啊,那如果我们的断言。和真正的结果不一致的话,那就说明出问题了,对不对?如果这个断言不为真的话,那么我们就抛错,抛什么错呀,就是用户目前为止还没有做数据绑定,所以呢,第二个参数呢,我们就写this Bo。点user not find a啊就是。
06:00
用户未绑定明白吧?啊,咱们再来理一遍啊,就是正常情况下呢,我们认为正确的结果是用户已绑定,怎么判断用户已绑定呢?就从user info里面拿到band status这个状态,看一看是不是和我们枚举当中的这个已绑定啊,这个状态是一致的,如果是一致,那我们断研就成立,如果不一致,那我们断言就不成立,如果断言不成立,我们就报告错误,所以这个呢是判断用户的绑定状态啊这样的一个观点,然后接下来呢,我们再来判断借款人额度的申请状态,跟他呢是差不多的啊,但是呢,这个地方呢,我们获取到的呢,就不是办status了,获取到的呢是这个borrowout status这个呢是我们借款的额度的申请状态,然后这面呢,我们就和我们的user啊不对啊,和我们的borrow。O。Borrow o啊。
07:04
Um哈。不对啊,我看一下啊,是和那个borrowers status吧。啊,我看一下啊。判断用户是否审批通过是borrow status今年。对吧,然后borrow out status,我们当时啊,这个判断用户是否审批通过borrow status啊就是这个borrow status是吧,是他对吧,啊borrow us status这面所以说呢,是borrow。然后呢,点如果是通过了的话,这里面是啥。叫做。OOK,对吧,认证成功啊,然后呢,点get status那点。
08:04
这个呃,Value对吧,这个呢,是我们的用户是否审批通过。包咱们看一下啊。稍等哈,我得确认一下咱们用户用户借款额度审批的时候,咱们用的是哪个枚举啊,嗯,在。用户借款额度审批应该是borrow service对吧?我我我确我确认一下啊。就是咱们,嗯前端吧,从前端看啊,前端的话呢,是。嗯。应该是包对吧,这个是我们的。借款额度审批那个对吧,借款人信息认证,然后这款呢,是通过他的各种学历啊,什么申请额度,然后接下来呢,最后我们找到那个保存方法。
09:12
保存功能呢?这呢保存功能呢,是save方法对吧,所以咱们找后面的这个save。这面的对吧,好,这save方法呢,它连的是我们的A靠borrow save对吧?啊所以呢,我们找一下API靠borrow save。所以呢,我们在这边找到controller API。啊,然后呢,是borrow a。这个是API,靠borrow,然后o save对吧,这个是保存借款人的信息的,然后接下来呢,这面我们进去到这个service方法当中啊,然后看一看呢,咱们保存借款人信息这块用的是borrow status对吧。
10:09
然后接下来呢,我们刚才获取的不是这个值吗?这个值用的是哪个,用的是borrow status,用的是这个枚举对吧?啊,也就是说用的是。Borrow a status用的是它用的是这个下面这个面句对不对,就是我们用的是这个啊,用的是这个,所以呢,我们这边判断也要用它,明白这意思吧,啊,所以不要搞错了,用的是这个borrow status,然后接下来呢,我们就在刚才的这个service当中,我找一下啊,我的那个service。嗯,我刚才的service是borrow for service对吧?所以呢,在这个地方呢,我们注意别写错了,是borrow status in um啊,然后呢,里面的这个OOK叫做认证成功啊,然后呢,接下来呢。
11:02
啊,点get status等一下哈。Follow a info。啊这呢啊点get statuss,然后点value,明白这意思吧,啊所以呢,这地方到底用哪个,一定要看你存的时候,你是用哪个枚举存的,所以呢,这边比较的时候,我们呢,就要和当时存的时候那个枚举保持一致啊用这个来存啊用这个来比明白哈,这样的话就不会产生这个这个嗯问题啊好,那所以这块呢,是判断借款的额度申请状态,然后那我们断言呢,这个两个是啊一致的,如果不一致的话呢,我们在这个地方呢,就应该嗯就是提示用户您的这个user。有一个叫做呃,No amount a叫做用户信息未审核啊,这用户信息未审核其实就是用户最开始申请额度的时候,他提交的这些个人信息呢,啊,管理员那边呢,还没有审核,或者是说。
12:09
嗯,审核没通过啊,都是这样的一个结果啊,总之就是他俩不一致对吧,嗯,不是OK,那就是啊,不让他通过啊,就直接就弹跳出去了,然后接下来呢,就是判断借款人的额度是充足,那么判断借款人的额度是否充足这一块呢,我们呢来获取一下当前的。A borrow amount。This get borrow amount,这是什么?这个是之前我们在这里面写过的一个方法啊,一个业务方法就是根据当前用户的ID,然后呢,获取到当前用户的借款额度,也就是说我们在前端这个地方展示的这个功能啊,用到了这个方法get,那么在这面呢,我们可以复用一下啊,然后呢,我们把这个user ID呢给它传进去,根据当前用户的ID呢,先获取到他的借款额度,然后。
13:12
这个借款额度呢,和本次这个用户提交的时候,在borrow ino里面传过来的这个借款借款额度进行比较,也就是说意思呢,就是啊,拿到他实际的借款额度和用户填写的这个借款额度在后台再次进行比较啊,做一个安全性的校验哈,如果校验通过了,我们再让他进行借款,就前端后端都要判断啊assert.is true。然后这块呢,我们就是写嗯,User info点就是get borrow。我看一下啊,嗯,不是user info啊,是那个amount info对吧,就是从这从这个地方拿到的啊borrow info,第2GET amount啊,这个是用户此次添入的这个额度,然后和谁比呢?和我们刚才拿到的这个额度比。
14:15
和这个额度比啊,他如果也就是说用户填写的这个额度,如果小于等于他获得的这个额度的话,我们就认为呢。这个断言就是正确的啊这个呃,这个逻辑呢就是成立的,那如果不满足我们当前的这个逻辑的话呢,我们认为呢,用户填写的这个度一定是超过了他所能够拥有的额度,那我们就报告错误,所以这块呢,就是Bo nu哈,然后呢nu啊然后呢,点什么呢。第2USER user amount有一个叫less,就是您的借款额度不足,明白哈,好,嗯,然后接下来呢,我。
15:09
这面呢?就结束掉,这样的话呢,咱们做三个判断啊,这些判断都成立了之后呢,咱们呢,就把数据呢,给它存储进去,存谁呢,就存这个borrow in for啊,把它存到数据库当中,所以呢,这面就是base map.insert borrow in for,因为我们说我们最终要做的呢,就是把这个数据存到borrow in for的数据库当中啊,当然了,这borrow in for的这个数据呢,还有一些啊,这个细节呢,需要我们再进一步的处理,因为这个包info里面,它所包含的数据呢,就是这个。就在前端我们看到的这个借款金额、期数,还款方式,资金用途以及年利率,我们看里面里面的需要什么。那么你会发现呢,它除了刚才我们说的这几个,比如说资金用途,还款方式,年化利率,期限金额之外呢,它还需要一个就是user ID,对吧,他得和userc ID做关联,这是哪个用户提交的借款申请啊,所以呢,要把userc ID给他也存进去,那这样的话呢,我们在这个位置要borrow in for,第2SITE user ID啊,然后呢,啊userc ID呢,给它传进去,另外呢,还有一些细节的问题呢,需要我们去思考一下,就是在这个位置啊,在在这个位置我们展示的呢,是一个整数,比如说是12,但是实际上呢,它的值呢,应该是12%,所以呢,我们存到数据库当中啊,要存的呢,就是这个利率。
16:51
啊,年利率啊,在borrow year rate这块,它呢是一个小数,所以呢它应该用0.12来表示,那这样的话呢,我们把百分之那个12变成0.12啊,所以呢,在这个地方呢,我们就要做一个运算,那么就是borrow in for.set。
17:15
嗯。Borrow rate叫年化利率啊,然后呢,我们怎么算呢,就是。把我们从borrow。啊,Info里面,也就是说从用户输入的这个里面啊,拿到的数据呢,你得除以100,所以呢,Get叫borrow in read啊,因为这个数据它什么类型的呢,它是。Big decimal类型的,所以你不能直接除,那你得用divide来除divide好,然后divide的除100 100也不能直接写,得用big个DEC new big个DEC啊,然后呢,100好,这样的话呢,我们就对它呢做了一个除100的操作,那么这个东西除完100之后呢,咱们再放到这个里面来,这样的话呢,就保证它这个数据的精确性啊,同时也满足它的这个数据类型,那这个条件要求,然后再接下来呢,因为这个是他刚刚提交,那刚刚提交的话呢,我们的这个borrow in for里面呢,还有个状态啊叫said status,那么我们呢,就borrow in for。
18:27
Status in,然后呢?不是,这个是啥呢?就是刚才我们最开始改的那个叫做审核中对吧?啊,它默认情况下,如果没有数据就是未审核,有数据了就是默认是审核中啊,审核通过就是二审核不通过,就是这个check费负一对吧?啊然后接下来呢,这面呢,我们就嗯。嗯,我看一下点get status啊,把这个里面的这个具体的枚举的那个值给它拿出来,然后复制到这个地方啊好,然后所以这块呢,是百分比转小数。
19:11
然后这款呢,是设置借款申借款申请的审核状态,对不对啊,这样的话呢,我们这个业务层的代码呢,就写好了啊。好,接下来呢,我们来看一下,嗯。重新启动一下这个靠吧。你测他的话呢,也得是。也得是那个登录之后再测啊,所以呢,咱们试着来测一下啊,它启动的,我先把这个视频停一下。
我来说两句