00:00
那么首先呢,我们在这个SMS这个包下面呢,创建一个controller包。Con。O,好,那么这个controller未来呢,我们是要给这个前台的网站的用户使用的,那我们之前的后台管理系统的这个用户呢,我们都是啊把他的这个controller呢,放在了哪呢?放在了。Controller admin这个下面是不是啊,那我打算呢,未来前台网站的用户呢,我就放在另一个包下controller.api哈,然后所以呢,我在这个位置controller这个里面呢,我再建一个包叫API。好,然后接下来呢,在这个API里面,我们新建一个class,好在这个class,呃,这个这这个位置这块呢,我们新建一个类就叫API SMS controller,好,然后接下来呢,这个controller呢,我们先把必要的注解给他先填充上。
01:16
这样啊,我就不一个一个写了。好,这边呢,我们写的是API-SMS啊,所以这块呢,是我们的这个controller的一个啊,一个一个地址吧。嗯,然后接下来呢,这下面这个地方我们就写什么呢,写这个。方法public are sign,好,然后这边呢,我们写get。麦,然后这里面呢,我们写sign啊,把电话号码传进来mobile啊,就是啊,我们回头呢,会在前端传递一个电话号码过来啊,然后呢,当然了,在这个地方呢,我们就得接收这个电话号码,对mobile。
02:19
你先把这个称一下,称二点ok.message短信发送成功,好,然后在这个地方呢,咱们写参数,参数的话呢,就是词缀。Mobile是吧,然后呢,把相对应的注解补充一下,这面呢就是。API获取验证码,然后接下来呢,这边呢,我们就写API。Apiter手机号。
03:09
然后这块呢是块的出,然后这块呢是pass啊,这块呢,就是咱们整个的这个,呃,接口的一个定义了,接口定义好了之后呢,我们来啊进行一个。Service层代码的一个调用,那调用的过程当中呢,我们肯定是首先把这个service依赖呢,给它注入进来,叫做resource,然后是private。SMS service SMS service,然后接下来呢,在这个位置呢,我们调用SMS service.s好,然后呢,在这里面呢,我们,嗯。就传我们刚才那个mobile这个参数对吧?好,这是第一个参数,第二个参数呢,是template code啊,就是模板SMS properties.temp code,第三个参数呢,是我们的模板里面需要的参数集合,那么这个参数集合呢,是一个map集合,而这个模板里面呢,我们是昨天看到这个模板里面呢,应该有一个扣的参数,对吧?所以我们呢,就要创建一个这样的一个map集合啊扣的,然后这是键123456,那当然是自动生成的,这是一个值,好那我们来看一下这块怎么写啊,在上面这个位置咱们呢去。
04:39
你一个还是卖。然后呢,哈。我就写object,然后接下来呢,这块就是一个map map.put put啥呢?Put code啊,然后code这块呢,比如说咱们写123456啊,这样的话呢,我们就写好了这样的一个参数了,当然了,这个123456肯定是得动态生成哈,一会再说啊,我先把这个map呢放在这。
05:11
好,这样的话呢,我们的这个短信发送呢,就就写好了,短信发送写好了之后呢,首先我们要解决的一个问题呢,就是这个map的这个问题,就map的这个呃,值的这个问题,我们呢,去生成一个啊验证码,生成验证码呢,就随机数就可以了,这个地方呢,有一些工具类哈,大家可以去用一下。在Java代码这里面个优求,然后优求里面呢,有一个。嗯,鼓励common,然后这里面呢,有一个叫random u啊,这个是生成随习数,还有个叫rejects value的U,这两个呢,一个是生成学习数,一个是校验参数,合不合法的,我们把这两个先复制一下。
06:03
复制一下,复制到哪去呢?复制到我们的。刚才这个里面。啊,在这个common里面呢,我们去建一个优球包。好,然后在这个优图包里面呢,咱们把刚才复制的这两个呢,给它复制过来,来移植过来哈,复制在优这里面。咱们粘贴。好,就是这样两个啊,第一个呢,就是生成随机数的,它可以生成一个四位的随机数,类似于这样的,它可以生成为六一个六位的随机数,类似于这样的,那所以我们就可以用一下。所以在这个地方呢,我们直接用那个工具来生成我们的这个随机数啊,我们看一下怎么去做,嗯,在。这个位置我们直接用random u求四点,比如说生成四位随机数吧,就叫做get for啊。
07:08
这样的话呢,我们就生成了一个。四位的随机数哈,然后呢啊,还有一个内容呢,是需要我们去关注的,就是在我们手机号传递过来的时候呢,我们要对这个手机号最好进行一个校验,因为万一手机号它不合法的时候,我们就没有必要去调用这个发送短信对不对,你发的时候才发现它不合法,就是难免有些发现的太晚了啊,因为你已经去发起了一个远程请求啊,然后呢,这个毕竟这个所有的远程请求他都是要啊,有一定的时间延迟,而且呢,它也是占用一些性能的,对吧?所以呢,我们就可以先校验,如果手机号直接不合法了,那么就不发了,所以呢,校验怎么校验呢?我们直接用之前我们的啊assert啊。不知道还记不记得assert.not empty,首先呢,我们先来判断一下我们的这个啊,手机号呢,它是非空的啊,所以not empty,然后mobile mobile传进去啊,如果是空的话,我们就弹出一个错误信息叫response。
08:20
点mobile。Not啊,我看一下啊mobile那。Mobile,那这呢手机号码不能为空啊,好,所以这款呢是校验手机号码不能为空,好然后接下来呢,我们再校验一下手机号码的合法性。Assert哈表is true好,然后呢,Assert is true,判断什么呢?刚才我们还引了一个工具类叫reject valid you,这个里面呢,有一个方法呢,就是check手机号的,这呢验证手机号码是否为合法的手机号码呢,叫check cell phone,我们可以用它一下,然后呢把cell phone传进去,它就可以给你校验这是不是一个正确的手机号。
09:27
所以呢,Is true呢,在这个地方呢,我们就写reject。Validate us.check cell phone,然后呢,把这个mobile呢,给它传递进去啊,传递进去之后呢,Response en.mobile error。好,这块呢,是校验我们的手机号码是否合法。所以呢,这块呢,是两个呃,关于参数的一个校验啊,然后接下来呢,就是呃,我们生成验证码的一个过程,然后再接下来呢,就是我们调用刚才我们的远程短信的一个过程,然后再最后呢,就是我们把这个短信发送出去的一个过程哈,然后我们再来看一看我们之前的这个。
10:20
图。啊,我们在这面呢,点发送验证码,它生成验证码,发送验证码的同时还要存储这个验证码,所以接下来呢,我们还要把这验证码呢存到当中,所以最后一个步骤将验证码存入。嗯,然后接下来呢,在这款呢,我们要引入这个red template是SMS。嗯,应该是can。
11:05
好,这面呢,我们写red template.ops for value,然后点site,然后side,这个地方呢,我们可以写SRD冒号,SMS冒号code是吧?这个是层次关系啊,冒号加上mobile,就是我要给这个手机号发短信,发什么呢?发的是,嗯,刚才我们看到的生成的验证码,那这个验证码我们得把它生成出来。扣的好。这是我们要发送的验证码,然后这个呢是过期时间,然后呢我们写time。Unit,好,整个的这个验证码呢,我们就呃发送出去了,并且呢,保存到我们的red数据库当中了啊好,那接下来呢,我们来看一看,现在我们要看什么呢?就是我们要测的第一件事情呢,就是首先验证码是不是生成并发送出去了,第二验证码是不是存储到red当中了,第三我们的业务层当中这块。
12:18
返回了一个什么样的结果啊,这块返回了一个什么样的结果,好,也就是response get data这块,我呢,为了让它更明确,我在这个地方呢,输入一下。好,然后咱们呢,重新启动一下这个服务。
我来说两句