00:00
各位同学大家好,下面呢,咱们继续来完成点播管理中的发布课程功能。刚才完成了课程大纲的列表,包括章节小节的添加、修改、删除,那咱们下面完成最后一个环节,那就是课程的最终发布,而课程最终发布咱们主要做什么事情,我们来看一下啊,咱们要做的功能。看这张图中画的这么一个实线。首先我们的第一部分在创建课程大纲这个步骤中,咱们点击下一步,下一步之后呢,在发布课程这一步骤做什么?首先根据课程ID查询课程的信息,咱们做一个课程信息发布的最终的一个确认,然后咱们点最终发布,把课程完成发布,所以里边有两个步骤,第一步就是显示课程的确认信息,这个步骤我们的做法就是我这里写一下。
01:02
根据课程ID来查询课程信息,或者说叫发布课程的。信息在这里边呢,我会显示课程的基本信息,包括课程的讲师信息,课程的分类信息,写一下课程基本信息,所属的讲师信息,所属的分类信息,这个过程中呢,我们这么来做,咱们通过编写一段SCO语句进行实践,因为咱要查这些信息,要查多张表,只查课程基本表,查不到,还要查讲师表和分类表,所以一会儿第一部分咱们编写circle语句,我们做个实践,这是咱们的第一个说明。然后这个之后我们的第二部分做课程的最终发布,而最终发布怎么做,我们说一下啊,在这过程中,其实这个过程很简单。我们的做法就是修改课程表中的课程状态,写一下。
02:04
课程表里边的课程状态,把状态改为就是已经发布的这个状态,那咱来看一下啊,课程表中状态这个字段,找到课程表这个表。然后在表里边大家看啊,有一个字段叫CS,我这里约定零代表未发布,一代表已发布,也就是把我们的课程状态值由零改成一就可以了,所以咱们第二部分就来做这个修改状态,也就是课程的最终发布。以上就是咱们要实现的第三步,发布课程的最终实现。那下面呢,咱就开始完成,首先第一部分先编写接口,然后再整个前端,下面咱们来写一下这个接口。然后接口里边呢,因为它是课程相关的,所以咱们来到课程的control,也就是cos control里边把这个打开,然后咱们先写第一个接口。
03:06
第一个接口就是根据课程ID查询发布的课程信息,这过程中咱们通过编写私有语实现,然后在里边我想这个方法我们叫A片A这里写到。ID查询发布课程的信息,下面我们加上这个方法,咱们用get提交,然后加上路径,路径呢我就跟课件中保持一致,咱们就叫这个名字。我们看一下啊,Get course publish view,传入ID public,什么就是发布?下面加上方法,Public。加上方法名字,然后在方法里边得到课程的ID,咱们获取一下,通过注解pass valuable加上ID。
04:01
然后得到之后调用里边的方法,我们做这个操作,那我们写一下啊,Get publish。传入课程ID,最终呢,咱们让他返回这么一个对象,这对象我已经提前写过了,咱们找一下啊,叫cos。Publish。把这个进行返回这个vod项,咱们看一下。各位看里边啊,有课程ID,课程标题,然后里边有一级分类标题,二级标题,讲师名称等内容,所以咱最后就反映这个view对象,最后把V对象我们做一个退。Result点加上cos publish view,所以现在CTRL部分咱们就完成了,完成之后呢,下面我们写第二部分,在里边把这方法咱们给它创建出来。我来做一个创建,然后创建之后来到它的实现类中,咱们最终实现这个方法,这个方法刚才提到,因为咱要查课程基本信息,又要查它所属的讲师,还要查他所属的课程分类,所以这个过程咱们要查的话,一张表肯定查不到,要涉及到的有三张表,课程表。
05:24
你的这个讲师表还有分类表,要涉及到三张表操作,所以这个过程中我们就通过编写SQL语音实现,所以咱下面怎么做呢,我们就在。里个方法,这方法我给它起个名字,比如说啊,我就叫这个啊,为了区分我个名字,我叫这个。Publish。根据咱们这个ID。给它加上,然后里边传入这个ID,咱们用这个做操作,就是调用map中的方法进行实现,这是我们写到的,然后这个写完之后,咱们下面在里边把这方法我们给它创建出来。
06:11
我们看啊cos map中咱们建这个方法,根据课程ID查询发布的课程信息,所以以上这个结构就完成了。但是各位注意啊,咱们之前的代码中呢,应该没有写到过map,咱们之前只到了service,而现在因为你要写Q语句,所以我现在在里边把方法进行了创建,然后创建之后咱们找到map的叉配置文件,在配置文件来最终编写它的最后语句。注意啊,这文件不要找错,咱们现在找的是这个cos叉L,然后在里边我们看到啊,这个是你那个包的路径,就是咱这个包,然后里边把语句我们写一下。
07:02
首先写个结构,因为是查询嘛,我们加上一个select select中有几个属性,第一个ID。就是你的方法名字。然后里边还有一个属性,我们叫result type是你返回的结果,咱的结果是这个view对象,所以把这个view的包类路径我们给它拿过来,注意啊,不要复制错,然后这个完成之后,最后在里边咱就来编写它的这个语句,我们来写一下啊,这个语句呢,咱这么来做,我在这里边把语先写好,写好之后咱给他再复制过来。那我在里边实现一下啊,咱完成一下。首先我加上一个,咱们先写个号,就是咱再改,然后加上from,加上咱的表,我们的表的名字叫这个S课程表,然后给它起个别名,我们叫C。
08:03
然后写完之后我们看这个查是查我们课程表中所有数据,但是在课程表里面我们看啊,有这三个字段,讲师ID。一级分类还有二级分类2ID,所以咱们根据ID要把它对应的名称取得,这个过程中咱就通过多表的连接查询实现,这各位应该知道啊,是一个基础知识,包含你的内连接,左外连接,还有右外连接,而我现在呢,我用这个连接实现。大家看啊,这个连接叫left al Joy,这是什么?是阻碍连接,为什么用阻碍连接?我强调啊,因为现在我这课程是不可能没有讲师,也可能只有一级分类,没有二级分类,都有这个可能,所以咱们用组碍连接有课程,但是他可能没有讲师,也可能没有这个一级分类,也可能没有二级分类,那咱写一下啊,第一个我先阻碍连接这个讲师起个别名叫T,然后on加上你的关联条件c.TID等于t.ID就是课程表里边的TID等于讲师表中的ID,这是第一个。
09:18
然后再写第二个。Left al draw,咱们查询这个就是分类,分类里边的因为有一级和二级分类,所以咱关联第一个关联它的一级分类,用里边的C点这个。ID等于S1.id,然后再关联这个表,因为它有两个分类,所以咱关联两次,这是。啊,为了区分我加上一个挑的这个符号,要不然它给我们自动变成大写,然后这里边我叫S2,这代表咱那个二级分类。
10:01
等于S2,点ID。所以大家看啊,现在我这个过程中就关联了咱们三张表,然后得到了三张表中的所有数据,包括你的讲师的名称,包括你的一级和二级分类名称,这个我们就都得到了。然后这个得到之后,咱们最后在星号位置把它的具体字段写出来,这个字段我就从课件中复制一下啊,因为它的字段应该就是这么几个字段,我把这个拿过来,咱们对照写到这里,然后执行看一下效果啊,我把这个先调整一下格式。然后咱们看一下啊,最终的结构,首先我把这个执行。大家看现在得到就是我们所有的数据,包括你的课程的基本信息,讲师信息,还有他的一级和二级分类,然后在里边,因为咱要传播条件,所以我在这个。
11:03
From,包括这个。位置就这后面啊,咱们加上一个where条件,我加到这里就是where加上这个叫c.ID等于你的那个课程,ID就是咱们写一个27这个课程,然后这个咱们再执行。大家看得到的是不是这条数据有你的基本信息,有你的讲师信息,有你的一级和二级分类数据,所以现在咱就把这个circle语句就完成了,完成之后我把语句给各位复制到这个叉文件中来。然后咱们给它快速改一下啊,改的话呢,就这个条件,条件咱们给它取一下加上井号大括号。然后加上你的ID,这个ID我们是通过方法给他传递过来的这个ID。所以现在啊,这个买了circle,余部分我们就完成了,比如说咱们这个功能中呢,写了一个完整的步骤,CTRL调service service调map map里边创建了方法,并且编写了S语句,最终我们做了一个实现。
12:17
所以各位啊,把这个能最终完成出来,所以这是我们写的第一个接口查询课程的发布信息,咱们最终完成。完成之后呢,下面咱们再快速写第二个接口,就是课程的最终发布。我写到这里啊,课程的最终发布,我们加上一个注解A片。课程的。最终发布,然后加上方法,咱们加上这么一个,因为是修改嘛,或者提交了,然后在里边起个名字。这个名字我就叫这个publish。Cos。
13:01
发布课程,在里边传入ID,然后下面加上咱这个方法publish result加上publish。然后在方法中,咱们得到这个课程的ID,还是用我们一直用这个注解pass valuable类型ID,然后最后我们做一个发布,发布就是做一个修改。咱们最后写一下啊。就是。写下这个publish cos。这个名字改一下。里边传入ID,然后最后啊,这里边我们最终做个实现,咱们先成一个值,先不让他报错点OK。直接捋,然后最后写这个最终发布,也就是修改课程状态,这个方法咱们在里边先创建。
14:00
来到实现类中,最终做一个实践。这个方法啊,那最后我们来写一下啊,这个过程应该很简单了,就是一个修改,修改的话,那咱直接做个修改,根据ID先查出来,然后设置它的状态,最后调方法进行修改,咱们写一下啊。Map点这方ID,根据ID先得到我们这个课程信息。把这个先得到。Cos,然后得到之后,像cos里边来设置它的值,有一个叫CS,把这值改成一,它就代表课程已经发布,另外在里边呢,还有一个指,这个指叫publish time,就是你的发布时间,咱们new一下我们当前这个时间,六个date,然后最后调方法做修改。
15:03
Base map白地传入cos,所以现在这个方法就完成了。以上就是咱们完成的两个接口,第一个根据课程ID查询发布课程信息,这个过程中咱们通过编写了所有语句进行实现,然后第二个课程的最终发布,就是修改课程状态之一,让它变成已经发布。以上就是咱们完成的两个接口实现。特别各位注意这个circle语句的编写过程。
我来说两句