00:00
咱们下面啊,完成生成订单接口,这个最终调用,把这流程我们最终写出来,那咱们回到我们那个O里边,我先把它打开。在order。CTRL里边生成订单,这是它的service,咱刚才写了接口,包括实现类,那我们写实现类,那怎么做的,按照刚才分析的过程啊,首先我们先创建两个interface,针对我们的edu,还有这个U3。那我给它起个名字,比如我叫。在client里边,我创建两个interface。比如说第一个这是咱们的课程呢,我就叫edu。可烂。这是第一个,然后再创建第二个针对咱们那个用户的,这个我叫U3头。这两个我们先创建,然后创建之后在这个接口上边,咱要指定它要调的服务的名字,那我先指定edu,我先来一个。
01:09
Comment,然后加上一个注解,叫这个fit,然后各位记住啊,在里边加上你调的服务的名字,比如咱们edu调的肯定是service edu这个模块。然后写一下啊,它就是service。杠一丢掉这个模块,在里边写方法,这方法咱一块写啊,然后这个写完之后再写这个U3头里边同样写上你这个注解,然后加上你调的服务名字,咱调的是service u3。注意这个不要写错啊,然后写完之后,咱在这个interfe中把你调的接口地址给他写过来,咱们写我之前说过啊,不需要各位去敲,咱直接复制就可以了,那我先复制edu。
02:00
把这打开啊,咱是写到了这个位置。Front,然后你就是把这个方法直接就复制过来就可以了,我把这个复制到我们的。Edu种。然后复制之后,咱改几个地方,第一个地方把它那个地址改成你接口的完整地址,就在前面这个地址,把这个。夹过来。然后改完之后,我这里也说过啊,如果你做远程调用的时候,这个注解后面必须要加个参数,不加参数会有问题,我加上这个ID,这样的话可以了啊,这是edu中定义,你注意啊,返回对象是咱们在common中统一定的对象,让两个都返回同一个对象。啊,这是写的这个接口啊,然后写完之后,咱看那个U3,我把U3打开。这个位置在里边,咱复制。这个接口根据用户ID获取用户信息。
03:00
这个拿过来啊,然后拿出来之后按照同样的方式,咱快速改一下啊。首先加上它那个路径。这个路径。Edu member。拿回来之后,在这个注解后面,咱也是加上这么一个参数ID。这样的话,把这个我们就做到了啊,在里边创建两个接口,并且指定它那个调的接口的地址。这步完成了啊,然后完成之后呢,最后再来写这个最终的调用过程,就是咱们把那个最终生成订单给他做个实现,就是在这里边我们最后来写一下啊。那咱来实现啊,首先因为你要调那两个interface,所以咱把那两interface肯定先给它注入进来。我写个outwa,第一个叫edu client啊,这是第一个interface,然后第二个out private,这个叫做u center。
04:04
U center client这两个我们现在都注入了,然后注入之后在相方法中咱们把这过程最终实验出来。那咱们啊,给他写一下啊。首先我们先通过远程调用,根据用户ID把信息先得到,那咱们调这个啊,因为是用户的嘛,在这里边咱刚才的方法这个get user info order里边传ID,那就是它。把名字改一下啊,我叫这个member ID,然后它返回的是咱们这个对象,是咱们comment的对象,除了它之外,再调这个edu可袋里边这个方法,Get Co info order,把课程ID传进去,返回的是咱们comment中这个。Co info的对象,所以这样的话,这个数据我们应该都有了,然后数据都有之后呢,咱下面做的是从里面把值取出来,最终加到数据库就可以了,就最终做个添加就能实现。
05:08
那添加的话呢,在里边咱肯定是调这个base map中有一个叫啊,应该叫音色的方法。大家看啊,这方法中是不是传个order对象啊,那我们怎么做呢?咱是不是就给它很简单方式,我们是不是就是new个对象,然后向这个new的O的对象中把值都给它塞进去,最终是不是就可以了啊,就这么来做的啊,那当然写一下啊。就是咱们创建。对象。然后向这个order对象里边设置咱们需要这个数据,最后调方法,我们最终给它做添加,然后添加之后最终返回那个订单,那个订单号啊把这需返回。这个注释啊,返回订单号,那咱们下面我们就来写一下最终代码啊,就是new对象往里面塞值就可以了,那来个order。
06:07
注意别写错啊,咱是用我们当前类中的order,或者说你怕错的话,把名字改一下,不叫orders。这是order啊,我就叫这个了啊,等于new上一个order,然后咱们像order中设置里面这些值,里面有很多值,咱一个来设置啊,比如说我们设置。第一个啊,咱找一个最主要的这个值。叫O的no,这个值是什么呢?它就表示订单号的这个值,但是订单号咱现在跟ID不是一个值,咱是单独的另外一个值啊,就是这张图上那订单号是订单号IDID2个不一样,而订单号什么意思呢?就是你按照随机生成一个唯一一个值可以的,这个值咱们可以用个UID都可以做到啊,这个只要是随机唯一的就可以。那这订单号这个值呢,我在今天的源码里边呢,给大家写了一个工具类,用工具类是不是可以,或者你用ID都一样啊,就是这个类,那我现在把这类咱就直接复制过来,就生成订单这个。
07:14
订单号的工具类,我就放到咱这里边写个包叫us。然后把这个类我们分过来。就是它啊,就我单独写一个用UID一样,然后这这里边我就这么生成的,根据你的时间,还有这个规则随机数把这值生成,就是这里边包含我们当前的时间啊,也就是一个随机的一个值。这么一个简单规则啊,然后这个写完之后,在里边我们就直接用一下,用这个叫order。U啊,应该叫这个名字啊,是O的no。No。Us里边这个方法叫get o o,这样的话用工具类咱把订单号生成啊,这是第一个值,然后下面值咱就依次设置就可以了。order.set有一个叫。
08:08
Co ID啊,就是我们的课程ID,也就是他。然后下面依次都是往里边塞,就完全可以做到啊,那这个代码我从课件中咱就复制一下啊,你都是固定的,就是往里面set值就可以了。咱给他set一下啊,找到这个代码应该是在呃这个位置啊,就是这些,我把这拿过来,咱给它快速改一下啊,改成我们当前这个名字就可以了,然后咱们也是一个去看一下啊。大家看啊,这个是课程ID,我都加上注释啊。ID,然后下面有你那个课程的标题和课程封面,那咱通过课程取下。Course info order,这是课程标题,课程封面,然后这是里边那个讲师。讲师,我们叫teacher name啊,讲师名称,这是那个课程的价格。
09:04
然后这是我们的就是用户ID,用户ID下面有用户的昵称,包括手机号都取出来,然后除了这个之外呢,最后还有这两个值,这两值特别说一下啊,大家看啊,一个叫CS,一个叫pay type。那我们看表里边啊,找这个订单表,看这样纸。对吧,这里写到这两只啊,这个配type表示你的支付类型,一代表微信,二代表支付宝,咱目前就是微信,所以这个值默认就是一。就是你的支付类型。我们目前是微信啊,它就是一,然后还有一个叫CS,是你那个支付状态。也就是订单生之后,咱订单肯定要支付,而第一次生成肯定是未支付,所以咱默认值是零,当你支付之后,这值就是一啊,这个叫订单状态,零代表未支付,一代表应支付,咱第一次默认肯定是一个零,就是未支付状态。
10:08
这个啊,两个值然后都写完之后,最后咱们把这O就加到我们这个里面去,最终他把这数据就可以最终加到数据库啊,这样的话订单可以生成,然后生成订单之后在里边呢,咱需要把那个订单号返回,所以咱们返回一下啊。用o.get这个那就是o no。这样的话就可以了啊,在这时候我们写的这个方法啊,大家注意有一个小问题啊,你这里边返回的话,因为咱是放到了order里边的,你不要在里边啊,把这代码再这么写一下。就各位不要这么写。B肯定不对啊,为什么不对呢?你这里边经行一次,它生一个值,放到了O中去,然后你再定一次是不是值,跟前面肯定是不一样,因为每次都不同,所以咱做法就是指从order中把直接取出来,就你放那个纸是什么,那我就返回正值。
11:05
这个啊,咱们就最终写完了啊,关于这个订单生成的这么一个接口,主要就是。这么一个过程啊,也就是通过远程调用得到用户信息,得到课程信息,把信息取出来,最终加到数据库,建完数据库之后返回咱那个就是订单的一个订单号。我们就做到了啊。这么一段。基本代码。我把这个给大家截一下啊。就这个CTRL部分啊,当然wis我就不结了啊,在里边我们都说到了啊。所以现在咱就把我们的订单或者说支付中的第一个接口完成了,这个接口就是生成订单的接口啊,主要按照这个流程我们就先出来了,各位把这个能给他做到啊,包括里边涉及到了远程调用。这个流程啊。
12:00
然后这个做到之后啊,咱最后加上页面,我们再统一测试啊,咱把接口先写完,最后再完整测试,因为这个测试中啊,有一个小问题,就是request子也要像header中设置,咱用swaer不好测试比就是咱们加上页面,把它做一个统一的测试。啊,这是我们写的第一个接口。
我来说两句