00:00
咱们这个DA写好了,Service写好了,是不是开始写这个web层啊,Order咱们把它写一下,嗯。这个地方咱们在web里面来。类叫做order so,它需要继承贝,哎呀,这谁呀,Base so let是吧,需要继承它,然后呢,咱们写上do get,让它重载下这个方法,我们把它改成这个业务的方法。啊,咱们说业务是什么,Create order create order啊。这是干嘛的啊,这是不是生成订单的呀,生成订单是吧?哎,生成订单里面我们就来看看呢,要干啥,怎么去实现啊,那么这个生成订单是从哪来的?啊,从哪来,其实大家看啊,这个地方生成订单其实是什么?是我们购物车这个地方结账,看见了吗?结账你是不是要生成订单。
01:05
没错吧,先看到这个流程哈,那么我点击结账的时候,他跳到哪check out检出页面,你看这是不是要把那个订单流水号给打印出来,没错吧,那其实这个过程当中啊,它应该是先访问到all里面的create order这个方法,然后再把这个订单号啊保存到域当中,在页面上显示,那么这样子呢,我们就把这个页面把这都关了啊有点多,把这个什么呢?呃,购物车里面结账这个地方。往下。结账那个地方,我们让他去访问这个order。Order,哎,没有提示,咱们还没有给这个order色列的配置是吧,这里面还没配它呢,来。咱们说把这个删掉啊。
02:02
Order。好,复制一下。好,那么OK,咱们就分开了,那就分开了啊好,接着呢,我们再来看,那现在这个地址有了,那把它关了哈,在这里order select,问号action等于方法名,呃,咱把那方法名拿过来。就这个。好,等于它这不就去去结账了吗,对吧,那结账这里面要干啥,我们就要想想了。再想想吧,首先大家注意看结账需要什么东西结账,呃,这个生成订单需要什么,需要调用。All service create order,这个方法没错吧?那这里面就需要什么。
03:01
购物车对象UID,所以我们要先得到这两个信息啊对看啊先获取诶怎么输不出来了先。先获取cut购物车对象,第二获取usual ID是吧?购物车对象在哪呀?在session中来,咱们获取一下cut等于request.get session点。Get auto表。Cut类型转换一下,呃,用户ID呢?用户ID在哪?客户端传过来吗?不用大家想想哈,用户登录之后是不是保存到session中,也是从session中获取session点。盖塔抽表,这里是优者。哎,然后呢,返回的类型就是log in user登录的这个user对象,咱们类型转换导包啊,然后得到user ID。
04:10
就是log in.get ID是吧?得这个ID就usual ID好了,有了以后接着条法呢,调用order s create order生成订单是吧,生成订单,那么生成订单的话啊,咱们准备一下all the service all service等于new all service in input哈,好,这里呢,调用一下它来吧,All service.create order把购物车放进来,User ID放进来,对吧?哎,然后呢,它会返回这个订单号。哎,这个订单号,那么这个订单号啊,要保存到域当中的request速点set to表,呃,咱们说这里是啥。
05:04
呃,这里是all的ID all的ID那么保存到P当中,大家想想我们这里是不是就可以输出了,地址是哪里啊,是这个我给他转发过来,最后呢,请求转发到。啊,这个页面其实就是什么,就是pageris下的car下的checkout这个页面来吧,request.get request dispat把这个地址过来。就是他咱们刚刚复制过来的吗?这肯定不会错的,点forward好。咱们这就写好了,写好了之后啊,咱们来看看效果,我先在这里打上断点啊,咱们看看行还是不行啊,对了,咱们这地方是不是还得输出啊,咱们还没输出呢是吧?嗯,往下走,这是订单号啊,咱们输出一下。
06:03
输出在哪啊,录音request域当中O的ID是吧,这样就好了,好呃,咱们重启一下啊。这个book要重启的。因为咱们web点餐没已经配置过了,要重启一下。Debug启动一下。稍等啊。好。啊,就启动成功,启动成功以后,咱们来看一下哈,我走走走走,我加点东西在购物车了,我去购物车,我准备去结账,大家看他是不是停了这个断点呢,让我往下走,获购物车对象获取用户登录的信息,诶出错了,看见吗?啥错误啊来请看这个打印啊。它是不是出现往下走,是不是出现空指针异常哪里呢?就这一行是吧,走这一行就是哪,就这个地方常这个地方出现空指针异常,谁会出现呢?其实就是load in user,为啥咱们还没有登录啊,没有登录的话,你是取不到user ID的,这里面也不可能有user这个信息,所以大家注意看啊,一般我们在结账的时候,那肯定是要求用户先登录log in usual,如果等等于now说明还没有登录,那没有登录怎么办?让他跳到登录页面。
07:29
行斜杠patris下的usual下头log in点接着p.a what,呃,这时候注意看一下哈,一般请求转发之后,大家想想咱们是跳到这个页面了,上面代码不需要执行了吧,所以走吧,一定要加上微对称,记住啊,养成习惯,一般转发和重定向之后不需要再执行任何代码了,加个对称啊。呃,我们再来重新部署一下行了。
08:07
部署等待是吧,啊,它这个地方停一下,断点还在呢。来重启一下啊。再重启一下,稍等。好,正在重新启动啊。好,没问题了,咱们加点东西到购物车,然后去购物车,咱们准备结账,这个时候呢,还没有登录,他会让我们跳到登录页面的啊走走走,看见吗?没登录就跳登录页面,走放过去来了吧,呃,你不登录不行,呃,这个时候呢,咱们写成呃命呃命登录登录成功以后啊,我们来我们的购物车是吧,然后去结账,这个时候用户就有了。呃,咱们注意看啊,购物车这个对象是有的,然后走us是不是也有值啊,诶然后。
09:04
获取user ID,然后调用这里面,调用这里面好,大家大家请注意看哈。我先把这边。删了。我看看一会儿咱们从页面上跑过来这个,呃,订单啊,是不是有什么问题没有,咱们都都去掉了哈,一会成功就看见了,来走保存,大家看这是不是生成这个订单啊,哎,那我们看数据库是不是跟我们所期待的一样啊,订单项有了吧,这就是咱们从页面上点击加进来购物车的啊,然后订单项订单有了吧,都有了,诶好,然后这是订单号保存起来了哈,保存往下走,订单号保存旅客的订单中转发过来。给他放过去,大家看这里是不是输出了,你你可以复制上这个值啊,看看跟数据库中是不是一样啊,如果一样就没啥问题嘛。诶这个是不,哎呀这是不一样啊,就没啥问题嘛,这就是生成订单就是结账了哈。
我来说两句