00:00
好,那所以呢,我们刚才发送完验证码之后呢,咱们就要做这个用户注册的功能了,那所以我们先来看一下这个用户注册表单上呢,一共有这样的几个内容,一个是呃,用户的类型是你是投资人还是借款人,第二个呢是手机号码,第三个呢是短信验证码,第四个呢是密码啊把这些都录入了之后呢,我们点击下一步就可以实现用户注册了,所以呢,要实现这个接口呢,我们呢,就必须在这个后端去定义我们的controller层的方法了,那么我们controller层的方法呢,它的主要的目的呢,就是搜集这个表单数据,所以一般情况下呢,针对这个要搜集的表单数据呢,我们也会给他们定义相应的这样的一个view对象啊,那这样的话呢,我们在我们的后台。找到我们的扣,然后呢,在这里面呢,我们去pogo啊里面呢,我们去定义一个VO。
01:01
Value object,它一般呢,就是对应一个啊,前端的一个呃信息展示,或者是一个表单展示等等,都可以用VO来对应,那么什么时候用这个VO呢?就是前端的这样的一个信息呢,它和我们后台的数据库表没有那个绝对的一一对应的关系的时候,那么我们呢,要搜集这个数据,那么针对这个数据呢,咱们就专门定义一个对象来把这些数据数据组织起来啊,那这种情况下呢啊,如果是针对表单的展示,或者是表单的呃,提交,或者是呃,这个数据内容的一个展现呈现等等等等啊,这种呢,和页面展示相关比较密切的,我们呢都用VO来表示,所以这面呢,我们定一个VO啊value object的值对象,然后在这面呢,我们定一个just VO。好,然后接下来呢,在这面我们把这个里面的每一个属性成员都给它写上,那这个部分的内容我就不一一去写了哈,因为这个里面很简单,我把它直接复制过来。
02:11
好,这里面呢有四个啊,一个是刚才我们看到的用户类型,手机号验证码,那另外呢,还有我们的密码,所以呢,我们这个在我们的这个control里面呢,就可以定我们的实体这个接口方法就我们打开controller啊,打开controller之后呢,在这里面呢,我们建一个API包。好,然后接下来大家注意,我们要把里面的user in for control了。User control了啊,我把它直接移植到这个API里面,就用它就行了。好,大家一定要把它移植进去,为什么你要是在里面再创建一个的话,那里面的这个user controller和外面的这个就重名了,重名的话在spring Mac当中它是不允许的,就两个名字一样的controller同时都存在于当前的这个项目空间下,它是不允许的,所以一定要把它移植进去啊,好,不要重这个名字,然后接下来呢,User in for controller这块呢,我们就。
03:17
写一些这个注解啊。好,这注解呢,我也就直接复制过来了,然后这个里面我们要关注的呢,就是它的UR地址,它是API路径下的号,嗯,然后下面的user in for啊这样的一个。地址啊,然后接下来呢,我们就在这里面呢,写咱们的这个会员注册的这么一个方法,所以public。好,然后这面呢,我们写一个叫做post注册嘛,Post po market,然后这面呢,我们就直接给他一个纸叫做杠,对吧?好然后呃,接下来呢,上面我们这面呢写API。
04:19
Operation,然后这面呢,就是会员注册了好吧,啊然后呢,那他接收的参数呢,就是刚才我们定义的那个对象啊,然后接下来呢,前面这块呢,我们写一个瑞放包啊,我们呃,那个request request。包对啊好,我们接收这个参数,那这块呢,就是我们对于这个方法的定义了啊,定完了之后呢,我们来看一下在这面。啊,我们主要呢,要做的就是我们的一个,第一先校验一下验证码是否正确,第二注册对吧?啊,然后第三就返回结果称点ok.message注册成功,好就这样的,那接下来呢,上面这块我们首先校验验证码是否正确,怎么去校验呢?我们先得从red当中获取到验证码,所以这面呢是resource,然后呢是private。
05:42
啊,然后是。Templeate red template好,然后接下来呢,下面这个位置我们注册这一块,我们就写red template.ops for value对吧,然后点get get什么呢?当时你存验证码的时候,你存的是什么,自己看一下。
06:09
存的是这个值啊。我们就把这个值再取出来,好,SRBSMS扣的,然后呢,再加上我们mobile mobile哪来的,可以从在这里面取一下,Get某拜。好,这样的话呢,我们就从我们的red当中啊,把这个验证码取出来,取出来之后呢,因为它是object。V啊是个V啊,所以呢,我们就要把这个泛型呢再转回来。转成这个。转成这个啊。明白啊,然后接下来呢,在这面呢,我们这样写后端一明白哈,好,有些同学呢,看到刚才这块返回的是个V,就知道这是个泛型,如果这是个泛型的话,有的同学就想,哎,我能不能用泛型啊,我说一下这个常见的问题啊。
07:17
就想我要去分泛型,不是挺高级的吗?然后一看这个ready template诶,他可以接受泛型啊是不是,然后有同学就写泛型了,见直对见是直,当时我们从的是啊。好,然后接下来呢,这个如果一旦是泛型red timelate里面拿出来的就是泛型,直接就付给他了,行不行呢,我告诉你不行。不行啊,为什么不行呢?是这样的,如果你用泛型去去取的话,说明你要取一个字符串出来,注意是字符串,什么叫字符串,就是这个是字符串,就是字符串里面存的是啥?存的是这个。
08:00
明白吧,但是现在我们这个字符串里面存的是啥?存的是这个它不一样,他俩这个叫Jason字符串。它是带双引号的,这个就是字符串,所以如果表示的话,那就是比如说我要定义一个变量来存它的话,那就是扣的等于,然后这个呢叫四顿扣的。这可以理解吧,啊,而应还得转移一下是吧。所以现在我们的这个字符串里面存的是他,明白吧,存的是他六个字节,600不是400,什么叫600,还带引号呢,明白哈,你如果要是这样写的话。你如果要是这样写的话,就是这样写的话,你拿出来的那个东西呢,就就是他,而不是他。明白吧,大家可以自己去试一下啊,你这样的话,你的这个内容就永远和你们不相等,就和这个我们的这个。
09:06
就是匹配不上啊好,所以呢,现在呢,我就来给它换回来,所以大家可以自己试一下啊,使用泛型的这种方式为什么不行,它俩不一样哈。好,这个是前面的同学啊,总会犯的一个问题,总会出现的一个问题啊,当然了,这个出现这种问题挺好的,就证明大家其实写代码的时候思考了,还知道这里面有个泛型啊,用的时候呢,不用去强制类型转换对不对,但是确实是啊,这样用呢,反而就是适得其反,画蛇添足,对吧?那么如果我们拿到这个扣子呢,我们就和。这个比较一下啊。assert.equals。好,然后呢,我们code code在哪来扣,我们从register register vo.get扣好,然后接下来呢,我们就用扣。
10:12
和这个code的GN进行比较啊,然后接下来呢,就是。Response in u code error code的这个叫什么叫做验证码错误对吧?嗯,好,就是说如果啊,你输入的这个验证码和red当中取出来的这个验证码没有匹配成功的话,那么我们就抛错啊,那我们断言呢,它是会匹配成功的,所以啊er.e啊会匹配成功,一旦没有匹配成功就报告这个错误,好,那这块呢,是注册这块前面的一个验证码的一个。校验。然后这个验证码校验完成之后呢,我们就可以进行注册了。
11:02
这个写这啊对吧,就可以进行注册了,那注册的话呢,我们写一个方法的user,得把这个user info service给它注入下来。我们写一个叫的一个方法,好,然后接下来呢,这面我们out加。好,然后接下来呢,我们来看一下这个的一个具体的实现。啊的,这个具体的呢,就是。嗯,实际上呢,就是。向数据库表当中插入两条记录啊。
12:04
我们打开我们的数据库表。我们向哪两张数据库表中插入记录呢?一个是优秀。这个呢是用户基本信息表啊,它这里面包含。这样的一些内容。比如说嗯嗯,他的这个用户类型,他是出借人还是借款人,还有手机号,密码,昵称,姓名,身份证号等等等等这样的一些信息啊,然后另外呢,还有一个就是用户账户表。账户表里面呢,包含用户的账户余额,冻结金额啊这样的一些内容,包含用户的ID,也就是说用户账户表和用户user info表,他俩实际上是一个一对一的关系,一个user info呢,对应一个用户账户,然后用户账户里面呢,定义了一个外键叫用户ID,对应到user in for里面的这个用户ID啊,所以这块呢是我们这两张表,所以呢,我们的这个业务呢,需要干嘛呢,需要。
13:18
嗯,插入用户信息,插入用户账户记录。好用户信息呢,它叫user in for表我看一下这表明user in一个叫user,看看对user in for。好,用户账户记录呢,它叫user account,明白吧?啊,所以这块呢,是我们这个方法呢,要要做的内容,然后接下来呢,整个的这个架子,其实我们就写写好了,只不过呢,就是再填充一下这个user in service就好了,然后呢,这面的controller这块呢,看看一会需不需要再优化一下,但是写到这为止,实际上呢,我建议大家就可以测一测了,测什么,就测这个验证码的校验是否正确啊,所以呢,咱们来运行一下。
14:37
好,那我们这边呢,就运行起来了,运行起来之后呢,我们在这边呢,再重新的去走一遍这个验证码获取的一个流程。好,验证码呢,已经发送成功了,然后呢,我们在。当中啊去,嗯,重新载入一下这个值完了,现在呢,他就是2329。
15:07
所以在这面呢,我们写3295,然后我们随便输一个密码,然后接下来呢,我们定位到network啊,顺便测一下他这个后台请求啊,然后点击这个下一步。好,点击下一步的时候呢,我们就需要去调用什么呀,去调用刚才我们后台写的这个接口了,所以呢,我们后台写的这个接口叫做。嗯,Register对吧,那么这个register你看我我点完没反应,那你就想那肯定是要给他注册事件了,那所以呢,在这个地方你就要找到这个register view,然后呢,找到它的那个啊。这呢是吧,Reject啊这个方法,然后呢,找到方法定义的地方啊。这块是吧,然后在这个地方干嘛,是不是去整合一下我们的前端,那跟前面一样啊,对,Dollar at sales,然后点到了注意post后面,后面我们写的是post,然后这块我们就写我们的这个地址。
16:15
嗯,地址的话呢,看一下后台。叫做API call user for register。API car user in four,然后点this.user ino,好,然后接下来呢,点then啊,然后呢,放。啊,然后这块呢,我们就给它改成this.step啊等于二还记得吧?啊,我们一旦注册完成之后呢,就把这个步骤呢改成二,改成二之后呢,这个就会显示出来,注册成功的页面就会显示出来,然后前面的注册表单呢,就会隐藏起来,是不是啊,所以这边呢,咱们就可以再测一下。
17:04
1376816630,然后点击获取,然后看一下这面。84278427,我先嗯,录入一个错误的吧,然后密码,然后点击下一步。好,然后点击完下一步之后呢,这边就展示验证码错误,就说明呢,我们这个验证码的校验呢,是成功的对不对啊,如果验证码正确的话呢,点击下一步,那他就直接来到了注册成功这一页啊,当然了,目前为止后台这个注册成功啊,在这个过程我们还没有做啊好,我们做的就是校验验证码这一,所以接下来呢啊,我们先休息一会。
我来说两句