00:00
接着我们来写一下这个service层啊,Service层,Service层呢,同样是先有接口,再有实现类。嗯,我们找到service里面去new,一个叫order service,但它是接口interface来,这个接口就一个方法,Public string叫做create order,哎,生成订单,那么我们说过这里呢,要传进来的参数是card和intake usual ID是吧?哎,Usual ID,好,那么我们写一下这个实现。来。注意看啊,All the service。那么它实现all的。Service这个接口,那么把这个方法呀,咱们也都实现一下这个方法嘛,好,那么这个方法里面大家请注意看一下,我们刚刚说了,在这个方法的时候,它是不是需要两个DA,所以你把两个DA放进来。
01:10
Private DA。等于六的DA,好,还有的item。等于6O的I。DA,好了,那这里面。怎么去实现啊,大家注意看着哈,我们说了他要做两个操作,一个是保存订单,一个是保存订单项,那么订单和订单项啊,一定是先有订单才有订单项的啊,否则这个订单项保存进去的时候,需要那个订单号,就就那个外界约束就插不进去了啊,先保存订单。那来吧,按照这样一个说法,咱就先保存订单,我先给他创建一个订单对象。
02:05
啊,等于6O的,大家注意看订单对象,它需要一个O的ID是吧?呃,咱们就先来一个O的ID的变量,先写的时间呢,当前时间呢,肯定的,那价格呢,你想想价格就是购物车的这个总价呀,你结算的时候是按照购物车来结账的呀,哎,然后状态,状态默认就是零。订单状态默认是零,然后user ID呢,就是传进来这个user ID的值,那么我们发现对于订单而言,其实它就缺一个订单号是吧?订单号咱们写一下叫order ID,那么order ID它怎么生成,大家看啊,这是订订单号,那么订单号有什么要求吗?就是唯一性是吧?怎么样去确保这个唯一呢?大家看时间戳是唯一的。
03:01
时间戳是唯一的,哎,那么这里呢,咱们等于时间戳这个值。叫做system点啊,可million是吧,加上这个值,这时抽不是唯一的吗?但是光有时间抽就唯一的吗?它也不是,为什么像双11那天大家都把商品啊放到购物车里面,好多人都等着双十一零点零分那天狂点什么结账,那那个时候呢,大家看是同一时间并发过来的,所以呢会出现时间戳,也会出现重复的情况,怎么办?这个时候啊,你可以和这个usual ID做一下上架,因为一般情况下,一个这个淘宝用户啊,他结账的时候,他只能结一个吧,诶它不能结多个是吧?所以呢,这个时候加上时间桌,加上用户ID,它就是唯一的,诶就是唯一的啊这里呢,就是创建一个订单对象,然后呢,咱不是要把它保存吗?All的dao.c order的咱们保存一下。
04:07
保存订单,那么保存好了订单之后啊,还要保存订单项,那么订单项其实是什么东西?大家请看一下哈,那这是购物车,我点击结账,他就开始生成订单,那么购物车里的这些商品项,那其实就是什么订单项吗?这能理解吗?这不其实就是订单项吗?哎,所以我们要把购物车里面每一个cut的item转成all item。都转过来,我来看他怎么做哈,首先你得便利我们说。便利购物车中每一个商品项转化成为订单项保存到数据库,就这样子,那怎么做?那就便利一下吧,cut.get I,哎呀,It。
05:13
Get it大家注意看到哈点负循环有吗?啊,他只有这个是吧,那咱们手动来吧,手动来。别着急啊,负循环,然后这个地方是map。点entry,然后每个都是什么,是inte和cut at,这个intake大写,然后这个地方是entry。啊,然后这边是什么cut.get items.entry set遍历一下,然后这里面大家看我们取得每一个cut item啊cut item cut item等于什么东西,N垂点get value取出来,那取出来之后每一个cut item呢,都是订单项,那怎么办?All的艾草。
06:21
没一个O的it层,诶给他转过来,ID只是自终端,不管它,那么商品名称呢,其实就是购物车里的商品名称,这是一样的,数量呢,那就还是购物车里的这个数量,哎,单价呢,Cut item.get price,那么总价呢,就是cut。点get total price。还有订单号,订单号不就是O的ID吗?完了是吧,这就是一个什么订单项,那订单项你也得保存呢,来,O item do safe item来保存一下。
07:08
好,这个呢,咱们说获取每一个呃,购物车中的商品项,然后。转化。为每一个订单项下面呢,保存保存订单。巷道数据库这不就有了吗?对吧,那一般情况下大家注意啊,我们结账的时候,我们经常会说一个词叫做清空购物车是吧,也就是说你结账之后,你购物车的商品是不是买了付钱了,那付钱之后呢,购物车也要清空。叫做卡点clean操作啊,清空购物车,新购购物车,好这咱们了解一下,那这个返回值是什么?返回的是订单号,因为原来要用啊返回的订单号好了。
08:10
这就是生成订单,这就是生成订单,那么我们写好之后啊,来测试一下哈,呃,我们找到这个订单的接口,CTRL加设加T。诶,CTRL是加T好,然后把它放到这个测试的这个包下啊,勾选到这个测试的方法啊,我们勾选上,呃,然后呢,我们去找那个。购物车,哎。找什么东西呢?咱们就拿这一段,这不就购物车吗,我复制。复制完了以后,我就放在这里啊,这就购物车,然后呢,我需要一个all service,我给他创建一下all service,然后啊大家看一下啊all service.create我把购物车放进来是吧,然后订单,呃,用户呢,是一。
09:09
一我打一下这个订单号啊,我们看看一会呢,是不是跟数据库一样。我们说订单号是好,就这样子哈,那么我们就测试一下,咱们就拿这个测。呃,我把数据库中这些数据啊,先都删了哈,记住啊,一定要先删订单项再删订单啊,如果你先删了订单的话,他不让你删的,因为你订单上还有的引用了啊,引用好没问题,现在都删了,那么我们指向这个测试啊走你。稍等啊,来看订单号数返回这个打勾了说明没问题,那么我们看看这边吧,首先订单里面有一个订单了是吧,订单项里面是不是有这个商品了。就是咱们你看入门到精通数学构的算法,不就是咱们上面这些数据吗?那这个订单号你也可以对比一下啊,这订单号呢,你可以复制出来在这里,然后呃,订单里面复制出来。
10:11
对比一样吧,啊,没啥问题,好了,这就是service层。啊,设备是从。
我来说两句