00:00
我们来看这个结账操作。这个结账操作呢,呃,有几个步骤,第一个步骤我们在点这个结账的时候呢,需要给我呈现一个页看,点JSP说买多少本书啊,应付多少钱,这个非常容易出来吧。因为是不是就是我。我这个放一下。是不是就是这个,是不是就是这个和和这个,这非常容易出来。好了,这是鲁班吧,啊,也没啥问题,所以说由这个页面结账到这个整个这个比较容易。这个呢,大家一会儿的话呢,可以完成一下,我们主要是看下一个,看下一个呢,在我点这个提交的时候,首先会来做几个校验,第一个啊校验用户名账号是否为空,这种校验呢。
01:01
对。怎么验呢?就获取这个姓名和账号呗,是吧,然后到了sol。然后怎么的检验呗,出一下看一看你是不是空,或者说你是不是空串,如果是空串的话,就打回来显示这个错误消息吧。这个是很容易验证的啊,这个验证大家看这个啊说啊嗯,先看先看这个,看这个说用户名和密码不匹配,如果我们输的这个用户名和密码要是不对的话,我们也应该校验一下吧,这个需要依靠于DAO了,我们那天有一些DAO还没写完,这个时候得用了。所以说部分DAO的话呢,需要写一下怎么写。怎么样,看他配不配啊?
02:00
有个用户名,有一个密码,我们可以去查数据库吧,数据库里边我们有数据表啊。看。这里边儿的话呢,有一个。呃,Account ID u啊u info里边啊,User里边有个什么呀,User里边你看我拿这个用户名,我是不是可以把这个信息查出来呀,如果这个信息查出来的话呢,你跟那个矿的ID1对数就可以了,我们就是这么对的,他俩要是配的话就OK,不配的话就不行,这就是我们的啊这个检验。这个检验好了,这个减压要是再晚的话,下一个是谁呢?下一个是。库存的检验库存。库存这个怎么检验啊?我们购物车里边是不是有好多个shopping卡item啊,你去查看一看,这个书够不够?
03:05
那我这块的话呢,只显示了一个,有的时候啊,可能是好几本书的库存都不足,我还给提示一下说,呃,这个比方说AX库存不足,GS库存不足,Oracle库存不足,你都需要显示上,那实际上开发的时候呢,可能不会提示库存不足的问题,它会补货。他会补货,但是我们这块通过这个的话呢,可以达到一个很好的练习目的,大家可以看一看这个验证是如何来完成的,最后一个如果前三个验证都过的话,还看什么呀,看这个余额够不够,那其中呢,这第一个验证啊,不需要去查数据库,这个验证我们称之为。简单验证或者叫表单验证,后三个都需要去查数据库,都需要去找业务和逻辑,他们称之为复杂验证。
04:02
好了,那这三个验证呢,其中第一个验证啊,怎么做,我们已经说了,第二个验证。思路的话呢,我们也说了是吧,我去查一下,我查完之后啊,我发现不匹配的话啊,我也给你一个信息打出来,这个信息怎么打出来。把信息放在request里边,然后通过转发来,这个页面一显示是不是就可以了,OK,那库存不足。你应该去查那个my books那个数据表吧,啊,这个余额不足,去查那个数据表好了,那做这个校验的话呢,我们需要把我们剩余的DAO写完。大家看account DA过来看一下吧,根据account ID来获取account干什么用啊?
05:01
根据a account ID来获取a account,那在这个里边不就是吗?你看我如何来验证这个余额不足啊,我根据这个卡号是不是可以得到这个account呀,我得到account了,我是不是就得到balance了,我就可以比了呀。下一个啊,更新余额的,这个是在具体结账的时候需要用,就是说我为这个账户扣除多少钱。不可,OK,有个方法可以用了这个。呃,先关上吧,要不一会还得实现啊,这个是什么呢?这个是说哎,我批量去更新。跟sales sales amount。传的是什么呢?传的是一个shopping item对象,这应该如何做呀?Shopping item里边有有什么东西,有几个属性,两个属性吧,一个是book,一个是quant,我要去更新那个book的。
06:10
两个字段,我们看my books,大家看有一个什么呀?有一个sales amount,有一个stone number,它俩应该是一个此消彼长吧,比方说哎,我买了五本书,买五本书的话,这个加五,这个减五吧,但我这个是零了哈,这个估值不够,这个加五,这个减五,这个总和是不变的,那我现在的话呢,我一买的话,我要买N本书,那我是不是我需要每一个shopping看item都需要去做一个更新的。所以说叫批量更新。Trade trade呢,目前还用不上这个呢,我们一会儿等到这个结账的时候的话呢,我们就来解释它。IPhone。这个也是后边的结账老师我们的解释。
07:00
QDAO啊,这个需要用,需要用什么呢?需要用用户名去查询用户的信息,从哪呢?在这儿。用户名。U啊,用户名查用户的信息,然后我是不是还可以获取这个account ID啊,我才能够比较用户名跟account ID是不是一致,所以说这几个DAO呢,其中这个trade跟trade item还不及其他几个DAO,大家需要写上。好了,这几个DAO都写上之后,大家可以尝试着你先试来写一下这个校验,看能不能写过。然后呢,我们一会儿一起来把这个呃,结账这个页面,以及这个整个这个校验写完,OK,大家跟我们先做一下。再看一下这个校验,校验我们校验的话呢,我们是需要调几个方法,第一个叫简单验证,简单验证直接进行验证就可以了,那个的话呢,这里边我们没有写,但是其他几个写了啊第一个大家看。
08:14
第一个的话呢,我需要来校验。叫check shopping car item叫什么呀?库存是不是够check u用户名和account ID是不是匹配。还有一个叫。Check balance余额是不是足够啊,我在这个so里边定义的这样的三个方法,他们可以来执行对应的校验,当然每一个方法的话呢,可能还需要调用对应service的对应方法,大家把这个方法的话呢,可以填一下。我们一起把这些do先搞定啊。何况电。
09:05
IO。实现接口。嗯。继承。DA。第一个ID。Account DAO,看这个account ID balance,但注意这个是不是小写啊,在circle里边是不分大小写的,但是你要看一下这个account。这个是第二个单词是大写的,所以说你要这样写。
10:05
Account。数据表。Whered ID等于问号?看。Query。第一个就是。Circle ad现在的话呢,还比较恶心哈,我们还得弄那个什么,弄那个connection是吧,给弄弄吧。闹。点release。
11:00
Nation。有一常抛一下。等于。GDP connection。那完事。哦,这边已经实现了是吧?啊已经实现了啊那那。很怕了,省事了,行,Update。啊啊。Account。Seven。
12:02
等于。Balance减问号。Where of course?ID等于问号,是不是直接更新啊?Update circle。第一个应该是,第二个是ID写完,当然我们写完之后需要测试一下。这种措施非常有必要的哈。Unit。我。
13:04
DAO。OK,第一个过去。等于adao.GET1。数据表。一。打一下out,我框d.get这样就可以吧,就这个是一嘛,打个三百五就可以了,看效果。没问题,好第二个。第二个是更新。更新余额。
14:01
一五十更新之还该剩几呀?邓几啊?这是350,那个50还应该剩几啊,剩300吧。300万不是减吗?我花了50块钱还是300块钱。这个OK,下一个book写完了,DAO trade跟trade可以先不写,需要写一下。PAO。的circle等于U的。
15:10
看u ID you name,给我换个ID,这个时候呢,还得看那用的对象。U ID name count ID name,这个是小写,这两个是大写。有个info。Where?Username等于问号。Query。Circle后边这个值就是you name,测试一下。
16:00
Janet单元测试类。有的BOO。数据表aab都可以啊,我们用AA来写吧。UU等于UDAO点盖。A,好,右的。看照片没问题。重写库存方法。有哈。
17:00
保存看一下。是不是OK啊好了,这样的话呢,这个DAO,那我们就准备完了哈,当然还有两个,这两个到后边我们结账的时候呢,我们再写。还有一个需要写,哪个需要写呢?还有一个就是我查询你的这个库存是不是足够,那个还需要写这个哪个里边我们看一下啊。这是ID没在这个里边。查询库存是否足够的。这是根据退ID来查,这是批量保存的。哦,应该是在这个里边。Book VO里边。哎,这个是必保存的呀。
18:02
库存是否足够的,没有这个的话呢,我们需要一个一个的来调,这个不可dau来搞定,没有这个方法哈,这两个的话我们都已经写完了,行吧。那这个之后呢,我们看这个图。我们先需要由这个页面到这个页面选这个结账,呃,到这个页面看点JP过来。新建一个界面。Cash。点JSP。Center。打两个边。然后是什么呢。一共买了多少本书,应付金额是多少,那这个我们在购物车那个地方上是不是已经写了呀。这个页面吧,您一共买了多少本书?
19:07
您一共。买了多少本书?应付。多少钱多少钱的话,这边也有写,我直接复制了哈,应付多少钱在这呢。CTRLC过来。行。好了,下边的话呢,就是一个form。这个呢?我们要执行的是一个结账操作。我们也去。问号method等于cash结账。
20:06
Method post。Table。第二。T。第一个信用卡姓名,信用卡账号。信用卡。信。用卡姓名。Name。Username。还有一个是信用卡账号。
21:01
我矿埃利。写完后边有一个提交按钮。Sunny OK。写完好这些写完之后的话呢,我们就可以来转到这一页了。那怎么过来呀?怎么过来呀,照理说我是不是可以直接连过来呀,因为这个时候的话呢,来这个页面之前,我们不需要sol做任何工作,是这样吧。就是有一些页面呢,是不能够直接获取的,你直接获取不行,但有一些页面,比方说这个页面是吧,它不需要so做任何事情,所以说可以直接连过来,但是呢,我们这个页面啊,在这我直接连不过来,我只能还通过一个so,那这个时候有点不爽了啊,我们前边我们有box。
22:19
用books去这个购物车页面,我们看怎么去的。查看购物车。这我们是不是写了一个to cut page,当时这个里边怎么写呢?就一个forward吧,还记得吧,哎,我这个里边的话呢,我也要这么写,如果要写的话,那我也CTRLC一个拿过来。嗯。这个页面在这呢。哎,我也可以这样写,当然了,这样的。
23:00
这是to cash。Page,然后怎么写这个里边的话呢,条件不需要带了啊,这写就可以了。然后这样写,大家看。昨天呢,写了这么一个页面。这么写的,今天呢,还要写这么一个页面,写法是一样的,只不过这个改为什么呀,改为开是吧。好,我们先看,这么写是好用的,但同时这个代码存在着比较严重的冗余,因为这两个方法一模一样。就是说当我们把这个代码复制一遍的时候,你就要想,哎,这样好像有点不好了,那如何解决,等一会再说,先看效果。
24:04
鞠躬。加。好了,两本书结账好了,是不是两本书103来这个页面是没问题的,但是我这么来的话,大家看啊,我这么来的话呢,这个时候有两个页面都是这样写的,于是就想这俩能合到一起吗?或者怎么合到一起呢,就是凡是转发的我写到一起,我写这么一个方法,大家看。比方说我写个forward page。但问题是,你得告诉我去的是什么地儿吧。好了,这个地呢?我这么写。等于一定从带带过来吧,是吧,Request get promote。
25:07
告我去哪啊,然后把这个改为。加,这是不就行了,告我去的是什么地方,于是回来。叫forward page ctrl c过来。For page,然后and配置等于。k.GP。你看了你也这这JSP你也你也可以不写,反正就是去这界面这样也行,这样写的话,那怎么办呢?这里边是不是得加1.jsp啊。点GP这么写,然后呢,CTRLC。看C拿这来。
26:00
这个是再看效果。回退。鞠躬。看着。注意哈。这个时候我过来的,我怎么过来的,是不是已经是配置是看上了,看见了吗?已经改了,结账是不是没问题啊,哎,这样的话呢,这个方法就整合到一起了。好了,到了这个页面之后呢,应该说我这个步骤已经写完了,下边我要来进行验证,具体是进行四个验证,我们需要说一下啊,验证首先我要确定我去的,我去的方法应该叫。Cash。写这么一个方法去。结账的方法。
27:00
嗯。哎,以后我们开发的时候呢,类似的这样验证啊挺多的,所以说你们想到什么呀,我们应该会有验证的框架。验证无非就这么多种呗,是吧,比方说呃,用户名是不是空。密码是不是空输入的,是不是一个email等等等,所以说的话呢,以后开发的时候呢,验证会有框架的,那暂时我们还需要自己来写,第一个叫简单验证。验证什么呀,验证。表单域的值是否符合呃,基本的规范,什么叫基本的规范呢?比方说手为空啊。啊,比方说是可以转为int型啊,这比方说啊,是否是一个email啊,哎等等等,它们的特点是不需要。
28:08
进行查询数据库。或调用任何的业务方法就可以完成,那我们这一类验证过来看一下啊。验证不能为空的,这个验证就属于这种。所以说你先需要获取来。Render username等于request.get pro username,第二个render account ID等于request.that form account ID写完,然后说这两个都不能为空。If。如果为空的话,我就把这个错误给返回去,User name等于空,或者是u name.train.equals等于空,串错了。
29:09
有错误啊,它是一个那底下跟这个是相类似的。这个矿ID。在这个基础上,你是不是还可以验证,比方说你说这个框ID哦,必须不能少于多少个字符,都是可以来验证的,那。这个验证消息怎么写呢?说这样写用户名不能为空,账号不能为空,这两个呀,我们要写在一起,所以说我们先写一个四八号吧。I等于六顿。OK。I wass.a pen。
30:02
这个呢叫用户名不能为空。这个叫。账号不能为空。账号不能为空,OK,那这个叫基本验证,如果要是不过的话,就别往后走了哈,基本验证不过的话就不往后走了,怎么写呢?If说如果谁i.e口子要是他的话。那两个string buffer去比较的话,是不是用这样的方式比呢?还得看一下。哦,他直接写成什么呀。他这里边他没充血的一个方法吧,就挺差劲的,你看他死人八块里边的话呢,没有充血这样的方法。
31:01
那这么写吧,点to顿这个可以吧,我to顿了的话呢,就是它了嘛,然后完了再比说如果要是没过的话,那我就对不起了,Request set attribute irows errorrows,然后呢,就告诉你,哎,选上那个页面吧,是吧,Request get request,哪个页面呢?根目录下的web in。目录下的。Pages目录下载。cash.p点帮我request on写完看一下。这个就配这一次哈,好了。试验一下。这就是我们的第一个验证。直接点吧。太过了,一等于空啊,不等于空啊,好了,购物车那个我们就不搞了啊,我们就我们就这么搞,大家看事是没过去啊。
32:23
没过去,没过去的话呢,这个页面上你需要把这个消息显示一下,怎么显示啊。在这儿呗,CC,没有。C if,如果requestcope.is不等于now的话,我怎么办?我就来显示这个消息,Color。
33:10
Request点保存,等会说哈。是这么一个效果吧,用户名不能为空,而且账号不能为空,因为老师你得换个行啊,换行什么写,要是确实要是确实换行的话,过来看换行的话,一方面的话,我们可以这块我们可以加一个逗号吧,是吧,这逗号可以吧,另外一个就是如果你要是确实是想写的话,你可以在这一块加个DRR。就是说我如果要是有空的话呢,这块加个边,这就可以再看。
34:02
是吧,是这个效果吧,但是这购物车里边这个东西没有了哈,行这样的话呢,第一个验证就OK了,这叫一个什么呀,这叫一个呃,叫一个简单验证,那于是呢,这个验证我们可以把这个代码给它拿出去,告诉这是一个简单验证,它返回一个什么呀,它返回一个error。抽出一个方法来说不出来啊C这写public point,验证form field。好了,这个呢,我希望返回的是一个。八。
35:06
Control。那X吧。直接金瑞的。当然了,这个时候的话呢,这个用户名给传进来name,还有一个是account。ID。Speaking。写完了好了,这个OK之后的话呢,我们这块这个写法就一个对8ERROR等于。Form就框ID一个验证写完,哎,如果这个验证要是不能过的话,实际上应该怎么样呢?不能过的话呢,那我就去这个地儿,OK,好,这是一个,那这个简单验证完成之后的话呢,下一个验证复杂一点哈,叫什么呀?叫这个用户名和账号是不是匹配。
36:13
这个验证呢要复杂一点,因为怎么了,这个时候需要去查信息好了,如果这个要是过了的话继续。比如说过了,过了的话呢,我们就来看用户名和。账号是不是匹配,这个时候怎么呢,我是不是需要去查数据库呢,所以说它叫复杂验证。那于是呢,我需要来写一个service user service。因为怎么了,我需要根据用户名去查用户信息了。Public user user user name。
37:01
真的。User name user。等于new uo people直接。有的do点盖。User user name control o搞定好,我回到这个里边来,那这个时候我需要这样的一个属性,Private user service。等于new u。Service OK,这个时候呢,我需要来检验我的这个,嗯,账号跟密码是不是匹配,我也先写啊,然后再摘出去,怎么写呢。
38:01
说u.GA。User by username同时返回一个user,返回了一个user,那问题是。If u本身可能是空吧?U不等于now。只有不等于now的情况下,我才能够优点get。我换ID吧。诶,我这边没有啊,我框ID好了,这个时候的话呢,我拆回来获取这个我框ID这个类型呢,应该是一个类型,Oko OK,好了,这是我框ID。String a框ID好了,我们希望什么呢?我们希望这个框的ID跟这个框的ID之间有一个关系不吧啊,等来可以怎么去等啊,If如果要是等的话。
39:12
id.train.equal加account ID to吧,这个轴传说合法吧,此外都算不合法。那那如果这个是空。看哈,如果要是空的话,L。Else,应该是个什么呀?这个时候要是空的话呢,实际上是这个用户的信息根本就不存在,或者是用户信息存在的话,那这个密码不配是不是也不行啊,所以说我们直接上边再写个不值吧。等于true false,好了,只有这个时候flag是true,然后拿出来说if,如果没有通过验证,那我就要给他信息了啊,告诉你有错误。
40:12
什么错误呢?也一样说。String。String buffer is two版等于new string。Buff好了,开始的时候它是这样,然后呢,Is兔点片的告诉什么呀,用户名和账号布匹完事,然后你把这个放水筷子里边继续搞,那这个怎么走呢?这个这么走。这是一帮哈,然后呢,要是写的话,还需要再这么写一下。先看效果再好了,然后我们再想这个方法如何来进行重构。
41:05
就。第一个。给空好了,AAA。又写错了。Two。应该是兔哈。会退。好了,那这个时候的话呢,我们发现这个错误也也不对呀,这也是兔吧。是吧?是不是不匹配啊,行了,写完好了,这个写完之后的话呢,我们发现这个代码呀,有点多了,你要这么写的话,你看这个时候这个五十五行到60行和这个是不是一模一样啊,而且这个代码的话呢,都是什么?呃八那这块我写了一个,这块我又写了一个这个代码呀,到这块的话有点乱。
42:18
所以说这个代码需要规整一下,好,我们接着来看后边这个验证啊,一会大家来写下,看看你能不能把这个代码写的顺溜一点,这个还有什么呢?这个叫库存不足,可能是有很多本书库存不足,大家想一下库存不足这个应该如何校验?你可以思考一下库存不足这个如何校验,然后余额不足这个好校验吧,好,库存不足这个你得一本一本书去看吧,呃,只要有书不足,我就告诉他什么什么库存不足好了,那这个验证的话呢,这两个头呢,我已经开完了,但是没有全完事,第一个后两个没写,你需要写上第二个这个代码呀,目前的话呢,工程师实现的目标,不过这个代码是不是巨丑啊。
43:07
你能感觉到吧,你看这一行跟这一行重新写了一遍是实现了,但很明显不是这么回事,所以说你思考一下诶,第一个把这个代码变得干净一点,第二个把后边这两个验证呢写完。发下去大家看一下,我们首先呢,把这个代码给它规整一下,那这个代码应该是怎么回事呢?大家想是吧,应该先进行表单验证,如果这个验证要是通过的话,再来进行业务验证吧,那都是这样的一个流程,那我们一共有是有四个验证,第一个验证过了验,第二个,第二个过了验第三个,第三个过了验,第四个吧,那。我这块的话呢,这个已经返回一个4STRING baruff块了,那我这个也返回一个string bar块,我们看这个啊。
44:03
Buff。X。Public。这个呢,我们是验证优的。喂。We can。You。Iron。Two。保存这块的话呢,这两个也需要传过来username。ID。好,这是第二个。那回头呢,可能还有第三个和第四个,我都写上啊下一个。
45:05
Public对,下一个呢,是验证这个库存是不是充足。Number。好了,验证库存是不是充足,我先再一个,那大家说验证库存是不是库,验证这个库存是不是充足,我需要存什么东西啊。这个我不需要传球name跟这个框ID了吧,这里边我是不是只需要使用那个购物车就可以了,所以说直接整个http request。好了,这是一个再来public。B we。Be。
46:01
验证余额是不是够余额的话,我需要填谁呀。余额的话我们看哈,余额的话,我这块我是不是查了一个优点。看哎,我这块查了一个U,这个时候呢,我们需要用到这个U。那这个呢,有点烦躁是吧,因为我在这里边我查了一次U吧,这里边我还需要去查U,因为我查U的话,我好去查什么呀,我好去获取这个,诶不是优点啊,不是优,我应该是获取谁呀,获取个框吧。Account这个余额,所以说这个窗口框ID就可以了,Account和ID return now好了,一共是这样的四个方法,第一个验证。表单与。是符合基本的这个,呃规则,比方说什么规则呢,是否为空啊,是否为空好了第二个第二个验证。
47:11
用户名和帐号是否。匹配这个验证库存是否充足。好,这个验证余额是否充足,验证余额是否。中国。嗯。写完好了,这个都写完之后的话呢,我们上这个里边来,很明显你就写很多字的话,不对一次。好,我们想啊,这是第一个验证吧,这个验证写完的话,我说呀,说如果如果这个。
48:11
as.to string.equals要是他的话说明什么呀?说明这个验证过还是没过呀。说明这个验证是过还是没过呀,看这个这是不是过了呀,啊,这个验证过了,我去验证第二个好了再来as等于什么呢?第二个啊优等好了,道理是一样的。啊,如果这个要是再过的话,现到哪个第三个吧,Bookstore request,如果这个要是再过的话,验证下一个,下一个是。
49:11
Balance行,看看这个过程哈,看看这个过程说这个表示啊,表单验证。通过好了,里边这个呢,是表示什么验证啊呃,叫用户名和账号验证通过这个呢,表示这是什么,这个吗叫嗯库存。验证通过那椎我一个都验完了,好了,这个都完事之后的话,你再比是不是就可以了,就是说主要是有一个不过的话,比方说我要是这个要是不过的话,我是不是不往下走了,所以说这块写的这个就可以了啊,整个这个代码到这块的话就规矩嘛。
50:13
你就可以,OK,这个可以之后的话呢,我们来写写吧,这个验证,嗯,库存是不是通过这玩反验呢?首先获取购物车,Bookstore we you,哎,我获取个购物车好了,我这个购物车的话呢,获取这个没有任何成本,因为我不需要去查数据库,我直接查就可以了,好了,获取完购物车之后的话呢,我需要验一本一本书的情况。那。For循环吗?说这个书的这个余额呀,呃,这个书的这个store number啊,是不是够,那我里边放的是什么东西啊,叫shopping I s Di。
51:14
看哈,它的点,它有一个方法看一看。Items OK,好了,In ha s ci.get qua,下一个我们是不是还有一个书的一个这个库存呢?书的书的库存应该是在印。Store number等于sci.get.get。Stone。Number好了,我一比就可以了,那这块的话呢,我们需要说明一下,这里边儿容易出现线程并发的问题,就是说我这个书是什么时候。
52:02
这个点呢,我是在我买书的那一刻,比方说回退,回退有没有了啊,或许说好了,我这个时候点的,我点完之后的话呢,我距离结账是不是还有一段时间啊。但我这个时候点的,我仅是把这个书的信息放进去了吧,好了,然后呢,我在具体结账的时候啊,这个书的这个数量可能已经被更新了吧,有可能吧,所以说你这个数量可能并不是最新的,懂这意思吧,所以说我们最好是获取一个最新的,最新的怎么获取啊。Book service get book ID吧,sci.get。book.get id.get fair on,这个家伙肯定是最新的吧?如果,如果什么呢?如果quantity大于stone number,这个数不够了吧?OK,我告诉他这个数不足了。I罗S点哦,艾洛斯没写。
53:25
点啊。什么什么库存不足什么什么呀。sci.get。book.title。加库存。不足好了,加个B,这是一个,然后是不是就一直加呀。这就完了,把这个返回。行,最后一个余额是不是够,余额是不是够的话,我们这个里边有个问题,我是不是得把这个传进来呀,为什么呀,我是不是得有购物车啊,我才能知道这个钱是多少呢?那于是写个吧,写个快,我们说了呢,我获取购物车不需要成本,所以说购物车再多获取一次的话呢,也没什么。
54:23
好。好,这两个搞定之后呢,然后我们说钱是不是够。我首先得用这个account ID去获取account,于是需要一个account balance。A service。Sorry。Public account that。
55:01
The old。传一个int类型的。Account ID。等于六。播放do。Return k.get框ID写完好了,这OK之后呢,我们再回到这个里面来看看。说。先获取我空是吧。等于ACCOUNT4位。等于new account service最大化,然后account service.get account。
56:11
点account ID同学可能会问老师这块你怎么不用在那个进行check开呢?因为我们前面那个验证是不是已经是不是已经已经验证完了,这个家伙肯定是可用的,所以说过来吧,然后呢意如果。我花的钱数点get total money大于count.get balance,那我就点呃,骗叫余额不足。OK。返回I保存行。再看。
57:03
我库存应该是有保额不足的,那我们一个一个看啊,加入购物车三本书过来十本。写上第一个,这没问题吧,是吧,来ANA这边写不合法,来AA。一是有的。U aae。不过现在呢,这个书的库存是不都不足啊,123吧。大家看库存不足吧,好了,我把库存给他补足了,库存补足到那。
58:03
好了,库存足了保存。这块应该回一下啊,过程过了我钱1000,我钱数不够啊。钱,我这300块钱钱。有。Oh。钱不够看一下。U的AA对应的是一。一呢,我前二没改过来。样子诶。300对,现在我就想看库存,库存这个效果,这个余额库这个效果是吧。刷新。不是吗?Number。
59:09
一。坏了,这边这个有问题哈,看一下我的验证方法,库存是否充足。Number啊,写错了吧,Sales number了,Get number保存。嗯。结账。AA1这个钱不够啊,这样的话呢,这几个验证就都完成了,好了,我让这个钱够。
60:05
这个一直是我们特别期盼的一件事,是吧?钱不够去改进数据库,然后卡里面的钱就多了。这看。是过了,那整个这个验证就起来了。
我来说两句