00:00
那接下来呢,我们来看一看啊,我们上午呢,最后写的这个业务方法啊,我们上午最后写的这个业务方法呢,是在啊,Themin borrow in for controller这个审批这个地方,对吧?我们找到这个业务方法,然后接下来呢,这块我们说呢,我们下午呢要创建新标的,好,我们下午要创建的新标的它的这个数据,刚才我们分析了这个标的表,它的数据呢,就来源于这个borrow in for表,也就是说这个标的表里面一部分数据来源于这个borrow info表,所以呢,既然你要创建新标的,那么肯定呢,你要把borrow info这里面相关的内容呢,先传到他的这个业务方法当中,好从这个里面呢,把相关的数据呢,先给它复制上,对吧,所以说呢,我们在这面啊,先把这个,嗯,标的的service吧,因为我们创建标的的过程要写在标的service里面先注入进来。所以在这面呢,我们先注入一个标的service resource,然后private service service,好,然后接下来呢,下面这个位置。
01:11
我们呢,就创建这个新标的啊,创建新标的好,然后land service点我们写一会一个方法,一会要create啊land l啊,然后接下来呢,这个刚才说到了啊,这个数据呢,要可以从这个啊,就是这个里面来。然后另外呢,还可以从包肉那个in里面来,所以呢,我们把这个先把这个包ino给它传过去。Borrow info。这啊从borrow ino里面来,然后还有一部分呢,是从我们那个审批表单里面来,对吧,所以说把这两个先都给它传过去,好那面好取值,那这样的话呢,这个就是我们创建标的的一个啊业务方法了,然后呢,嗯。Borrow in for,看下啊,包音。
02:01
By ID,对,可以啊,然后接下来呢,我们就直接呢,Out加create method。好,然后接下来呢,我们把它生成一下out加method。好啊,然后在接下来呢,我们在这个里面呢,就可以创建我们的新标的了啊,所以说呢,第一个步骤那就new呗。好,然后呢,后面这个整个的一个步骤就是设置land啊,把这个land一个个全设置上去,好,最后base map.insert land,所以这个其实就是我们最终的这个创建标的的一个目标嘛,对吧,创建一个land的对象,然后把这里面相关的数据通过复制也好,通过计算也好,逐一的填充到land的每一个字段当中,最后land组装成功之后,我们把land插入到数据库当中啊,所以大家先把这个架子写出来,基本上就50%完成了,因为万事开头难,对吧,你把这个头开好了,后面就是填充烂的里面的每一个字段了啊好,然后呢,我们就来填充这个land里面的每一个字段吧,所以呢,第一个步骤我们先来看一下这个user ID啊,还有这个borrow in for ID,还有land number啊,这三个你先依次的给它填充一下,那么就是land点啊set user ID,那user ID哪来的,我们说borrowing里面有。
03:30
啊,从borrow for里面来,然后land.set borrow in for ID,那肯定也是从borrow in for里面来了,所以borrow in for点啊get ID好,然后第三个land点啊site land number好,这land number呢,就是从刚才咱们的那个工具类里面来land number you,然后点get land number对吧?啊然后第四个呢,我们来看一下。
04:00
前三个都写完了哈,第四个呢,就是title among period land in rate和service rate啊这几个呢,我们啊看一下怎么去获取啊,我们先来看title title的话呢,是我们在做这个标的审核的时候,然后呢,就是输入的那个白领带001那个哈,然后呢,所以呢可以从审批对象里面来,那这样的话呢,就是land.set title啊,然后接下来呢,Borrow in forro vo.get title,对吧,从审批对象里来,然后接下来呢,就是land.set amount啊,然后接下来呢,就是borrow in for。啊点get among这个呢,也是从borrow for里面来,就是从借款人的那个,呃,借款申请里面来啊然后所以呢,就是他申请了多少钱,借款给他申请10万块钱,那么就是包for.get吗?然后接下来呢,再有就是land.site。
05:00
Period那个时长对吧,借款的时长,借款时长呢,我们啊可以从这个啊borrow in for里面来,我看一下啊,Borrow in for pro里面有没有period。Start,没有哈,那就是从这个包里面来。点get period对吧?啊,从这个地方来,然后land.set还有一个呢,刚才我们说到的呢,就是这个。嗯,看一下啊,这个年年化利率和平台服务费率啊,然后呢,年化利率就是year year land year rate哈,然后呢,Borrow in for里面呢,虽然也有这个。看一下有吗?虽然也有这个呃,Year rate,但是不建议从包for里面来,为什么?因为我们刚才在做这个上午的时候,在做审批表单的时候,我们说到管理员在进行这个呃,标的审批,借款申请审批的时候,那么他可以去修改这个费率,对吧?可以和这个借款人进行协商,然后对这个费率呢进行调整,所以呢,最后我们的这个费率呢,要以这个审批的结果为准,所以呢,我们这个费率呢,应该从审批对象里面来啊,所以呢,这边呢,就是点that啊,Land year it啊,这个是我们的费率啊,然后再接下来呢,就是我们的平台服务费land.set嗯,Service rate,好,然后呢,平台服务费呢,也是审批的时候呢,我们会最终确定一个平台服务费,所以呢,我们的平台服务费呢,从审批的这个表单当中来。
06:40
好,而且呢,这个费率也好,平台服务费也好啊,我们最后计算的时候呢,一定要以它实际的值为准,而在这个过程当中,我们来看一下我们的这个land表哈,Land表里面我们这个啊land rate和service rate呢,它都是小数的啊,它都是小数的,然后接下来呢,我们啊之前在这个。
07:06
我们之前在这个包pro VO里面去存的这个数据,这个费率呢,我们其实都是,嗯,我们都是整数的,就是大家还记得吧,我们填的是12,然后后面有个百分号对吧?然后那个平台服务费率我们填的是五啊,后面有个百分号说明什么?说明它实际的值不是12和五,它实际上是0.12和0.05,我们得把那个百分比算进去啊,那这样的话呢,我们这个啊,标的表里面实际上存的这两个数呢,要求是啊,真正的那个费率不是12和五,而是12%和和5%,所以应该是0.12和0.5,所以呢,这个不要搞错了哈,那这样的话呢,我们要把这个给它进行一个这个计算啊好,那所以这个位置呢,我们就得divide一下,让他。嗯嗯,不是这这啊。
08:03
这款哈外的一下,然后外的多少,外的100,所以是new这个单,然后100啊除以100,然后这面也是一样,你看外一下外的100啊好,然后接下来呢。这个我们就写好了,就you read啊,Service read啊,然后我们再来看下面一个字段啊,下面一个字段呢,就return method return method呢就是还款方式啊,这个地方呢,我们需要的是一个数值啊,就并不是那个啊,就是文本内容,所以我们把那个Y6的啊,数据字典当中的那个Y6值啊存进来就行,那存Y6的话呢,我们就是site land.site return method啊,然后这个值呢,咱们直接从borrow啊,Info里面去get这个method啊就可以了啊,然后再接下来呢,就是land.set。还在什么呢?赛这个amount就最低投资金额,我们说我们这个最低投资金额呢,我们直接应编码100就可以了啊,还有这个已投金额,如果是新标的的话,我们这个已投金额呢,就应该初始为零啊,因为你刚创建的标的是没有人投资的,然后再有呢,就是这个投资人数,如果是新标的的话,我们也初始化为零就可以了。好,然后接下来呢,我们来看一下,那这个呢是site lowest amount啊,它需要一个big decim类型的值,所以呢,我们就new big个DECIMMA100啊,所以这个呢,是啊,这个最低的投资金额,然后接下来呢,就是land.site in west amount,这个呢就是啊已投金额,已投金额我们说它是零哈,默认情况下,那这个单零啊,那这个都是,呃这个啊,这个就那个叫什么钱是吧,钱的话有小数点,所以我们都用big DEC,然后接下来呢,这个land。
10:00
点site,嗯,Invest amount,这个呢是invest number啊invest number这个呢,这个是最低投资金融,给标一下吧,最低投资金额,然后这个呢是已投金额啊,所以这两个都是金额,金额的话呢,我们就用big了,然后这个呢是已投人数啊,人数就不是金额,就没有必要用decim了,对吧?啊然后呢,这块呢,就是已投人数直接用整数就行了,所以投人数呢,这块是零啊是零好,那这块呢就是到这。到哪了,到这了是吧,然后接下来呢,就publish date啊,Publish date呢,因为这个标的呢,只要我们这边审批成功,那个标的就发布了,所以呢,我们在这面呢,就可以写land,第2SITE publish date啊,然后接下来呢,Land啊。嗯,就是那个local local data time.now哈,这块呢,就是啊这个标的的发布时间好,那这块呃,就到这儿为止。
11:11
到这为止我们就写好了,写好了之后呢,我们再来看一下啊,这个啊,起息日啊,起息日啊,起息日就是这个开开始日期start date和这个呃,Land and date,这开始日期和结束日期是怎么算的,开始日期从这个起息日开始算,起息日呢,就是刚才咱们在审核的时候。我看看这能看见吗,现在。还是看不见哈,那先不看它了,起息日呢,我们直接看咱们那个审批表单吧,就是刚才在类似这个里面我们写的这个审批表单。这个审批表单这面是不是有一个叫起息日啊啊,所以这块呢,就是我们的相当于开始日期了啊,然后呢,根据我们的这个标的的这个投资的期限,比如说三个月,那么再加上三个月就相当于结束日期了,所以说呢,这个start date和end date啊,就是刚才我们说的起息日和起息日加上投资时限啊,就结束日期,所以这两个是这么计算的,然后呢,接下来呢,我们来写一下,那么在这个地方呢,我们先来。
12:23
去把咱们的这个啊标的的嗯起息日给它拿到,那这个是从嗯,Info里面拿到的,然后get应该是这个land start date是吧,把它拿到啊拿到之后呢,我们呢,会得到一个。就是这样的一个字符串类型的啊这么一个呃,时间日期的值,然后呢,我们需要把它设置到哪呢?需要把它设置到set哈,Set到这个嗯,Service land start date里面啊需要设置到这个里面,而这个函数呢,它要的是什么呢?它要的是一个啊local data类型的这么一个值,所以呢,我们就需要把这个上面的这个string类型的land start data呢,先转换成啊刚才他需要的这个local date类型的这么一个值啊需要转换成它,那所以怎么去转呢?这样去转我们的这个local date,嗯,有一个方法呢,叫做pass方法,它可以根据啊一个具体的一个日期格式啊,将我们当前的这个字符串类型呢,去转换成local date类型,那么字符串呢,就是它了,好,然后日期格式呢,日期格式和这个local date,还有local data time所匹配的那个。
13:42
啊,日期格式化的类呢,叫date time啊,Form啊,然后呢,我们写一下of pattern,好,这块呢,我们写一下格式,YYYY-MM-DD啊所以其实这个啊,日期的格式哪来的呢?就是刚才我们在前端。
14:01
我们在前端这块定义的,我们在前端呢,去录入体系日的时候呢,它是按照这个YYYYMM-DD录入的,然后录入完了之后呢,你在这面一点击这个确定按钮,它这个数据不就提交上去了嘛,提交到哪了,是不是提交到后台了?好,后台的这个land start date它就是这个格式的啊,所以呢,那我们在后台做数据转换的时候,我们肯定是也是这个格式的,我们把这个格式的字符串转换成local date啊,所以呢,这面呢,我们就去定义一个格式。格式对象,然后接下来呢,用这个格式对象呢,我们去转换这个字符串,好把它呢,就转换成咱们需要的这样的一个啊local date的这么一个日期格式,好啊,转换完了之后呢,我们会得到一个local date的这么一个值,我们管它叫land start date就可以了,好,然后呢,我们把这个land start date呢,诶好像好像跟他冲突了哈,跟它名字一样了,那我们这个呢,就叫。
15:04
嗯,我直接把它粘过来吧,行吧,这样写啊,然后呢,我们就把这个land start date呢就放在这儿,这样的话呢,我们的这个起息日期就计算完了,起息日期啊好,然后呢,起息日期计算完了之后呢,我们来看一下啊,咱们那个结束日期land,第二,第2SITE结束日期呢,应该是land set land and date啊,然后呢,它也需要这么一个local date类型的这么一个值,那么这个呢,实际上就是起息日再加上多少时间啊,再加上这个period加上这么长时间,对不对啊,我们这边是以月份计算的,一个月两个月啊,三个月啊,六个月,什么12个月等等啊这样的这样的一个月份,所以呢,咱们做一个计算,怎么去做呢?就是在刚才的这个起息日当的基础上,再加上这么多月就可以了,那么这个呢,我们用一个。
16:05
方法就是land start date点叫plus month啊这个啊local date呢,有一个方法叫做plus month plus six plus weeks plus years就非常好用,我们直接就plus month就行了啊,然后呢,Plus month的话,Plus谁呢?就plus刚才我们看到的,嗯,这个日期就是那个borrow in for that period,就plus它就可以了,是吧,把它加一下。好,然后这面加完了之后呢,就是我们的land and date了啊,这个呢,就是结束日期,结束日期啊,然后接下来呢,我们有了起,有了这个结束日期这个对象之后,我们就把它设置给烂的,这样的话呢,这个起息日期和结束日期呢,我们就设置好了啊,设置好了之后呢,我们再来看啊下面一个呢,就是描述。
17:07
描述的话呢,我们是来源于点set.set来源于我们的land in for来源于我们的啊前面的那个borrow in for approval,所以呢,我们来看一下,在我们的这个审批表单当中,就是前面我们dilo里面,对吧,这个审批表单当中,这不是有一个标的描述嘛,啊然后它呢,叫land in for,所以呢,就来源于这个字段,那我们把这个字段呢,给它设置过来。啊,这面呢,我们就写啊,那个叫什么啊,Borrow in for approval,然后呢,点get land in for,好这块呢是嗯,标的描述啊,这个是标的描述这个字段,然后再往后一个一个看哈,就完事了啊到这了叫做平台预期收益,平台预期收益我们怎么算呢?我们按照这个平台的服务费率啊平台的这个服务费率呢,它是年化服务费率,我们得按照这个月份来算,比如说平台的服务费率,假设说啊是那个。
18:20
啊呃,是三啊,3%啊,假设说哎,我算一下怎么算好算啊,嗯,比如说平台的服务费率是12%吧,假设说平台的服务费率是12%,那么如果是12%的话,它是年化,年化的话,那么我们给它转换成一个月,它的这个费率,那不就是1%嘛,啊就是一年12个月一共是12%的服务费率,那么如果是一个月的话,那么它的服务费率呢,就是这个除以12,那么就是1%,那如果我借款借三个月的话,那么呢,它的这个服务费率呢,就是再乘以三啊按把这个年份的这个费率呢,转换成月份的费率,然后啊,根据实际的月份来计算就行了,所以呢,那最终如果年化的费率是12,那么三个月的费率就是三,明白这个意思吧,那如果平台的服务费率是五的话,5%的话,那么年化对吧,那么三个月就是多少呀,就是5%除以12再乘以三,明白吧?啊,所以说我们把年化转化成月化呢,就是先。
19:20
除以12再乘以这个一共借了多少个月就可以了,那这样的话呢,我们在这个位置。就是根据年化啊,算平台的预期收益,平台预期收益对吧?啊然后呢,嗯,所以呢,就是这个。就是最终的费率吧。嗯,就是啊,年化年哈年化,然后除以12对吧,然后再乘以期数啊,所以这个是我们平台的预期收益的一个计算公式啊,就是啊,哪个年化呀,别写错了,是service。
20:12
明白吧,啊,Service rate的这个年化,然后呢,除以啊这个12再乘以奇数,那所以呢,这样的话我们就这样写啊,land.get service right啊,然后呢,点divide。以外的呢,我们这边呢啊new big个DEC12对吧,除以12个月,然后呢,它这个有个第二个参数啊,第二个参数呢,就是你的这个精度啊,精度的话,一般情况下我们最终是保留两位小数的,但是你计算的过程当中,如果你也保留两位小数的话呢,那由于在计算的过程当中,它有除法,所以呢,很有可能就会出现这个最终的精度丢失的这个问题,所以我们一般情况下,如果最终你是保留两位小数的话,那么计算的过程当中,我们尽量让它的这个小数的位数呢,保留八位,明白吧,最大的限度上呢去啊,让它最后就是你在算完了之后,最后再保留两位小数的时候,精度丢失的不是很多,所以说我们计算的过程一定要多保留几位数据啊,多保留小数点后面的几位数据,然后呢,算完了之后再把它转换成两位小数的这种,那这样的话呢,还是比较安全的好,然后接下来呢。
21:27
我们这个八位的话,最后呢,我们算完这个啊,这个预期收益,算完费率之后呢,一般情况下就这个decim.rundown就是最终我们的这个精度怎么去处理,那有四舍五入对吧?有向上调整,有向下调整,一般情况下我们就就向向下调整,相当于把这个费率给用户抹了一个零,其实也抹不了多少啊,好就顶多一分钱那样的是吧?啊,因为它是精度是小不点后面八位计算的,所以你最后在run down的话,其实也差也不差了啊,但是一般都会向下抹零的,都会抹零的,不会说算出来比那个实际的多,那那样的话你用户感体验就不好,对吧,比如说你是七块五,最后你说我四舍五入八块吧,那不行,你要说七块五,最后给你抹个零七块吧,啊,那这样的话用户感觉就挺好的,但是其实我们这个就不会有那么大的一个抹零的程度,对吧,因为我们毕竟小数点后面是八位啊,然后再往里导,所以呢这块呢,是我们的这样的一。
22:27
一个平台啊,预期年化啊的这么一个计算方式啊,就这里面有两点,第一呢,就是小数点后面八位,就是计算的时候精度给他设的这个,呃,精确一点,第二个呢,就是算完了之后呢,让他抹零好,然后这块呢,我们会得到一个。啊,就是我们管它叫月年华吧month,嗯,看一下啊。Monthre mountain,嗯,是吧,得到这么一个值啊,然后接下来呢,我们就。
23:03
再把这个,其实这一步我们算完了之后,就是年化除以12刚算完对吧,那就这一大堆啊,是年化除以12刚算完,然后我们再乘以奇数,所以month乘以奇数。呃,Month rate乘以七数呢就是month,然后呢,点。嗯,Multiply我看一下啊,Mon是big对吧,DR。Multiply啊,然后乘以七数new big DEC啊,然后七数呢,就是land.get period对吧,这个是奇数啊,好,然后接下来呢。这是这样的一个值哈,就是嗯。相当于这个念月年化了,然后用这个月年化,我们在干嘛呢,再乘以那个。
24:03
啊,就是总的那个金额,总的金额呢,就是这个amount。总金额这呢,投资就是标的金额好,然后我们用这个标的金额再乘以这个最终的这个平台预期收益率哈。我们呢,其实就是干嘛了,就是就是平台预期收益率了,用这个标的金额再乘以这个平台预期收益率,那么我们就是什么啊,就是平台的预期收益了,对吧?就是平台的预期收益了,所以呢,如果是平台预期收益,那就是标的金额,然后呢,再乘以后面的这个,然后呢,最终呢,就是平台预期收益对吧?啊所以呢,我们这边这样写吧,就是我直接。用点。
25:03
嗯,Get amount啊,这是标的金额,然后点multiply对吧?啊,然后接下来呢,就是。后面的这个内容了,明白吧,啊好,我们把它乘起来,那最终呢,这个呢,就是我们的平台的预期收益率,所以呢,这个是big big带啊然后呢,它应该等于egg,嗯,Back。Expect啊好,然后接下来呢,我们把它放到这个land里面来,land.set X back month,然后呢,是X back month,好,那这样的话呢,我们这个平台的预期收益到这为止,咱们就计算完了啊,然后接下来呢,还有。到哪儿了,到这个。
26:01
Expect amount了,然后我们再来看一下这个实际收益,实际收益呢,那目前为止它这个标的结束了,才能计算这个实际收益,所以呢,我们实际收益呢,就先让它等于零啊,就是land.site啊,叫做real amount啊,然后呢,实际收益呢,就是六这个零啊好,然后再接下来呢,就是。还有就是再往后。实际收益啊status status呢就是状态啊,我们把这个状态写一下land.set status啊,这个状态呢,来源于我们最开始弄的那个land status枚举啊,然后我们去啊,这里面有一个叫做募资中第一个invest run募资中啊,然后呢,就是这标的刚创建出来的时候呢,首先它要最后一段时间的募资啊,我们把这个嗯,Status呢给它设置上status status。
27:09
好,所以这块呢是状态。标的状态对吧,然后再有就是烂的第二赛看看还有什么。啊叫做check time啊,就是审核时间啊,审核时间的话呢,啊,我们这面呢,就是节省了一个审核的步骤啊,就正常情况下呢,我们把这个标题创建完了之后呢,可能还要给管理员再审核一遍,那其实这个整个审核的过程呢,跟前面我们所说的啊,这个什么借款申请的审核呀,借款额度的审核呀,都是很类似的,所以呢,这块的审核我们就不再重重重复反复的去做了,我们呢,直接就让他标的创建出来之后呢,就审核通过啊,因为其实我们这个管理员都是一个人哈,就是对于我们当前的这个业务来说,管理员都是一个人,那他在这个做这个标的的啊,借款申请的审核的时候呢,他就只要这面啊,他觉得没有问题了,他直接点击确定了呢,我们借款申请审核通过的同时呢,标的正式的标的也就产生了,所以呢,在这个过程当中呢,我们就啊直接就默认只要标的产生,这个审核呢就通过。
28:22
啊,所以在咱们这个项目当中呢,咱们就直接审核就行了,所以呢叫site。嗯,Check time啊,那就当前时间了,对不对,Local啊date time,但是啊,就是也是因为时间的关系啊,咱们就不把这个方方面面都做出来了,要不然就做半年就做不完这个项目哈,所以说呢,像这种东西咱们就先省略掉啊,就直接审核通过,然后呢,这块呢,就是审核时间好,然后接下来呢,就是land.site这面呢,还有一个呃,叫审核人。Checkin ID。
29:02
Checkmi ID啊,审核人这块呢,那就需要我们后台,我们这个后台管理系统呢,你得做一个就是这个登录的功能,做登录功能之后呢,我们后端还得把这个登录功能呢,把这个当前的用户的对象,把当前用户的ID都取出来,那目前为止我们这个系统的登录功能呢,实际上是呃前端通过这个呃Mo平台,它模拟出来的登录功能,并没有连我们的后端,它只是前端的一个功能,然我们后端呢,也没有去真正的去创建这个后台管理员的用户表,对吧?所以说其实我们这个地方是呃审核人这块呢,咱们也就先忽略掉了,咱们就默认情况下他的ID是一吧,行吗?啊,所以这块我们也不去详细的做了,因为跟我们的金融业务关系不大,好以就应编码一下这块呢,就是审核人好,然后接下来呢,啊,看一下还有没有了。啊,审核人还有放款人放款时间,那这个我们还没有到这一步呢啊,到放款的时候呢,我们才有放款时间和放款人,包括后面的创建时间,更新时间都自动生成了逻辑删除,也不用我们去在代码当中去主动的处理,所以到这为止呢,我们的land这个对象呢,就终于嗯,创建完成了哈,然后到这儿为止呢,我们就可以存入数据库了,好,那这块整个就是我们的这个标的。
30:25
啊,这个业务啊的一个生成的一个过程。好,那然后接下来呢,我们这边的这个生成标的的这个。呃,业务过程呢,就写完了啊,我先把这个东西重启一下。
我来说两句