00:00
那接下来我们就来编写订单业务,首先呢,参照我们的页面来点击我的购物车,如果购物车里边呢,以前有数据来点击去结算,应该跳到我们这个订单确认页,那这块跳转的有问题,那订单确认页我们之前呢,是这个地址,好order confirm,就是我们这个订单确认页,我们先来改掉我们这一块的链接,跳转来到我们的购物车服务,我们现在是购物车服务。购物车服务,来找到购物车的列表页面,来改一下我们的跳转链接,好列表页面首先呢,我们是来点击去结算,跳到我们这个订单列表页来,CTRLF,那就来找一下去结算,那去结算这个按钮呢,在这儿它会调用tot出的方法,好tot出的方法呢,点击以后会跳转到一个位置来给它修改一下,跳转到我们指定的order,鼓励mail,现在是鼓励商城,我们的哪个请求好,假设呢,我们现在就叫出to出的请求,我们想要跳到这个页面呢?那一定是登录以后才能跳过来,我们专门来写一个CTR,好们来到我们的订单服务里边,我们得专门来写一个controller来完成这个事情,你在web里边。
01:13
我们就来写上一个叫order web controller,我们一定要叫一个别的名字,不能调叫order controller order controller之前我们这都有,如果我们叫了order controller们再来给容器中加组件的时候,名字一样就重复了,就会报错。好那么现在叫一个order web controller,我们现在要做的第一个功能就是去我们的这个to try处理to的请求,To try请求它的作用就是点了我们这个去结算,跳到我们这个订单确认页,所以我们这一块呢,Return的是那订单确认页的地址。来确认页的地址就在这,我们只需要来复制一个confirm就行,来要处理的请求来写一下at,一个get map,好,Get map处理的请求我们就叫tori,那我们现在来启动我们的订单服务,以及我们的购物车服务,那购物车的页面呢,先做了修改,那么现在要做的效果就是只要我们来点击它,我们跳转过来。
02:16
而且大家注意,只要我们能结算,我们一定是要进行登录的,所以我们在整个订单服务里边,我们来做一个登录的拦截,那们整个订单服务都要需要登录功能,所以我们在这来创建一个拦截器,我就叫intercept,这个拦截器呢,我们之前还用过,好我们就叫login user intercept,我们的用户登录的这个拦截器,好我们把这个拦截器呢来创建出来,在spring家它的拦截器呢,必须来实现你的handle德拉intercept接口。好,我们实现这个接口呢?来来添加上一个方法。添加上一个它的pre handle方法,那pre handle就是在我们这个目标请求到达之前来做一个前置拦截,这个拦截器写好了以后,我们一定要at一个component,把它加到容器中,而且为了拦截器能起作用,那还得有一个web配置让它起作用。好,我们现在呢,就在这儿来再加一个web配置。
03:18
我们的这个order web configuration。好,我们现在呢,是一个configgu version,那我们的web配置我们就可以让它实现,有一个叫web mvc config,实际上这个接口在这个接口里边呢,有专门来添加我们整个拦截器功能的,我们应该有一个我来在下边按intercept,因为这个JAVA8有了以后,我们呢,我们这个接口也有了默认实现,我们现在来实现接口来添加intercept,我们把这个方法呢来做一个实现,我们给里边添加上一个拦截器and intercept,这个intercept呢,那就是我们之前的这个log user intercept,好,我们可以注入进来autowa,我们的log user log user intercept,好,我们把这个拦截器拿过来,我们现在要添加的拦截器就是这个我们当前项目里边的所有请求,我们来添加一个pass路径映射,我们所有请求都要用这个拦截器来进行拦截,所以呢,接下来我们这个拦截器一。
04:24
拦截以后,我们就应该拿到我们这个当前用户,而且要判断如果登录了才能继续访问,所以我们拿到这个request和对象,点一个你要判断登录get session就行了,因为我们之前整合了spring session,我们之前的微服务also,只要一登录成功,Session里边会放登录的用户,好,我们来get atribute,我们来获取一个这个登录用户,我们应该有一个author constant,我们这个登录用户用的这个键,Author server constant点我们叫login user来获取登录的用户,如果能获取到,那就是登录了的。所attribute如果不等于空。
05:05
那不等于空呢,说明登录了才可以,如果等于空,我们就应该else else,那这就是没登录,所有订单没登录都提示让他登录,那没登录,没登录就去登录,就去登录,所以呢,我们直接让他response重定向就行了,来写一个return false,那相当于就拦截了,如果我们想让它去目标方法,那么就return true,那么这个拦截呢,就是一定要登录才可以来做,所以我们先来加上我们这个登录检测,登录检测呢,我们想要拦截重定向,那么就直接response.send redirect,我们让它来重定向一下,重定向到哪呢?我们就来写一个HTTP,我们的登录服务是在author古me古励me.com。下边的logo.htmmr,好,我们来到这个页面,而且如果我们想给这个页面,我们跳到这个登录页,我们还想要让它显示一些信息,比如我们来访问一下我们这个O古丽妙,我来访问这个登录页。
06:16
那这个登录页呢,因为我们之前做了这个检测,我们只要登录了,那就一切都是正常的,那么现在为了清空登录状态,直接将所有的cookie给它干掉,好,我们现在来重新刷新,那现在呢是没有登录,那没有登录,我们如果来访问登录页,那我们假设是我们订单服务,我们检测访问登录页,我们可以给登录页这一个提示来,我们需要登录才可以访问,所以我们也可以把这个提示放到session里边,我们拿到这个session给它放提示也是一样的,Get a session,点一个set atribute,比如我们就提示一个message吧,好,这个message消息的内容就叫呢,请先登录,请先进行登录,进行登录。
07:03
因我们之前的这个author这一块的登录页,我们先来确认一下,我们之前的这个登录页,我们应该取出了这些登录信息来,我们在这儿判断我们里边呢有没有arows,如果有这个arows我们来取这个message啊,那我们这块呢就不取了,我们直接在这儿来取,如果是我们订单跳转过来的,我们就让它直接在我们这个下边鼓励商城不会以任何理由,好我们在这来取,CTRLCCTRLF来找一下,好,我们就在这让它来取一个,我们就直接Dollar符大括号,我们应该是双中括号来取出来就行了,如果用我们这个错误提示。那么就双中括号Dollar符大括号Dollar符大括号来取出session里边的message啊,然后呢,这是我们的错误提示,也可以来给它加红显示,如果有这个消息的话,我们就来给他加上这个死掉。
08:01
Color read,好,来随便写上一些样式,然后呢,我们这个订单服务,我们先把这个拦截器写好,拦截器呢会命令我们去登录,如果一切正常来放行,放行呢要跟以前一样,为了让其他人都能访问到我们当前的用户信息,所以我们可以来取出我们这个登录的用户,因为登录的这个用户我们像以前这个购物车,购物车里边呢,我们写过这个intercept,我们共享数据可以用thread local,而我们现在登录成功以后,我们登录的用户,我们来看一下放的是什么类型的,走我们在这儿来登录,那如果我们在这来登录成功,来找一下,这是注册,这是登录,好。我们这儿没登录,我们去登录页,那登录成功返回来,我们给里边呢,在这儿进行登录,会放一个用户set attribute,我们用户呢叫member response VO o,所以我们来到我们的这一块,Member response VO是我们这个全系统公用的,那就没问题,直接在我们这个order这个拦截器里边来取出的,这个转为member response为O就行了,好,我们来判断它如果不为空,那就登录了,那为了让其他人都能共享到,来写一个public static thread local thread local,我们这个登录的以后,我们使用thread local来共享数据,好,这个呢,我们就叫log user,我们就等于又一个thread local。
09:30
好,那么这个只要我们检测登录了,那么接下来就将登录的用户放到你的这个thread local里边,Log user点一个set,好,这是我们登录的用户,我们来保存下来,以后呢,其他线程都能获取到,然后我们就直接放行。这是我们来在O的里边先做了整个登录检测,来写一个拦截器,然后呢,再来配上我们的这个拦截器,好,我们先来测一下我们这块行不行,如果我们这个一切都是登录成功来到我们这突出的,那就应该来到我们的订单确认页,好我们先来启动一下我们的订单,那正好我们现在呢是没登录状态来看一下,好,没登录状态,如果我们想要去结算,我们给购物车里边未登录的这个购物车里边来加上一些商品点进来,好来加入购物车,能给购物车里边呢,先随便加上一个商品,好,现在加成功了,我去购物车里边进行结算。
10:25
我们现在呢是未登录状态,那订单服务呢,也现在提起来,我们结算呢,想要跳到我们的这一块订单,如果我们没有登录,就会提示我们的错误消息,那正好我们来看一下。我们现在来准备来点击去结算这一块来删掉,来点击去结算,好,请先登录没问题,然后如果有的话,我们给它加一个BR,所以我们在这来判断一下if,如果我们这个session session message不等于空来判断它。不等于nu不等于,那呢,我们就来给它显示一下,加个BR,再来进行显示,CTRLF9,好,我们来页面刷新,好,这一块呢,请先登录行了,样式这一块我们就不做了,我现在已经看到了这个错误提示没问题,那么现在呢,就给我们的登录服务添加了一个拦截器。
11:17
保证我们访问订单所有的请求都是登录后的,没登录呢就会给他打回去。
我来说两句