00:00
各位同学大家好,欢迎继续收看硅谷课堂项目视频课程,下面呢,咱们开始完成我们项目中一个重要的模块,点播课程管理模块,那这个模块呢,主要做什么功能,把模块的需求给各位先做个介绍,那咱们来看一下这个模块。点播视频管理模块。这个模块是怎么一个需求呢?给大家说明一下,首先我们的过程就是管理员可以添加我们的视频课程。然后添加之后,我们用户在公众号中可以根据课程进行课程的学习,我写一下啊,就是课程的学习,包括课程的信息,包括课程的视频播放,这是一个最基本的需求。而这个过程我们应该怎么实现?下面咱们进步来分析。在这里边呢,咱们首先先做管理员添加视频课程的一部分,后面在公众号中再来完成课程学习的过程,那在下面看这个视频课程添加该怎么来做。
01:13
大家看我课件中啊,我们添加中呢,有这么一个基本的过程,大家看我图上画的也是咱们最终的一个效果里边一张效果图,咱们看这张图里边写到的。首先咱们做的第一步,咱们先做这个事情,先添加课程的基本信息,什么叫基本信息?比如说你的课程的名称,课程所属讲师,课程所属的分类,包括课程的描述等内容,这是咱的第一步操作,咱后面会进一步实现。我写一下第一步,然后这个之后呢,我们里边的第二步做这个事情,就是添加了课程基本信息之后,第二步添加叫课程的大纲内容。
02:00
什么叫课程大纲?比如说课程里边有他的章节,有他的小结,比如说我现在加盟课叫Java基础开发,他的第一章叫Java概述,包括里边的第一小节叫Java的历史的介绍等等,这是第二部分,然后这个之后我们的第三步可以做课程的最终发布,在发布里边首先我们先显示课程的。基本信息,包括课程的章节信息等等,咱们做个确认,然后最终完成这个发布,当课程发布之后,咱们用户在公众号中就能看到课程,然后进行学习,所以以上是一个最基本的流程。那流程我再说一遍啊,咱们做法就是管理员添加视频课程,然后用户在公众号中进行课程学习,比如说这个添加视频课程过程是管理员做的这么一个事情。然后这部分是我们用户进行学习过程,而管理员加的时候,第一步添加课程的基本信息,它里边会包含比如说课程的名称,课程所属的讲师,课程的描述等内容在里面添加。然后第二步我们添加课程的大纲,大纲里边包括课程的章节,章节中的小节,另外咱们可以上传这个课程的视频这些内容,第三步做课程的最终发布。
03:33
咱会显示课程的信息。我们做一个确认,就看信息是否正确,然后最终我们进行发布,发布之后用户在公众号中能看到咱们发布的课程内容,所以以上是咱们一个基本的需求,咱们后面按照这个三步来实现课程的一个发布。这各位给大家先知道,然后这个之后呢,咱们继续来看啊,因为这个过程中大家看到它有很多步骤里边要加很多数据,所以这个过程中呢,会涉及到有很多表的操作,这些表呢,之前给大家共享过,在咱数据库表里边有个库,这个库。
04:16
就是这个vod的库,然后在里边呢有很多表,咱们现在需要把这些表都进行创建,我这里边已经创建过了这些表,然后咱们下面来分析一下这些表有哪些,包括表之间有什么关系,因为后面咱们添加课程中要用到这些表来实现我们的计体功能。那咱来看一下,首先大家看我课件中这里标注到了主要有这么几个表,咱们看到比如说第一个。咱按照顺序啊,第一个cos表,课程基本信息,然后cos description,课程描述,包括课程章节表,课程分类,课程小结和视频表,主要有这么多表。
05:00
然后这些表分别都是干什么的,包括表之间什么关系,我在图里边给大家画下啊。首先第一个表,就是咱说那个课程的基本信息表。我想这里啊。课程基本信息表。然后这个表的名字我们叫那个,我写一下。这是咱们的第一个表,这个表里边主要存储课程的基本信息,比如说课程的名称,包括课程的,它里边就是基本的一些内容,然后这个之后呢,咱们下面还有一个表。我写到这里啊,这个表叫做课程的描述表,也是咱们刚才课件中的这个表,Course description,我写到这里,这是第二个表。写到这里啊,它叫做课程的。描述表,然后这个表的名字我们叫description。
06:04
这是第二个表,然后这个表注意说一下啊,它是什么特点,比如说我们看啊,现在我们添加课程信息,有基本信息,有描述,最后把这个基本信息和描述存到不同表里边,而这两表它们之间有个关系,那各位同学可以想一下,你说这两表之间是什么关系。大家想一下什么关系?他们是不是一个一对一的关系,比如说一个课程信息中对应一个描述,一个描述属于某一个信息,所以他们之间是一个一对一的关系,而一对一关系怎么表示?咱通过他们的主见ID定表示就是我的课程的ID。就是里边的描述的ID,它们里边有个对应关系,或者说我这表里边加一个cos ID,让他们对应这个啊是咱们的第一个关系。课程基本信息和课程描述有一个一对一的关系,这各位知道,然后这个之后在咱这里边还有下一个表,我在里边写一下啊,下一表是什么呢?它叫做课程的章节表。
07:12
也就是说课程里边有第一章,有第二章,有章节,然后章节表对应的名字,他说我们里边的这个表叫做开。我写一下啊。Capital叫章节表,那大家想一下啊,你说课程基本信息表跟章节表之间是什么关系?大家可以想一下什么关系,我们要明确啊,表一表之间三种关系,一对一,一对多,多对多啊,当然一对多或者多对一再算成一种关系,那你说这两之间什么关系?很明确啊,是不是一对多的关系,就是一个课程里边有多个章节,然后每个章节属于每一个课程,这是一对多,咱用M或者N代表多的关系。
08:01
一个课程中多个章节,一个章节属于某一个课程,这是我们的第二个这么一个关系,就是课程基本信息表和章节表的关系,这各位知道,然后除了这个之外呢,在里边咱们还有一个表,就是有下一个关系。我写一下啊,就是在里边有这么一个表。这位置这个表是什么呢?叫做课程的小结和视频表,或者课程里边的课时和视频表,一个意思就是小结。和视频表。那这个表注意啊,它跟章节表之间又是一个一对多的关系,比如说一个章节中有很多小节,一个小节属于某一个章节,比如说我们现在第一章Java基础入门里边,第一小节叫Java的历史,第二小节叫做Java的环境变量配置,所以它们之间又是一个一对多的关系。
09:00
这是我们说的基本关系,然后除了这些之外啊,当然这个表的名字我们叫这个video,就是小结和视频的这么一个表。然后这个之后呢,我们再来看啊,在这里边我们在做这个添加视频课程中,还有另外一些其他的表,咱们看我就是表里边啊,大家看这个表。是不是讲师表,这个表是不是叫分类表,咱们课程要属于某一个分类,另外课程是某个讲师所讲的,所以在里边还有这么两个表,我也写一下啊,小弟位置。一个是讲师表,一个是课程的分类表。这位置这个是。讲师表。然后这个表叫做课程的。分类表,分类功能咱们应该刚做过,就是我们的一级二级分类这些内容,比如你的后端开发Java讲师表,我们是teacher课程分类表,叫做subject。
10:04
这是我们提到的啊,当然各位注意,你说课程跟讲师跟分类之间是什么关系。啊,这应该也很明确啊,就是咱们一个分类中有很多门课程,然后一门课程属于某一个分类,所以他们之间又是一个一对多的关系,但是关系注意啊,一个分类里边有多门课程,然后一门课程属于某一个分类,就是课程不可能属于多个分类,仍属于某一个分类,他们是一堆的关系,然后同样讲师跟课程之间也是一个一对多的关系。一个讲师可以讲多门课,然后咱们让一门课只能被一个讲师所讲。所以它们之间啊,又是一个一对多的关系,所以以上呢是咱们针对这个表之间关系的分析,我再说一遍啊,课程基本信息表跟课程描述一对一,一个课程中有很多章节,一个章节属于某一个课程一对多,一个章节中有很多小节,一个小节属于某个章节右手一对多。另外讲师跟分类,一个讲师能讲多门课,一门课属于某一个讲师,一个分类中很多门课,一个课属于某一个分类,这又是一流的关系。所以以上是咱们做这个添加视频课程中涉及到表之间的一个相关的关系,大家把这关系里头要弄清楚,后面咱就围绕这个关系来实现我们的。
11:34
添加点播视频课程的这么一个过程。所以以上是咱们需求的一个介绍,这咱就说到这里,然后这个之后呢,下面因为咱要写相关的代码,所以咱们先通过代码生成器,把这几个表相关的controller service和map咱们先生成出来,然后最终在实验里面的接口,包括前端,那下面咱来生成它切换代码。
12:02
这个代码咱们找到代码生成器里边,把这个找到,然后改一下里边内容,前面部分应该都不需要编,咱就把这个表改就可以了,那表我到里面复制啊,第一个是里边那个叫cos,咱们加上一个cos,因为后面要生成课程相关的内容,然后把这个改不来第一个表。然后看第二个啊,第二个咱们加这个description它的描述啊,其实描述呢,应该不需要了,但是需要它的和map,这个咱们也写上,后面咱再把多余的再删掉。第二个表,然后里边第三个表是咱那个章节表,就是这个叫capital。课程的章节表。除了章节之外,咱们有课程的那个小结表,就是里面那个叫video,把这个咱们拿回来,所以主要有这么四个表,咱根据它生成相关的controller service map,讲师跟课程分类,咱这些都写过了,后面直接用就可以了,主要是这四个表生成的相关代码。
13:11
那现在选完之后把这个运行,咱们看一下最终的效果怎么样,我们来最终测试一下。等他执行。然后各位看啊,现在已经执行出来了,我们看里边啊CR了service map应该就都生出来了,再生之后呢,这个cos就是课程的描述,CTRL这个咱们不需要,这个就删掉,咱需要其他的。然后这个完成之后,咱们同样把实体类换成咱们那个model中统一的实体类,这个咱就不用了啊,都换成model里边的,那我给它快速改一下啊,咱们先改service,第一个是这个video先给他啊。我先改成video,就是课程小结的,然后把它的实体类换成model中的实体类。
14:03
这是微调,改完它之后再改它的实现类这个微调。然后最后再改他这个map啊,就是一个改的过程,没有什么技术含量啊,各位快速改就可以了,或者说你不改用你生成的也可以啊,咱为了统一都用model里边的,这是video,改完之后我们再改这个叫做cos,就是课程的把这个改一下啊。首先课程里边加上它这个实体类的这个依赖,咱用model中统一生成的cos,这是service找到它的实现内。改一下。然后再改他的map中的内容,这个咱最后修改。然后改完之后再改下一个,下一个咱改这个描述的部分就是课程描述啊,改成model中统一的实体类。我们给它改一下啊。改成它这是。
15:02
然后这是它那个实现类。最后有他这个map。这个啊,我们也是给它快速改出来,然后改完之后里边应该还有一个这个开,就是课程的章节部分,这个咱们最后给他改完。加上model中统一带的这个capital。然后这里边找到。Capital最后找到map里边把这个最终完成修改。所以说以上呢,咱就完成了这个。代码生成器生成咱们添加视频课程中相关的代码,这个我们就做到了,所以各位把这个准备工作能快速完成。以上就是咱们对于这个添加点播视频课程的需求分析,包括表关系介绍以及用代码生成器生成最终的代码。
我来说两句