00:00
咱们今天的第一个内容呢,给各位来分析一下我们课程里边的一个功能,给功能就是课程的评论功能,把这个功能给各位做一个详细的分析,这个功能我不在课上带着各位写的代码了,我把流程给大家做个详细分析,然后这个代码交给各位去完成啊我在之前也说过,咱们之前的代码我肯定是99%都我在课上来写。当然后面代码随着功能的重复,有些代码我只分析过程,或者说我只写核心部分,其他部分交给各位去完成,因为跟之前代码应该都一样的,没有本质上的区别,代码应该说都差不多,所以说这个课程评论功能我就给各位做个详细的分析,把里边怎么做我来说出来,然后这个代码怎么实现,就为各位去完成啊,这是我采用的一种方式,然后下面把这个我来做一个详细的分析。
01:00
大家来看一下啊,我在里边写一下。课程评论功能。那这功能要怎么做给大家,我先介绍一下他这个需求啊,就是咱们要做成什么样的效果,先做个说明。首先咱们来到页面中,就是在我的课程详情页面,而在课程详情页面中,它就是这么一个过程,我把这个啊给大家先画一下啊。比如现在在上面这个位置,是咱们那个课程的详情页面。就是这里啊,课程向前一遍啊,画的小一点。然后在这个页面中呢,就是咱要做的话,在页面的这个下边应该有一个地方,就是咱做那个课程的评论功能,也就是在。这个位置有一个地方啊做评论,然后评论里边呢,比如第一个这个位置就是你可以输入那个评论的内容,比如说输入啊课程好或者课程不好等等,那然后这里边我们有一个按种,假如我们一般叫什么回复啊,或者说叫评论啊,咱用这个,然后这个在这个下边会有你评论那个列表,就是在这个位置有评论列表,比如我们现在评论,假如说第一条评论啊,这个是由那个Lucy发表一评论,比如他的评论说这个课程。
02:28
啊,就写一个,比如说课程内容很详细啊,假如他做这个评论,然后评论之后,比如在Lucy下边还有一个人他也做了评论,比如说迈瑞,比方maryry说说课程的价格太贵了。比如说再来一条啊,然后下面还有一个评论,比如这个人是杰克啊,他就随便写了一个什么。111啊,就做一个刷屏的,写了这么一个值,在这个就是我们要做的功能,但是评论中在下边咱家可以做到这么一个分页的功能,比如分页中有这个什么首页。
03:04
包括上页,包括下页,包括这个尾页,以及中间有那个页码数,比如说123。等等。所以这个啊是我们要实现的一个效果,也就是说在课程详页下边,然后一个输入框,你可以输入评论,当你输入完评论之后一点回复,当然你输入的评论在下面又做一个分页显示,显示当天评论,当然这个评论显示咱肯定根据就是你最新就是第一个评论啊,在上面啊做一个评论。包括经常评论中有个词嘛,什么做沙发啊,包括什么置顶等等,然后这下面有一个分页显示,通过分页能查看到当前课程中等做评论,所以咱的评论就做到这么一个基本效果啊,用这个过程把它实现这个效果,各位应该都见过类似的功能啊,所以咱们把评论做一个最基础的一个实现啊,就做一个简单效果。
04:07
这个是咱的就有说明,比如说你可以通过这个需求中,咱们看到我们目前的评论要做的功能。我应该能清楚看到啊,两个功能,第一个就是添加评论,就是你点回复,在你的数据库表中加一条评论,然后第二个是条件。就是分页这个评论的一个列表功能啊,没有条件就是分页查询评论的列表功能,所以主要就是两功能。我在里边写一下啊,第一个功能。添加评论。然后第二个功能。分页查询。评论的功能。所以这个啊,是咱要做的两个具体功能,各位把这个给他能做到啊,这个我们做了一个需求的说明,就是我们要做成什么样效果。
05:01
然后这个怎么做,下面给大家来分析我们的具体实现过,我不在课上写代码,交给各位去完成啊,就是我现在其实讲的需求这个过程,以后各位在实际的工作中,你们都会遇到这种场景。因为各位都知道啊,咱们中国人嘛,都喜欢做件事情,特别喜欢做件事情。做什么事情呢?各位应该都知道啊,叫做开会,就是中国人的传统,动不动就开个什么会嘛,比如特别现在公司里边可能每天都要开会,早晨开个会,晚上开个会,可是有时候可能还要开更多的会,比如什么周会,什么每天的例会,或者每月再开个会,或者说每一个半年再开一个大会等等。而一般来讲啊,我们在做一个项目之前,就有你的项目经理,或者说你的产品经理肯定会召集项目中所有人去开会,这开会可能会持续很多天。而开会一般咱要干什么呢?就是由你的项目经理,或者说你公司的产品经理给你们来讲这个项目他要做成什么样子,做成什么样的效果,就好比说我刚才讲到我们这个评论要做成这个样子,就相信各位讲这个需求,这在以后工作中都是由你公司的那个产品或者项目经理给你去讲。
06:21
但是他讲的话,一般只给你讲他的流程,他肯定不会给你讲技术,说美国该怎么做,所以咱们就要通过他讲的这个需求,讲的这个流程,你把它转成技术的实现,这个是公司中肯定我们以后会经历到的,就是他会给你讲详细美术怎么做到的,所以说建议各位啊。以后在公司中,如果说你遇到别人给你讲需求,那你在做项目之前,需求一定要弄得特别清晰,每步做成什么样子,一定心里要特别清楚,要不然这个项目你做不出来,如果说他在讲的过程中有哪一点你没有听明白,这时候要马上问出来,要不然最终吃亏是你自己,比如他讲的是这个样子,你没理解出来,不知道他说的什么意思,最终按照你的理解去做这个项目,那做完之后跟你的项目经理要求的这个需求不一样,那你做再多没有意义啊。所以需求在项目中很重要,一般都是由你的公司的项目经理或者产品跟你讲这过程,所以各位在工作中这过程一定要给他弄清楚,然后再去期代码。
07:28
所以刚才啊给大家说这个流程,这个咱应该比较简单,就是一个添加评论,一个评论的列表功能,所以咱们一会做的功能,两个功能,第一个添加评论,第二个条件就是分页查询评论。这个啊是我们说到的啊,那具体怎么实现,给各位来做个分析。就是具体实现的过程。那咱写一下啊,首先第一部分,因为咱要做这么一个评论的功能,所以说我们的第一步操作,咱肯定要在我们的数据库中创建一个课程评论的这么一张表,把这个表我们肯定。
08:09
需要先创建出来。这是它的第一步,那这表怎么做,给大家说一下啊,就是在我这个资料里边有一个地方给各位听出来了,数据库脚本,在数据库脚本中啊,里边有一个地方啊,应该是在。我看一下啊,是在这个位置啊。我把这打开。如果没有啊,我把这个就是各位直接啊,就是它叫edu comment啊,这么这是一张就是课程的评论表,所以咱们首先在我这个数据库中,各位先创建这张表,Edu comment的这张表,也就是在我这个鼓励edu这个数据库脚本中有咱们那个建表的语句。啊,就是你把这个先做创业。这图我先截过来,然后创建之后,我这里边已经提前创建过了,创建之后就是这张表,调edu com的这张表。
09:03
就是他。然后咱们这个表我提前创建了,咱看一下表中的字段啊,各位对它有个基本的一个认识。那把这表打开,我们看字段啊,各位看到在这表里边呢,我现在是有这么几个字段。然后大家看啊有哪些,首先在里边的这个字段中,就是有一个讲师的ID,包有课程ID啊等等这些内容,其实第一个啊,应该就是我们评论ID啊,这描述写的不对啊,应该是评ID,然后下面有课程ID,讲师ID,还有一个叫会员ID,会员昵称,会员头像,包括评论内容,包括删除等等。所以大家通过这个表我们发现啊,这写错了啊,应该就是ID啊,在里边呢,咱评论中要加上很多数据,而数据中呢,它不是说只有评论内容,还要有什么呢?是你对哪个课程评论的,咱加个课程ID,包括这个课程是哪个讲师的,咱需要存个讲师ID,另外是由谁评论的,比如说这个会员代表你评论人,我们就存储会员ID,会员昵称,还有一个叫会员头像,主要是存这些数据。
10:19
这个啊,是我们项里边要存的内容。这个各位先知道啊,也就是说咱们在加评论的时候,你要存储的不是说只有评论的这个那种还要存什么呢?就是谁评论的,比如说Lucy评论的,那把Lucy的他的昵称ID头像存进去,呃,你对哪个课程评论的,把课程ID存进去,包括这个课程是哪个讲师讲的,你把这个讲师ID也算到表中,这里边涉及到会有这么多数据啊,这是咱们看的这张表,所以第一步咱把表创建。然后创建表之后,在里边我们要做的第二部分写一下啊,咱肯定要创建就是接口,接口里边我们创建。
11:04
两个方法啊,刚才咱也说到了,我写一下啊。首先第一个方法,咱要实验一个分页查询课程评论的这么一个方法,把这个写出来,这一方法应该简单,咱就直接查一下我们的这张表,就是咱看这个edo com这张表,然后把这数据做一个分页查询就可以了啊,它里边就是没有什么条件,只有分页,咱就做一个分页查询。分页查询,咱写过很多类似的,比如说我们做这个。讲师,就是一个分页查询,咱这个课程加这个条件,你把条件去掉,也是一个分页查询,包括之前在咱们后台中也做过很多分页,所以这时候我们要做到第一个功能就是分页查询,课程评论啊,这个要各位能给他快速做到,应该比较简单,没有什么特别地方,咱就查数据库,做个分页查询就可以了啊,这就是第一个方法。
12:03
然后咱们重点看第二个方法,因为第二个方法啊,要稍微麻烦一点啊,那我们来看第二个啊。也给大家写一下啊,第一个各位把这个借口做到,然后第二个方法。第二个啊,我写到这个位置啊。第二个方法,咱做的功能就是添加评论,把这个咱要做到,而这个要稍微麻烦一点啊,那这怎么做,给各位我来做一个详细的分析。主要我想分析的也就是这个添加评论啊,因为这个分页没有什么可分析的。那咱看添加评论,我们该怎么去做啊。啊,我这么画一下啊。这里边啊,咱这么来画啊。然后说一下怎么来实现这个功能啊,那我们来看一下啊,咱就对照里边的数据,在数据中首先我们看到啊,在这里边有这么几个值,有这个课程评论,包括课程课程评论的ID,包括时间,包括更新时间,这个就是主要是评论,评论数据呢,当咱们向这个就是这个输入框中,比如咱输入个评论一点回复,这评论是不是就能提到接口中,咱做个添加是不是可以了,所以这个比较简单。
13:24
然后写一下啊,在评论中我们要添加的数据。啊,要加数据有哪些数据呢?首先里边有第一个数据。第一个数据就是咱说那个课程的评论的内容,那这个内容咱们直接啊,在我这个输入框里边输入,然后提过就可以了,就是你输入的那种,它给它提交到接口中。添加就可以了,这是第一个内容,这个内容比较好获取啊,直接把书内容加进去就足够了,但是关键下面有另外几个内容,咱需要给他详细说一下啊,那我们看下面内容啊。
14:05
各位看啊,这里边有一个叫课程ID,还有一个叫讲师ID,咱看这两只啊,那这个怎么得到。各位看啊,比如我现在在是一个叫课程的这个详情页面中,课程详情页面中咱的课程ID是不是应该能取到,包括根据他取到之后,咱把信息都查出来,在信息中它包含了课程ID,是不是也包含了讲师的信息,所以第二部分咱在前页面中,直接咱们进入页面就能查出来,把课程ID和这个讲设ID就可以取到啊,这两个也不复杂。写一下第二个。课程ID。包括第三个。讲师ID,那这两数据咱们再进入到详情页面中,根据课程ID都可以查询出来。啊,长清出来这个啊,我们应该不复杂,直接可以做到,所以这是我们的第二段内容,课程ID和仰视ID,我们是这么来做的。
15:09
然后咱们再来看啊,里边还有另外一个数据,就是这本数据要稍微麻烦点。大家看啊,还有什么会员ID,会员昵称和会员头像,比如咱说的用户ID,用户昵称,用户头像,大家看这几个值啊,就是第四个。我就叫用户了啊,用户ID。第五个用户昵称,包括第六个用户头像,这几个咱要查出来,因为咱们在你的显示评论的时候,这个位置啊,我们肯定要根据它把这个要做个显示。所以说咱们加的时候肯定要把这个加的水库中。但是大家考虑这几个值咱要怎么得到?这怎么得到,因为咱们现在啊,是在课程详情页面中,而在我的课程表中肯定没这些值,而这些值它在哪里,或者说咱该怎么得到,这是我们要说的一个主要内容啊,所以各位也可以考虑一下,咱现在我要加这个评论功能,评论功能中的除了评论的基本信息之外,他肯定还需要我的用户的信息,包括用户ID,包括用户昵称,包括用户头像。
16:23
这些数据我们肯定都需要得到,但是这些咱要怎么得到,希望各位啊,把这个你要知道啊。那下面给大家来分析一下啊,这些数据咱该怎么获取到。我把这个啊,我就脚这个位置啊。说一下怎么做?首先我强调啊,第一个就是咱们现在如果说啊,你要做评论,第一个要求你评论之前是不是要登录不登录,那叫匿名评论,比如我们现在不支持匿名,但让它只能是就是实名这种进行评论,这第一个必须你要登录,而登录之后呢,咱登录之后把这个用户信息是不是放到咱的cookie中了,通过cookie咱当时写了一个前端拦截器,它是放到咱那个hier里边去。
17:14
那我们看一下啊。咱们之前写过的啊,嗯。也就是在这里边各位看到啊,咱们登录之后呢,是放到了cookie中,而我们在cookie中做了一个判断。当你cookie中有值,那这值咱是不是就放到了head中啊,有咱的token,那咱怎么做呢?就是咱们可以调用我们当时写的这个接口,根据这个token值获取到它那个会员ID,然后根据ID,咱把这些数据咱是不是可以给他查出来啊,就是把这个UID昵称都可以查出来,所以这个是咱一个过程。那我说一下怎么做啊,咱的做法就是我可以从这个。
18:00
Hier里边获取到你那个token的字符串,把这得到,因为咱们登录之后里边有值,然后得到之后怎么做呢?咱们根据token的字符串能获取到你的用户ID,这肯定可以得到,而获取用户ID之后怎么做,咱又可以根据用户ID查询咱的用户表,然后把我们需要的这些数据给它获取出来就可以了,所以现在我们就是这个做法啊,也就是说它有一个前提条件。你在做评论之前必须要先进行登录啊,就是登录之后再再做里面过程就是先从hier中取到你的token字符串,根据token字符串获取用户信息。取的方式就是用request获取信息,咱当时使用那个JWT可以做到,然后获取之后咱根据用户ID查用户表,把数据得到,这就直接调咱的方法把这个查询就可以了,所以这个啊是咱们一个基本过程。
19:11
我在里边啊,写的详细点,就是咱们从。Request里面获取。然后这个token获取ID值,我们使用这个JWT啊来获取到这个。就是用ID,然后最后你查数据库,咱直接要我们的方法查就可以了,所以咱们第四步我们肯定要就这部分啊,我们肯定要这么多,就是第四个,第五个第六个数据,咱要按这个流程把这实验出来。但是这个具体怎么实现,咱说的更细致点啊,我这里说一下啊,比如说一会儿咱做个评论,那我在edu里边把那个评论的代码,咱用代码生气是不生出来,就是你的controlr service map都需要生成,生成之后写那个分页查询和添加。
20:00
当然各位注意啊,就是这个地方。因为这个地方呢,咱是要查询我们的用户表,而你查用户表在E中是不是写不了,因为它是一个就是edu,就是课程消模块,你用户在里边没有写到内容,所以咱要怎么做呢?把用户部分是不是要写到我们的u center中,在这里边咱要写的用户操作,然后咱们通过edu是不是要调这个u center模块,就咱之前说那个远程调用,用na和B完成这个过程啊,所以咱们现在要这么来实现。给各位写一下啊,就是最终的这个基本过程啊,就是咱最后要用到一种方式叫做远程调用。这个咱在里边用到,就是咱之前讲那个na和F。不知各位是否记得啊,咱要用到的,然后咱们今天做的支付要用到,那怎么用到两个模块。就这两个模块,一个模块是咱那个edu。
21:01
然后一个模块是我们那个U3。咱们就是在edu中做那个添加评论的功能。啊,添加评论,然后我们在U3的里边来得到,就是获取用户信息,最终咱通过edu去调用咱的U3的模块,然后把数据取到,最终加到表中,也就是说我们里边的。这个过程要写到咱的u center模块中,在这里边要写出来,然后写完之后你通过edu做这么一个远程调用。然后把数据得到,最终调到数据库中。所以这个啊,是咱们一个具体的分析,我们就是这么来做的啊,给各位在最后重复一遍啊,然后这个过程以后,各位给它实验出来,我就不在课上写这东西了,因为这些里边的内容,那都是我们之前讲过的,跟之前一模一样,只是说咱们换了一个功能来说做这个功能。
22:02
那咱们最后说一下啊,怎么做,第一部分你肯定要建一个数据库表,这个表在我们的鼓励edu中叫edu comments,然后表记完之后,在这里边呢,我们做评论有两个接口,第一个就是分页查询,就是做一个简单分页查询就可以了,这个没有特别的。第二个是添加,这要稍微麻烦一点,而添加怎么做?因为在添加中等,咱这样表中要加很多的数据,数据中主要有这么六个,第一个数据简单,你直接把你输入的值挑过就可以了,然后这个课程ID和讲师ID,因为咱们在前页面中都有,咱查出来直接传到接口中也可以做到,主要是后面三个数据,这三个数据因为是用户的,而在课程表中没有用户的数据,这咱怎么做呢?我里边写了过程。第一个你评论之前必使登录,只有登录之后才能评论,咱不支持匿名评论,然后你登录之后呢,在里边先从hier中取到通文字符串,就是通过request获取,取到字符串之后,从里边获取到用户ID,用JWT的方式,咱之前都写过的,然后得到用户ID之后根据用户ID查数据库表,把里边的用户ID,用户昵称,用户头像都取出来,主要这个过程。
23:27
但是因为你查用户咱在edu中肯定写不了,因为它里边是我们课程相关的,这咱把查用户放到U3中。也是我画的这个过程写到U3中,然后你在edu的添加评论中,通过远程调用方式,把U3中的信息给它获取出来,最终加到咱的评论表中,咱要用到一种远程调用过程,就咱之前说那个NAS和P的过程。这各位给他知道啊,包括咱之前na th是用edu调那vod啊,在edu中我们是写了一个这么一个interface接口,也就是这个过程。
24:08
咱看一下就是它。A位置指定服务名字,然后下面想接口地址,最终做调用,所以现在我们肯定还这么做,比如各位要写的话,你再来建一个新的一个interface,然后里边只有你那个Switch u center,再想它的方法,然后做个一程调用,这个啊是我们给各位分析的一个添加评论的一个过程,所以各位按照这个流程要求能把这功能实现出来啊,主要你把接口写的可以了,而它的页面呢,我在课件中也听出来了,页面整合简单,就是里边的这过程。就是各位如果整合前面中,你把这部分复制到咱那个课程详情页面中的下边就可以了啊,默认我这里没有写,你把这段话直接复制过来,然后也是做这种JS的调用,把数据得到可以了,前端比较简单,主要是接口中各位啊,能把这个给他做到。
25:06
按照流程。就是分类的,就是不是分类啊,分页查询评论,还有添加评论,主要两个功能啊,给各位做了一个分析。
我来说两句