00:01
啊,对于这个业务层呢,我们刚才分析了啊,再来看一看。首先咱们需要啊,这个传一个这个map到倒层啊,到倒层去验证咱们这个账号密码是否正确,给我返回一个user对象对吧?好,如果user对象为空的话,咱们是不是就应该开始抛异常了,说明账号密码不正确,如果user对象不为空,说明什么呢?哎,说明账号密码,至少说明账号密码是正确的对不对啊,但是登录是不一定是成功的,因为还得验以下几项,那以下几项的这个验证哪一项失败了,咱们一定要及时的为这个上一层提供异常以及相应的异常信息,是这样吗?好,他们这个异常信息肯定都是不同的啊好,首先我们来一个。
01:02
Map啊。把咱们这个账号密码啊给他存进去。Log in act。好,以及咱们这个log e p WD。啊,我说剪了。哎,怎么还回复不过去啊,行了,我再写一个PWD是吧。好,接下来啊,咱们来调倒成user DAO,咱们调一个老给把这个map给它传递进去,对吧,好给我们要反一个。User对象对吧,好来先把这个。
02:03
到层先给他处理了啊。Creative。好,我们开始写这个思口语句,Select,咱们就来一个叫老音行吧,好,Parameter type就不写了,它应该是一个map,对吧?Result type,咱们是不是应该反一个user,别名已经起好的,直接写类名就行了,好。来。星,咱们是不是得是星啊,要反的是对象对吧?T BL user where login act等于这里边能乱写不?不能,因为咱们传的是一个map,它必须是map中的key对吧,好。Act,好,And log in p WD等于咱们再login。
03:01
啊,PWD对吧。行,这个写完了之后啊,咱们来做一个判断,如果U等于空。好,怎么办?咱们是不是得往上抛异常,是这样吗?如果你不使用抛异常的方式,其实也可以,比如说我抛个一来代替账号密码错误,我抛个二代表这个账号已失效,是不是也可以啊,然后上一层根据我们接收的这个一和二进行判断,是不是都可以啊,只不过呢,这种自定异常的这种方式啊,这个啊,更加的这个方便,更加的简洁,OK吧,而且呢,对于这个异常信息的这个处理啊,在控制台上我们是能够真实有效看到的,OK吧,好,我们现在来一个THRO。Throw还是throw扭出来一个咱们的log in exception,大家注意看啊,Java X里边也给我们提供一个log in,但是我们要用我们刚才自己创建的那个第一个对吧?好,里边这个消息应该是什么呢?这个账号。
04:17
密码。账号密码错误行吧,好。行,咱们这个异常啊,肯定还得给他这个抛一下啊,好throw咱们在方法上是不得throws对不对,好同样在我们的这个接口上是不是同样Rose没错吧,好都得统一啊。最后咱们把这个U给它返回了。好,咱们来看啊,如果程序能够。成功的执行到该行说明什么呢?
05:00
说明账号密码是正确的对不对。密码正确啊,如果啊,这个你肉了,那下边的是不是肯定都不执行了啊对吧?好说明账号密码正确啊,好需要继续向下验证啊这个啊其他三项。信息啊好,首先咱们来验证失效时间。嗯。好,咱们这个实效时间来。啊,等于咱们这user.get验一验对不对,好,我们当前这个系统时间比一下,当前系统时间我取一下啊。Current time等于咱们这个工具date time you get this time,没错吧,好,如果咱们exp time刚才用那个方法叫什么?
06:05
嗯。To,对不对,咱们这个current time好返回一个int对吧,咱们啊,它如何是失效的呢?来看看啊,它应该是。咱不说小于零啊,对吧,如果小于这个当前这个系统时间对不对,好啊,那说明他这个账号是不是失效了,好,咱们往上抛一程。这回是账号已失效了,对吧。已失效,OK吧,好,继续来判断这个啊,锁定状态。Lock。State等于user get lock,好,如果咱们来个零点。
07:04
Equals,咱们这个local state好往上跑,是这样吗?啊,账号已锁定行吗?或者你再加一句什么请联系管理员之类的都可以啊,就根据这个用户的这个提出的这个意见和需求来OK吧,好,也就是错误方式有很多种,对吧,就在于你是在哪一行折的对不对,好来继续啊,咱们来判断。这个IP地址啊,String,咱们来个lowps user get low IPS,好好,咱们是不是传过来一个这个IP地址啊。对吧,来判断一下,如果咱们这个IPS怎样呢。
08:04
点这个E口子啊contains对不对,咱们这个IP这是包含对不对,好取反不包含加个叹号对吧,好,咱们来一个。死肉啊,这个是IP地址受到限制了对不对?地址受限请联系管理员,是这样吗?值得说明的是什么呢?在很多企业级的这个系统里边,其实是不需要判断IP地址。也就是说我们是不是也可以这么做,如果咱们这个拿到这个IPS这个IP地址啊,允许访问这个IP啊,如果他。不等于。空。能理解老师意思吗?或者呢啊,这个同时啊,同时咱们是不应该不等于这个空串啊,如果在不等于空同时不等于这个空串的这个条件下,我们才判断这个IP地址是这样吗?那如果它为空,是不是就可以说明什么呢?
09:09
就可以说明咱们这个ID是不需要判断的。也就是说允许访问的IP地址里边咱们啥也没写。啥也没写,啥也没写出,就相当于不需要判断了,好很多企业里边啊也是这么玩的,OK吧,那对于咱们这个CRM啊,得判断一下,OK吧,好,咱们来看一看啊,最终呢,大家想一想啊,就相当于经历了九九八十一难呢,如果程序真正能执行到return这一行,说明什么呢?上面这个是不是一句都没执行啊?验证全对,把U31反,我们的控制器呢,执行的这59行是不是相当于啥毛病没有,对不对,没有给我抛出任何的异常,不往开圈跳程序继续往下执行,是不是将user保存到塞域当中,是这样吗?同时给用户展现的啊,返回的是这个啊,登录啊成功的啊,这个接的信息是这样吗?好,那如果错误大家注意看啊,咱们这个e.get message,其实拿到这个MSG这个消息就是谁啊,是不是就是我们往这个字符串里边填的,是这样吗?哎,行,我们现在来试一试啊。
10:29
其实啊,现在咱们有一个小坑啊,需要我们去迈过它,现在啊肯定是不好使的啊,我们一会儿来这个分析一下啊,为什么不好使。但是貌似写的这个流程,从流程来讲是没没什么话讲啊,肯定咱们都分析明白了对不对,好,但是一会儿啊,这个小坑啊,看看谁能反应过来。大家注意了啊,我们现在来啊。这个是张三123对吧,你看这个失效时间是失效的,对不对,现在所有的东西都给他是不正确的啊。
11:10
那行,0.0.1,我先去掉。好,咱们先来看啊。好P,现在我账号密码随便填。账号密码肯定是错的。注意看我先点登录走一个。我貌似没反应是吧,来,我们来看一看啊。啊,进入到验证登录的这个操作对吧,好,咱们来看一看啊。啊,往这个SQL语句传递的是这些信息对不对。账号密码错误。这个错误消息是不是对的?对吧,错误消息是对的啊,账号密码错误,好的我们来看看,对于前端啊,前端我看看啊,咱们来看一看这个data塔啊,到底走的是哪个啊,Data到底走的Su,大家注意看啊,这块咱们是不是少了一个什么呀。
12:16
SOCS对不对,好。Success。再来一次,但是从刚才这个后台来讲,是不是他抛的异常是正确,是不是账号密码是错的,对不对,来最后再来试一下啊。这个才是。我想要给你们看的,来看后台啊,同学们啊,看后台啊,咱们这个后台这个执行情况请注意看啊,是不是给我抛的仍然是这个账号密码错误。但是呢,但是在前端最终给我判断的结果是不是success是错啊,才会给我跳转到这个成功页。
13:02
为什么呢?哎,我这个坑要是谁能谁谁能看到啊,这个我保你将来月薪过万啊。来,给同学们点时间思考一下。
我来说两句