00:00
大家好,我是学习园地的特约讲师高国峰,咱们做完了购物车,又做完了地址管理,那我们就可以生成订单了,因为订单我们一定得带着这个地址信息过去的,这样的话我们才能够在商家发货的时候才知道往哪个位置去发货,对不对,所以呢,咱们在做完购物车在做订单之前,咱们做了一个地址管理,这样的话我们就可以有一个默认的地址,然后呢,和购物车里边选中的商品生成订单,生成订单的之后呢,我们就可以怎么的点击这个创建订单,创建订单之后。那我们就可以支付,然后呢,呃,到这个订单状态这块,就可以完成我们的一个购物流程了,那商家发货对吧,然后你这边收到货,确认订单交易完成,那每个订单不管是待付款的还是已付款的,还是等待发货的交易完成的,那这些呢,都可以查看详情,然后可以去看这些状态,这是我们订单管理的一个流程,那咱一步一步去完成,那这节课呢,咱们首先完成的,因为订单管理咱们所有的都是通过后端接口去完成的,对吧,也不用购物车把选择商品传到我们订单这里边,接口就报完成了,因为我们改的把后端的数据库表作为我们的状态去管理的,那这里边儿呢,也得订单呢,也是用多个表去存,比如说订单列表,在订单列表里边又存了订单详情的数据,很复杂的一个数据,也就是我们这里在整个这个项目里边,订单管理的表是最复杂的,因为它得用多个表去存数据,然后咱们在前端呢,还需要一起把所有数据都获获取过来,当然了,如果接口写的好的话,这些呢,你的工作就会变得很容易,如果接口写的很复杂的话,你就得需要通过购物车。
01:28
用户的ID,订单的ID,商品的ID,这些ID关联去获取,但是呢,我们的接口都帮我们实现了这些,那我们就变得很容易,那这节课我们就需要通过我们的接口。呃,先把这个接封装的接口先都写完,和我们写地址一样,不然的话我们得用到一个写一个再回去会流程大家会感觉乱,所以呢,你看我们订单有订单预览对吧?这里面有提交订单有呃订单详情,有订单列表,有物流详情对吧?这里边直接能获取到物流这个信息,然后有确认收货。
02:00
然后呢,还有呃,评价商品,商品订单里边的商品评价,但商品评价给大家留的是作业,可以自己去写的,其他的咱就不需要了,所以呢,咱们想把所有的网络封装做完。嗯,地址这些我们先都关掉,不需要的都关掉,地址去掉,嗯,这个个人信息这块现在也不需要了。路由咱们先留着地址去掉这个去掉包车,这个咱们也去掉,那些都需掉了,那我们封装咱们所有的,你看能封装了这么多网络系统,每个页面都需要,对不对?这里边需要封装订单的网络请求,那我们就叫做订单or or dr.DS。订单的意思对吧,那在这里边肯定我们先要引入谁啊,引入我们封装的那个方法,Request网络请求的方法,然后呢,主要我们从。当前目录里边的,快把这个拿过来,然后呢,我们e port,呃。导出你比如说呃,我们创建订单GRRT,按流程,比如说先创建订单or DR。
03:01
创建订单,那创建订单呢,我们一定得给他传订单需要的一个参数,对不对,Pers pas,并写做参数,然后呢,呃,我们返回。Re EQ,然后里边标题方法,这里边我们全配置,通常里边就咱们写三项多了不写ul,然后呃,Met方法met hod。嗯。这方法咱们现在也不写,因为不一定是还是盖对不对,PMS参数这里边,然后这些嗯,创建。创建应该。说法对啊,创建订单,订单这个定是这个定吗?无所谓了,创建单咱们需要加很多咱们这个来啊。先复制这么几个,然后不需要咱们再删掉他创建订单的时候,我们需要找我们的接口,你看,呃,这个创建订单。
04:06
直接呢,会提交到我们这里边1POS提交,当然必须我们得是登录的用户授权的对不对,然后需要提交的传的参数,创建订单的时候,你肯定得需要什么传递这个订单的地址才可以。传递订单的地址。不是存订单地址啊,就是你的用户的地址,这样的话订单里边才能绑定你是哪个用户的地址才可以啊。默认的还缺什么,那我就说那后台接口他知道这用户身份了,根据这用户不就能找到这个嘛,对吧,那这个地方呢,咱们通过这个获取,呃是可以逻辑上是可以实现的,但是我们这块获取的话,能更容易的操作,具体的默认的是哪个地址,是这样的一个情况,然后呢,返回的参数就给我们返回这么多信息。所以我们这个创建订单还是比较容易的,那我们这个地址,我们接口地址一定不要写错,创建订单放在这块方法呢,我们是post对吧,所以我们这块给写上post,那参数呢,就是一个地址,那我们直接按照这个模式,直接传一个地址放在这就行了,对吧?然后他需要的地址的就是一个ID嘛,对吧,就是一个ID,那咱们直接到时候传一个ID过来就行了,得用这个对象的放,这得用对象的格式去传啊地址啊,这样的话咱们能灵活一些,那创建订单有一个特点,这里边除了这个本身给我们返回这个创建订单的一些信息之外,状态成功,那这个订单里边接口里边还干嘛呢?你看他也会做一些验证,对吧,收货地址不能为空,这里边肯定是判断了,那如果创建成功,它还有一个功能,他会把我们。
05:37
对应的购物车里边已经形成订单的商品,在购物车里边会把它去掉,有这样的一个功能啊,这点大家要知道就不用说,像我们通常写商城接口没有给我们加的功能,那我们通常怎么做呢?就创建订单,把购物车对应的商品一一删除,对吧?所以接口写的好,前边我们做的写的就非常的容易。那创建订单,那我们还需要有什么呢?那。啊,还需要比如说得到订单的详情啊,获取获取订单详情。
06:07
详情或体间详情,那我们这块加一个方法改成,改成我们叫做什么叫做get order,然后呃详情P呃p viw获取那个呃每个订单的视图啊,获取每个订单的视视图。应该是不。嗯。视图是这样,那我们看一下对应的,呃,接口是哪个。大家过去订单,呃,详情这个。呃,不是这个这个订单的视图订单预览啊,订单预览,因为我们先创建的话,得有这个视图预览,对吧,就像我们这里边做的这个第一步看到了吧,先看一下订单什么样的,对吧,这是订单预览,也就是订单的。120。放在这吧。然后我们看一下接口是这个,然后呢,传递的方法是get。
07:02
别复制错地址啊,你少一个字母,咱们有可能怎么着都不好用对吧,那他也不用参数也不用什么的,因为是盖的方法请求的,这样的话,当前用户的订单形成了刚形成的订单预览,我们在这里边通过这个方法。就可以获取到。就完事了,那获取了这个之后,那订单我们是不是得支付,有一个支付对不对,还有呢,支付,然后我们还可以获取各种支付的状态,所以我们还得做一个订单的,呃,支付。支付这是这个订单的,你看支付的呃状态,那我们还有订单获取二维码,也就是订单支付。因为你不支付的话,这个订单嗯,相当于没花钱对不对,没花钱呢,那用商家就不会给你发货,所以呢,咱得有一个这样过程,那咱们现在支付就获取二维码,然后我们用淘宝或者是嗯其他的去获取,你看那支付的时候,这里边需要传的使用盖的方法,然后呢。呃,支付盖的方法需要授权,然后这个参数呢,是订单的ID,我们支付哪个订单,这样的话,我们形成二维码鼠标一那个用用手机一扫码的时候,就会获取这个商品的详细的信息,有多少钱呢,对吧,就购买这样的一个情况。
08:14
所以我们复制一下这个,然后呢,参数需要一个订单的ID,先把这几个叫订单预览,然后这个是订单呃支付。支付。支付,那支付订单支付呢,那我们教一个方法,就是支付订单就是pay pay。就是这个,然后呢,接口既然里边有一个变量,那我们就用什么,用模板字符串来处理,模板字符串来处理,那需要传递的就是一个订单的ID,那我们这块传一个order。Or DR,然后我们只要把这块变成我们的变量,这样的话,我们传递的变量就会把它订单过来给我们支付,然后获取支付的微信和支付宝的这的信息接口里边是连接的支付和支付宝那些东西咱们都不用管,咱只要获取二维码,咱们就可以去支付了,所以这块就是获取什么,对于咱前端来说就是获取二维码,至至于怎么跟微信和支付宝去关联的这个接口,那是后端的事儿,他只要获取完之后,对吧,根据商品信息形成这样的一个二维码发给我们,那我们就可以展示给用户,让用户支付。
09:18
就可以了,那支付这样呢,我们因为只是获取的是二维码,所以呢,我们这里边用的方法就是get,然后参数呢,直接用这个传递,我们看一下需不需要别的别的参数。呃,不需要别的参数,那再有呢,就需要参数的就是可以是呃类型对吧,请求参数可以是类型,你是支付宝啊,还是这个默认两个的都获,那咱就两个都获取,多加其他的参数啊,你可以单独获取支付宝或者是单独的微信都是可以啊。来获取一下吧,这里边儿咱们。嗯,加一个第二个参数,呃或者阿尔法,比如说p RA Ms,因为它是通过参数传递的嘛,对吧,然后呃是钙的方法,那ras放在这块,因为它写支构,把功能给它写全的就可以了,或者二维码,然后呢,咱们除了这个,那你还可以怎么着,还有一个呃,查询支付状态,咱们也得用。
10:11
你看扫码之后,那允许请求API就订单状态改变为二手就支付成功了状态,状态呢有这么几个,你获取到新订单是一,支付完成是二,已发货是三,你确认收货是四,已过期是五,接入我们评更多,当然了交易完成了或者什么的,你可以在接口里边再加其他的值。咱这里边先这几个人,那就用这几个值吧,按照接口的顺序去写,不然的话咱还得改接口。然后后加二维码这块是订单的状态。我们先把这个。拿过来买这款拿过来,然后。嗯。12345。整形12345。嗯。在这以后订单的。订单的状态。
11:00
嗯,放进来洗澡。反过来。然后我们把这块方法名改成嗯,是pay支付订单的什么状态,Status,那需要传递的跟上面的参数一样,抛发DR压对吧,那前边有一样就把这个拿过来。日期。拿过来,但是后边的它不是支付了,后边是呃,Status状态嘛,对吧,同样存这个参数,那我们不需要别的那获取的,呃方法呢,那就是钙的方法,然后获取状态的值。假如说我们想得到这个状态,通过这个就可以了,那获取完状态的话,那我们就得得到订单,咱们还得得到,因为用户有可能下了很多订单,咱们还得怎么着获取订单。订单列表,嗯,列表获取订单列表,那咱们就是。Get订单列表,嗯。
12:04
列表,然后我们需要存一个参数,看一下获取订单列表,找一下订单列表这块。方法是get,然后通过这个获取接口是这个,嗯,这里边可以我们请求参数获取列表的时候,你看啊,这个里边可以会,因为订单有很多,您可以做分页的,然后加载下拉加载更多,所以呢可以加分页的,然后呢,可以按标题模糊搜索的,就是查询订单,根据订单标题去模糊搜索的,然后呢,订单的状态,这还有订单的状态。列表里边你可以是查询订单的是呃,是支付的订单,还是已发货的订单,还是收货的订单,还是过期订单,都可以同过给查询对吧,这三个参数,但是咱这个某查询的咱们用不到,因为咱们刚开始都没那么多,那你可以加上这个,这个比较重要,英可录的前面咱们也用过这个,比如说购物车对吧,咱们可包含这个数据,那他这里边呢,你如果默认的话,它是不获取什么的,不获取用户信息和商品信息的,如果你想获取商品信息可录的,对吧,这样的话就是拿到订单之后,能够获取这个订单的什么订单中的。
13:07
不然的话,只有商品的ID,那你可以获取到这个商品的详情信息,根据商品表关联的可以获取到当前用户的所有信息,你比如说地址如果在用户信息里边,那你可以在这里边获取,对吧,还可以获取到订单的详情信息,那如果想在订单详情里边获取。商品数据,而不想在某个订单里边会取商品进去的话,你可以在后面加点good。这是咱们。呃,写接口的时候,后来写接口的时候经常采用的一种模式啊,就是关联数据的时候,是不是让他以子数组的形式展示,还是并行展示,一般都以子数据形式展示,比如说在这个订单详情下边,假如说有商品信息,你就点数的字,那咱们咱们获取接口的时候数据的时候,就会把这个商品的信息以子数式加过来,那后期用的时候会给大家演示一下,总之它有这么多参数都可以去使用,那在调用的时候我们再再使用吧。我们先把这个写上,根据他的请求数据我们加过来啊。获取订单列表,那ul就是直接这个没什么好说的,很简单对吧,然后呢,我们方法呢,那就是盖的方法,当然可以写可不写对吧?参数就看我们传递的时候,你可以这样,你可以include,呃传递这里边有很多啊,比如说有呃配置一个对象的格式这样。
14:19
嗯,配置比如说一获取一页了,对吧,然后呢,里边有什么。能看完就忘,呃状态你可以查询状态TTS状态,比如说是二的查找已支付完的对吧?你可以参数这么传进来,那比如说我想查询这个订单状态列表的时候,在列表里边用到商品信息,那我就可以include,这里边加上gods带商品信息,带用户信息对吧?带详情信息,那就是or DR详情de对吧?详情如果详情里边让他带商品信息或这样去做,那这个就不带了。可以这么去做,这几种方式去传的参数。就是得到,呃,订单咱们会用得到订单列表,那除了订单得到订单列表,咱们还需要什么,还需要像这个订单详情对不对,订单详情数据。
15:07
呃,获取商品列表,然后订单详情还有。How。订单。呃,详情。详情咱们都给他写完它吧,这样的话咱们用的时候就方便了,订单详情那我们就是通过。对。呃,Get订单详情detal得到订详情,当然了,得到订详情一定是存一个什么订单的ID的,对吧,一经存一个订单ID的,然后我们这块肯定是模板字符串,因为有存ID嘛,那方法的时候,嗯方法诶这里边好像不需要这样接口看啊接口接口接口。要这些就这些。这个这个去掉。你包含什么信息,中间用逗号隔开就行,用户的信息,但是用户信息咱们用不上对吧,你就可以不加。
16:00
订单详情,然后呢,订单详情咱们肯定也是用什么用盖的方法,对不对,我们找到这个订单详情的接口,详情接口。啊,这里边啊,它也是包含这么多信息啊,是这样的,这两个。嗯,通过这个获取。拿过来。在这块拿过来前面加个刀,你传个订单ID就可以。获取到了,你看需要一个订单ID,然后其他的参数这会儿。那我们再过来再看一下这啊。宁可录的包含这些参数,当然如果你不想通过对象的方式传,对吧,想在这个里边,呃,传递这个参数的信息,或者是你可以固定写子,假如说固定写信息不想通过参数怎么传的话,那你在这个位置,当然方法肯定是盖的方法了,对不对。那你可以在这块给他写死他也就是。
17:01
假如说我们这个订单详情,我们就固定要什么东西,那么就in include包含对吧,包含什么呢?比如说我们要用户信息,那要啊肯定是订单详情或DR订单的dets,订单详情是这个加不加S。呃,加S,然后订单详情里边,让他包含商品数据或这样的订单详情里边,咱们肯定需要具体商品信息啊,你得知道他买的什么商品列出来啊,对吧,所以咱可以直接这么讲,这样的话咱们参数就不用传了,如果像这个获取的话,你可参给他存,传完也形成这样的格式,对吧,他才可以用。是这样的一个情况,检查一下看没有问题订单,呃,订单详情。那除了订单详情之后之外呢,我们还可以怎么办,我们还可以确认订单,也就是呃,提交这个订单的一个状态,我们比如说确认。确认收货对吧,像这种确认订单,然后用pat去提交订单,行行,其他都是get啊,我们获取到这个方法,当然我们在这块也需要。
18:02
复制一单,刚才没复制过,然后这边写上确认订单。确认订单。确认订单,我们因为订单这也比较复杂的拿过来。然后这个是模板字符串里边我们可以加A。加上变量。加啊。嗯。你过来。怎么复制下?粘过来,然后把这个加上一个倒弧就变成了变量了,然后呢,确认订单,它使用的方法是什么呢?PA PA ch提交的对吧,然后需不需要确认,应该不用加参数,只要传个订单ID就行了,其他参数不用对吧,那我们呃。把这个方法名我们先改掉,确认订单,确认订单我们要提交Co确认con I。IM确认啊,确认订单,然后里边我们传一个for DR,这样的话,订单ID这块就会把那ID传过来,然后pass方法,那不需要参数,那我们就把这个去掉就行了,确认订单。
19:13
应该差不多吧,咱们看一下还有什么方法,除了确定订单还有什么,比如说呃。这个物流详情。物流详情,你比如说用了哪些,呃。这里边是默认的啊,你比如这个得是商家咱们获取,但是咱们前端呢,可以获取到这个物流信息,比如商家你支付完成之后,商家在发货的时候,他选择哪个物流。您可以查询这个物流的状态,对吧,所以呢,如果你用的话,也可以在这里边去加,嗯,当然咱提交订单不用咱们操作,咱只是获取查询一下我的商品,商家已经发货了,他又买的物流,能查询物流状态之类的,是这意思啊,然后是啊获取啊物流。信息,获取物流信息。看一下这个。
20:01
拿过来。复制一下。按照这个复制到了获取物流信息是个get方法,Get方法。拿这个吧。热心过来。然后把确认订单这块咱们改成嗯,物流信息。Ex,嗯,查看物流信息吧,查看ew等会查看这个,然后物流ex p res,查看物流信息,查一个订单,查一个订单之后,那我们就可以把这个物流信息。放在这个位置,千万别忘加到了弧才能解析这个电量,然后呢,呃,方法查看吧,应该是钙的方法,你看盖的方法,授权之后就可以要把这个去掉。如果想加入物流信息的话,你查这个就是商家发货后台会选择使用哪个物流,那你现在就可在订单详情上发货的状态上面,你就可以看到用的是哪个订单信息啊。其他的应该不用了,够我们用了啊,那不够用的话,你再根据你的流程对吧,按这个接口里边提供的应该是差不多全的,如果接口不全的话,那你的流程里边有需要,那你就得跟后端开发人员去联系,然后在接口里边再加一些功能就可以了。
21:16
这就是我们封装的订单的信息,如果有错误,我们在用的时候再找好吧。好,这节课我们就先。
我来说两句