00:00
下面呢,咱们就开始开发订单管理接口,把接口最终最后实现,那咱们写一下啊,首先我们先来到CTRL里边,在CTRL上面加上它这个路径,这路径为了后面前的方便,我跟课件中保持一致,咱们叫这个名字,Ain order order in for,然后在order control里边把service我们给它进来。Private order info。Service加上注入之后,在里边加上我们的方法,订单的列表方法,然后方法我们写一下啊,直接我们就写上一个get提交,因为它里边要做到分页加条件,分页中的需要里边两个参数,一个是扉页中的这个当前页。咱们起个名字就叫配置,第二个就是每页显示的记录数,我们叫利,下面加上方法public。
01:00
Result。然后里边加上方法,这些方法我就叫这个order。然后在里边呢,把两个参数得到,一个是当前页,一个是每页记住数,那咱们得到一下,先得到当前页配置,再得到每页显示的记住数limit,然后得到之后在里边有它的条件,这个条件呢,我这里边写好了一个VO的这么一个对象,那我们找一下啊。里边这个叫older info query VO应该是它,然后用这个得到咱们相关的条件,咱们看一下啊,我现在查询订单部分主要需要里边的这么几个条件,首先第一个根据用户查,包括根据里边这个你看啊,有这个订单的状态,包括订单的什么,这个时间就等等,包括他的交易号等内容,通过这些后面咱们做个查询,所以咱们用V对象来得到他的条件。
02:06
然后这个选完之后,下面呢,咱就调用service中的方法进行实现,因为要用到分页,所以首先我们先创建一个配置对象。我写一下啊。加上一个里边加上这个older,然后加上。就是给它起个名字啊,我们叫配置。等于new上一个配置里边传入当前页,还有每页记录数,这是里边的第一部分,然后下面我们调用service中的方法做个分页查询,咱们写个方法,我就叫select。Ino。配置里边传入第一个配置P,第二个条件o info VO,最终让它反映咱的内容,因为这里边呢,他涉及到查的是两个表,一个是订单的基本信息表,一个是订单的详情表,所以咱为了后面封装和取值方便,我就让它返回一个卖部集合。
03:18
麦饥额里边加上它的泛型,我这里写一下啊。就是value object。把这个加上,这是我们写的这么一个调用,然后最后把它做一个屡退。result.ok加上这个。所以现在CTRL部分我们就完成了,完成之后呢,下面咱们在里边把这方法进行创建订单的列表方法,最后来到实现类中来实现它最终的这个方法,咱们最后做个实现,那咱们看这个该怎么做啊。
04:00
首先我强调啊,这个过程中呢,因为他要查两个表,一个是订单的基本信息表,一个是订单的详情表,所以为了能查到订单的详情部分,咱们先做个注入,把订单详情的service给它先注进来,为了一会儿做这个调用o detail service现在这里完成,完成之后在这里边我们来写一下它的具体代码。这个代码我先把步骤写一下,然后咱们做一个具体实现。我写到这里啊,首先第一步我们先获取一下。查询的条件就是通过这个V把里边的条件给他得到。比如说里边的用户ID啊,什么订单号,什么手机号等等,值先得到,然后得到之后第二部分,因为条件值呢,可能为空,也可能不为空,咱就判断条件值是否为空,如果不为空,就进行条件的封装。
05:07
这是咱们做的第二部分,把条件值给它做个封装,不等于空用quaper封装进去,然后封装之后咱们下一步操作调用map中的方法实现这个条件分页的查询,这是咱们写的这步骤,然后这个选完之后咱往下看啊,因为现在我们的订单里边还包含它的详情的内容,所以咱们这部分我们在封装它的。详情的数据也是根据这个。订单的ID产出他的详情,再做封装,然后最终把咱们所有需要的数据。啊,所有需要的数据都封装到一个map集合中,最终进行返回。以上就是咱们写的代码的一个步骤,咱们下面按照这个步骤把代码最终做个实现,跟咱之前写法应该基本上是差不多的,只是现在啊,咱是换了一个订单的模块。
06:13
那下面我们来开始写一下啊。首先第一步获取条件,咱们得到一下条件啊,比如说我们得到第一个条件就是这个用快I递,因为每个人有不同订单啊,所以咱可以根据用快I递得到,然后第二个我再得到一个order info view,咱们得到里边的就是这个值,Out trade no,就你订单那个交易号,每次订单创建都会有一个交易号,这是第二个值,然后得到第三个,第三个呢,咱用这个就是for。订单有它那个交易的手机号,包括里边还有其他纸啊,那其他纸我就从课件中复制了啊,咱们看一下还有其他纸这两个值,一个是我们创建订单的开始时间,一个是创建订单的结束时间,所以以上是得到我们的几个条件,然后得到条件之后,下面咱开始判断做封装。
07:10
首先建一个query rapper里边加上older in,然后rapper。写下啊,等于一个,然后下面做这个的判断。我写一下啊,咱们加上一个string uus.is am加上uidd,如果说UID不等于空,那咱们向里面就来封装这个条件,我用点EQ加上字段到表里面看一下啊,这个order ino的字段叫user_ID,我们拿过来写进去,这样的话完成封装,其他条件写法跟他都差不多,我就不再敲了,因为这个代码咱之前写过很多遍了,其他部分我就复制过来。
08:03
咱们快速看一下啊,大家看这代码,第二个是你的订单的交易号,第三个手机号,还有你的时间,时间有开始结束,看我的写法啊,它里面就是这里写到,呃,这代码写的好像不太对啊,咱们应该是大于等于开始时间,小于等于结束时间,应该是这种场景啊,那我给他稍微改一下啊。这里边有一个开始时间叫这个笔记,那咱们是大于等于开始时间,然后最后一个是结束时间叫and,那and我们就是小于等于结束时间,小于等于用的应该是。把这个写下。也就是说我现在比如说我查这订单是2022年1月1号到2022年3月1号,1月1号就是开始时间大于等于开始时间,3月1号是结束时间,那就是小于等于结束时间,所以现在把这条件我们也是加进去了,然后交完之后,咱们下面就来调用方法,做一个条件分页查询的这个过程,那我们来调用一下啊。
09:15
在里边我们调base map中的配置方法,传入两个参数,第一个配置就是咱们new的那个对象,咱们刚才里边也已经传过来了,然后第二个是rapper,最终返回这么一个对象啊,当然可以不返回里边的配置P就是你的值,我给它叫返回项啊,然后起个名字,我们叫pages。所以现在啊,这个过程就完成了,条件分页查询,然后完成之后呢,在配置里边有咱们需要的数据,那我给他获取一下啊,Pages得到第一个get total,就是总记录数,一共多少条记录,然后第二个我们得到里面这个叫pages,一共有多少页,就是咱说的总页数。
10:06
我们起个名字啊,我写一下。比如这个我叫total count到。然后这个页数我叫这个total,或者叫配置count啊配置count。一个总记录数,一个总页数,另外咱们得到里面那个数据get records,就是每页数据那个集合records,现在这些值都得到了,就是咱们分页查书的订单数据,然后得到之后呢,我这里还写到。因为订单里边包含详情,所以咱们把订单的详情数据也给他得到,其实主要想得到就是那个订单里面那个课程的数据。咱们看一下啊,在订单详情表里边是不是有一个课程名称,包括课程ID啊,那我现在就把订单里面的课程名称给他取到,咱们往下写一下啊。
11:02
那大家说这怎么做?首先啊,订单基本信息是不是在record里边啊,那咱的做法就是把record这个集合做一个便利。点上for each加上item。然后加上这个love的表示。通过它做便利,然后便利之后咱们调个方法,那我写个方法,我就叫get这个啊,就是它的其他的一些数据或者详情数据,Get这个order。地太。在里边传入item,然后在这个方法中我们做这个最终封装,那下面我们写一下这个方法,写到这里啊。这个方法做的事情就是。查询订单那个详情的数据,这个咱改个名字就叫order info,然后这个让他返回这个info这个对象写完之后咱们往下看一下啊,在这里边怎么做,先得到你的订单的ID。
12:12
得到一下get ID。然后得到ID,之后根据ID查出订单的详情。咱们查询一下啊,Detail的方法get ID ID啊不是这个。然后传入ID,这个得到是你的订单的详情那种,那咱们给他得到一下啊,我给它起个名字O的detail,然后得到之后从里边把它那个课程的名称给它取到我这里边给他做个判断啊。如果说里边的底值它不等于钠,就表示咱们查到了详情,然后从里边把这个课程名称取到get。
13:02
Cos name就是课程名称,然后取到课程名称之后,把它封装到咱到order info中去,大家看啊,在order info中呢,它里边跟咱之前写的一样,同样有一个t map集合,所以把它还是放到这个map集合中去,是咱们的这种写法。然后写一下啊get。点上put,在里边加上名字,名字咱们叫cos name,然后值就是课程名称,现在完成封装,完成封装之后,最后咱们把里面这个older info做一个退,就是给它返回一下。所以现在啊,咱就把这个详情部分,也就是课程名称取到了啊,当然你也可以再取别的值,取法跟他一样,咱就以它为例,把这取到,然后取到之后现在在我的item,也就是。Record中的每个订单的O的info里边包含了你的课程的名称,里边有这数据,然后数据都有之后,最后咱们把数据封装到map集合中,做一个最终的返回。
14:14
我加上死罪。加上map,等于上一个哈希map,向map中来放它的数据,那咱来放下啊,里边这么几个值,第一个我们是total。加上这个total count,然后再放一个map点,第二个是里面这个配置,就是你的总页数,这咱给它也是。直接放到map中,然后还有最后一个,就是每页数据那个历史集合,这个名字叫records,咱把它也放进去。现在map中有了咱的数据,最后别忘记把map做一个最终的返回,所以以上咱们就完成了订单列表的接口,通过以上这步骤把这功能我们就最终做到了,所以大家啊,把这接口应该能快速完成出来,咱通过它也算是把之前那种再给他复习一遍。
15:16
这个就写完了啊,然后写完之后呢,刚才提到咱们目前呢,有了一个网关模块,咱后面访问都是通过网关模块进行访问,所以咱最后把这个O里边的路径或者说路由规则在网关里边需要再做个配置,就是把这个咱需要再配置一个,那最后来配置一下啊。来用它快速改一下,这是SVOD模块。然后咱们下面是service o模块。首先来看怎么改啊,第一个把下标咱们改成一。注意啊,这下标你不能跳过去,咱这是零,这里要写一,这里不要写二,写二它会有问题,咱要按照顺序012往下完成,然后第二部分加上你当前模块的名字,就是在中注册名字,我们的名字看一下啊呃,在这里。
16:15
找到啊。这个位置。呃,这里忘了改了,应该是service这个order啊,这个模块,所以咱们现在加上模块名字在这里改一下,下面改成service,然后最后把规则改一下,我们的径是这个样子,In,那看一下啊,我们要改的话,把中间这部分是不改成O就可以了。以上是在网关中加的一个路由规则配置,咱后面通过网关做统一的这么一个访问。所以现在啊,这一部分就完成了,以上就是咱们写完的订单列表接口的实现,各位按照流程把接口能够准确的编写出来。
我来说两句