00:00
上午我们把这个。添加订单,还有添加订单项的两个函数,我们把它完成了,下面我们来把这个去结账,把这个功能给完成了,我们这个去结账,这个点完去结账之后,需要把购物车里边的,呃,这个信息呢给保存到订单和订单项目表里边,同时我们最终呢,要去一个页面,就是我们这个views page下的cut里边,诶这个有一个checkout.html。哎,在这里面呢,会显示我们最终的订单号,你在这啊,显示这个订单号是什么什么么啊在这显示一下,这就是这个,哎,我们这个最终啊,最终要显示这个内容,好哎,那我们这个把这个先关掉啊。我们来这个实现一下这个功能啊。我们先把这个运行一下。把这个关掉。
01:05
慢点,一个exe。啊。Look man。登录。好的123456登录。舟车。好啊,这里边儿,呃,这个有两本书啊,我们再买一个啊。解忧杂货店编程的各一本解忧杂货店编程再买一个中国哲学史购物车好,下面我们要做的是点去结账,然后呢把购物车清空,把里边的内容呢转换成订单,我们就先把这个超链接呢给改掉,找到我们的cut。
02:01
卡点一填好,诶来去结账,把车链订单改掉。改成一个什么呢?Checkout。好来,哎,在这呢,写一个去结账。点一个can。斜杠check out,好。Controller。点一个check out。好,哎,来创建这个。处理器函数。Controller右键你有一个文件叫一个controller handler点构。A handle go package。Controller。先写注释,Checkout。
03:00
去结账。Check out。WHTTP点一个response。没提示了。HTTP点一个response httpr星HTTP点一个。保存好,那这个呃,去结账,结账的时候呢,哎,我们刚刚说了啊,是要把购物车里边的内容给它拿出来,所以呢,我们这里边呢,肯定得获取这个购物车里边的内容,哎,那所以呢,我们得先这个得到这个session。下划线。
04:00
等于DAO,点一个log。好,诶里边呢,传一个R,好诶拿到这个session,这个是我们之前写的这个。你是第一里边的吗?Is loving。哪个是大仙?我们看一下啊DAO session。Is login。Is loving。In Lobby。好,就是这个啊,看看是否登录返回一个session,好,那下面呢,我们在这里边来获取。获取什么呢?获取这个用户的这个ID。User的一个ID等于session,点一个user ID,好诶拿到它,拿到它之后呢,下面我们还需要获取这个购物车。
05:12
等于C。Do get一个cut by user ID。User ID好诶得到这个cut,得到cut之后呢,啊,下面呢,我们就是这个拿里边的内容了,那拿里边内容的时候呢,这个可能再往下写的时候不知道拿什么啊,所以呢,这是时候呢,因为我们最终要生成订单,所以呢我们先来看一下里边缺什么啊创建。装些什么呢?等于嗯,And。Model。Model点一个。Or?好保存,诶我们来,呃,第一个呢,需要有all的ID,嗯,第二个是生成的一个时间,第三个是total count,第四个total amount,第五个是这个这里边这个啊total count跟total amount,诶是不是需要从购物车里边来得到,对吧?哎,需要从里边来得到啊其他的项A的ID呢,需要我们生成一个生成一个,所以呢,哎,在这呢啊,我们来。
06:23
在这呢,我们来生成这个订单号。Order ID就等于DA不是Du us点一个create u ID,哎,我们就调这个函数来生成一个这个UUID作为我们的这个订单号,好诶,那在这里边呢,第一个order的一个ID就是我们的order ID,好,第二个叫create那个time time点一个now。嗯。
07:00
点一个闹,再往下,再往下是这个total。Count,总数量就是我们这个cut里边的一个total count,我们把购物车里边的总数量拿出来,变成我们这个订单里边的total amount cut加一个total amount,最后一个state来一个零。还有一个user的一个ID user的一个ID好保存,诶这是这个订单订单。INT64。啊,这块U的ID。你们这个U来是什么int类型的是吧。这个呢是INT64,所以呢,我还得转一下。INT64。好,这是这个order啊好,那有了order之后呢,我们来将这个订单保存到数据库。
08:09
来,哎,这个do点一个ad。好的好保存进去了,那现在呢,呃,数据库里面将会生成一个订单,生成订单,那么下面呢,该保存这个订单项了,所以啊,来这个保存这个订单项操作诶一下啊,就是这个保存订单项。那保存订单项呢,订单项呢,就是我们购物车里边那些购物项,所以呢,我在这需要获取购物车里边所有的这个购物项。哎,Cut it斯等于cut,点一个cut it斯一个切片,哎,得到所有的勾物项,然后下面的一个便利得到每一个。
09:02
Four。V等于range。得到一个一个的勾物项,啊,得到一个勾物项,好,那得到这个购物项之后呢,在这里边我们就是来创建这个订单项了,创建这个A。Atom。等于and model,点一个A。好,诶来看这里边儿,诶这个需要什么,我们就从这个订单箱里边来拿。好,哎,这里边第一个是A的I的ID是自增的,所以呢,我们不需要给它第二个count,那count呢,哎,就是我们这个V里边这个count点一个count就每个。购物箱里边这个数量有一点,一个count,好,第二个amount。
10:01
就是我们V里边的一个第三个title署名。就是我们V点一个book,点一个title。第四个。作者。V点一个,不点一个。作者。第五个是价格price。V点一个点一个price,好,下一个是这个封面。1PASS v.book点一个1PASS。好,呃,再往下是。对这个ID。就是我们上面的这个AID好保存,诶这是我们这个购物项里边的啊,看什么的A,对诶都给它赋值了,就第一个。
11:02
呃,一共是12345678个八个1234567好啊一个是自增的,好,那创建了这个购物箱之后呢,下面诶,我们来一个是什么保存。保存这个。购物项。哎,就跟我们这个保存订单一样了,哎,保存订单啊,就是将他就是将它这样将购物项。先勾像这个。保存到数据库,我们也写这样的一个主题了啊,怎样的一个勾物项,哎,保存到数据库。好,来用do点一个cut。把这个cut传进去。什么卡台什么。是一个。Other aem看上面那个调错了没啊,Order好,没问题啊,Other item里边是一个other item啊,哎,把它保存进去啊,保进去好,那现在啊,我们这个写到这之后,这个订单跟订单项是能保存进去了,那我还需不需要做一些其他的操作呀?
12:17
对,我是不是得清空购物车对吧,所以呢啊,我们在这个佛这外边啊,外边干什么呢?我需要清空购物车,你结完账购物车呢,我就可以清空了,清空购物车do点一个delete。Delete cut。By cutt ID。这个是不是清购物车的呀。删除购物车啊,里边传的是一个cut,点一个cut ID,根据购物车的ID我们来点开看一下啊。Delete。
13:00
From cuts where ID等于好没问题,诶清购物车之前呢,先把购物箱删了好啊就是它啊就是它好没问题,嗯,来这个清空购物车,那清完之后下边我们来,呃把这个啊写一下什么呢?解析。模板。T等于template,点一个must。里边是templ,点一个files。括号下的。Page下的下的checkout。点HTML好。然后诶来啊,我们看一下这个页面。More and model views pages cut。Check out点开,呃,这里边呢,也有一个欢迎谁谁那这样了啊,我们这个这个呢就不写判断了啊,不跟我们购物车那一块了,这个直接,哎,我这个去结账的时候呢,我现在呢已经是登录了,所以呢,我这块就为了简单,我把这个给删了啊,直接就是登录状态,这直接显示了这个购物车把这些超音先改了啊购物车这个是啥,Get一个cut iner,然后呢,注销我们的是logout,把这地址先改正确。
14:30
返回。那是一个慢。好,那这块呢,这块我还得显示一下这个。欢迎谁谁谁用户名还得要还有这个订单号,哎订单号,这样我们把这个删掉,我们整一个SPA。然后那个订单号。强调一下是吧,让它变个颜色啊等等啊,Style color。Red红色,好,这里搬砖,我们来杠杠杠杠。点的一个ID。
15:03
好呃的ID,那这样啊,我这里边要显示这个订单号,也就最终呢,你要把这个订单号给我显应过来就行了,但是呢,我们这块呢,还得有有这个欢迎谁谁谁有这个用户名,所以呢,哎,我们这样啊,我们把这个们之前的session呢,我们再想应过来一个session审就可以了,我们之前的session model。Session session点开它这里边儿再整一个的一个ID string。然后啊,这样,我们这个生成订单号之后,在这一块我干什么呢?清空购物车,哎,我把这个订单号设置到这个session里边。我们订单号要显示啊,设置到这个session中来,Session。点一个ID。等于我们的A的一个ID,好,然后下面呢,直行的时候,直行T点一个。
16:09
Cute w。好显象过去,那这时候呢,赛事,因为赛十里边啊,我们需要有这个u u name,它有U的name,现在也有order ID了,所以呢,我在这块啊好啊来到这来到这一块呢,这块就是一个大括号,大括号点user一个name,我们看是不是个大写啊。Username model session username or ID,好,没问题啊,没问题,就这块啊,欢迎谁谁谁,然后下边就是您的订单号了,哎,您的订单已结算,订单号为什么什么,哎,这个订单号我的ID就能显示出来了,这块啊,这块呢,这个清空购物车,除了清空购物车之外,我还需不需要干其他事情啊?你看我们这节课写的获取购物车,然后呢,创建订单,插入订单,这个得到购物车里边所有的购物项,然后呢,插入订单项,那你把这个都结账了,我的图库的库存要不要更新呢?
17:19
对吧,所以这块啊,在这个four里边呢,你把订单项你插入进去之后,你这本图书买了多少本,是不是库存得减多少本,销量是不是得加多少本,对吧?所以这块啊,哎,这块还得干什么呢?所以大家来什么呢?更新当前图书当前购物项。因为这是从购物项保存到了订单项嘛,更新当前购物项中图出的这个库存和销量,诶这个不要忘了,那好,那我们现在呢,得先得到这个book啊,Book book。
18:03
逗号。等于V点一个book。这好像不用这个是吧。好哎,得到一个book。那得到这个book之后呢,下边诶,我们来这个设置这个book的,它里边的这个库存和销量,Book点一个一个什么呢?Sales,这是之前的销量,就等于book点一个sales销量是不是应该加上我现在的一个count。哎,对不对啊。是不是这样啊,之前比如这个卖了100本,我现在呢,要去结账了,我假设我这个书呢,又买了,又买了五本,那不是100加五嘛,销量库存是减它对吧,库存是减它啊,所以这块啊,Book sales v点一个count啊,V点一个count,就是你把这个销量呢,在之前的基础上再加上你现在。
19:01
结账的时候买的这个数的一个数量,这是这个库存,这是这个销量,那么这个库存正好相反,Stock就等于book点一个stock。减去现在的一个数量V点一个count。好哎,就是这样啊,就是这样,这个销量呢,加加上这个数量,哎,库存呢,减去这个数量,然后下面来更新读书。也就说更新这个图书的一个信息,那这个呢,之前好像我们写过这样的一个函数,哎,我们看一下有没有啊DAO点一个update book,好油。Update一个。不可count。哎,应该是book啊,不可看的应该是购物车里边那个方法,来里边传一个book,诶把这个book传进去,我们来点开这个。这块咋了,INT64。
20:02
这是T,哎呀,又得转。括号。不是错了,Int。转成int。我们之前创建book的时候啊,那块数量定义的是这个int。保存好,诶现在呢,我们更新图书的信息,我们来点开看一下是不是更新图书,Update book,根据图书的ID更新突出信息,Update book set title author什么什么什么啊好,现在我们的销量跟库存变了,其他的都没变好啊,就是它,哎就它更新图出的信息,好诶这是我们这个整个的啊,去结账的时候里边涉及到的这一些步骤。保存订单,保存订单项这个诶你可能能想到啊,但是呢,这块不要忘了,诶清空购物车可能你也可以想到,那是更新图的库存和销量这块,哎这块哎不要这个把这个给忽略了啊好诶写完之后呢,我们来ctrl c go build。慢点,Go。
21:07
慢点,一个exe好回来。购物车。来看啊,我们现在这个继续购物,看一下解忧杂货店编程和中国哲学者的库存和销量都是100,都是100来,我们点购物车现在要去结账了。点去结账走好啊,生成了订单号04520,哎呀,这个号挺好的是吧。来啊,点开我们看一下这个。有没有这个订单啊。哎,我们那个时间忘忘处理了啊,一会我们再来处理这个others。打开。哎,来啊,就是这个啊,就是这个啊,这个9月11号的这个14:20下的单啊,14:20加八就行了啊来呃,刷新一下啊,一共买了三本书,买了三本书,看这三本书是什么,点开订单项往下翻,中国哲学史好哎,属于他的好没问题啊,没问题好最主要是下面我们去首页看一下这个图书的库存和销量返回。
22:16
是不是减了一本对吧?呃,库存减了一本,销量加了一本,诶好诶没问题啊没问题,这是我们这个啊这个呃,去结账去结账这个功能我们实现了,好啊,那下面啊,你把这个呢,诶来写一下。
我来说两句