00:01
各位同学大家好,在前面的内容中呢,咱们把上硅谷,硅谷课堂中呢,核心功能咱们就已经都完成了,完成之后呢,在这些功能中呢,有些细节问题,下面给大家做个说明,因为咱们时间所限,我们要在课上把所有细节带着各位来写一遍,我们在课上带着各位同学实现了项目中的核心功能,核心部分在里边一些细节给各位详细来说明一下,有了前面的基础。相信各位同学能够自己把这些细节自己去完善一下,那下面我来详细说明一下有哪些需要完善的地方,咱们一个一个来看一下啊,首先我们先说第一个细节问题。这个问题是什么呢?大家看啊,我们在公众号里边点击某个课程,进入到课程的详情界面中,大家看这个位置是不是叫立即购买呀,所以这个咱们需要做完善,就是我们的课程。
01:03
是否已经购买,这是第一个完善,那这个完善什么意思,咱们先看一下我们代码里边,我们找到啊,在咱们这个service应该是vod里边。有一个CTRL的接口,咱们找到就是里边的这个接口cos API ctrl,然后在里边有一个就是根据ID查看课程详情的这个方法,咱们把方法打开,大家看方法里边啊,有这么一行代码,咱之前提到过啊,这个代码呢,之前我们为了测试就是写了一个固定值false,而现在这个部分其实咱们可以做个完善,那怎么完善呢?就是判断你当前课程是否已经购买过了,所以咱们需要做这完善,那怎么做?给大家详细说明一下,咱们该判断什么内容,首先啊,我们说第一部分。
02:00
大家注意啊,如果说我的课程呢,本身就是免费的,那这课程是不是就不需要购买,咱是不是能直接观看,所以这是第一个判断,判断课程是否是免费的,这是第一个怎么判断,一会咱们说明,然后还有第二个判断,那我们怎么做呢?就是判断我们当前的用户是否已经购买了这个课程,并且是否已经完成了这个支付。因为你购买之后没有支付,等于说没有购买,只有购买之付,并且支付完成之后这时候才可以,所以咱们要做这两判断,那怎么做,给各位说的详细点,首先咱看第一个啊,判断课程是否免费,大家找到课程表里边就是vod里边的cos表,我们看到在里边有个字段,这个字段叫price,那很明确,这个字段的值是表示价格,如果价格是零,那课程是不是就是免费,所以这是我们的第一个判断,我在里边写下。
03:08
我们的做法很简单,就是判断课程表里边那个字段,这个字段我们叫做price,刚才咱们看到过。写到这里,如果说这个price,也就是课程的价格它是零,那表示课程就是免费的。写这里啊,课程就是免费的,如果免费的话,那咱们肯定可以直接观看,所以这是里边的第一个判断,这各位给他知道,很简单,我们就查询课程中的字段price,如果price值是零,那课程就可以直接观看,不需要进行我们的其他部分,所以这是第一个,这各位知道,然后这个之后呢,我们还需要做第二个判断。
04:00
第二判断是什么呢?就是判断我当前用户是否已经购买过了这门课程,如果说已经购买过了,并且已经支付过了,那课程也会观看,如果他没有购买或者说没有支付,那课程需要购买之后才能观看,这是咱的第二部分,那这个怎么做,大家来看一下啊,首先第一个咱们看我们这个数据库里面这个表,就是这个表order info。各位,之前咱应该做过,如果说咱们购买首先是不是要生成课程订单,有,然后生成课程订单的时候,在里边有两个表,一个是课程的基本信息表,一个是这个课程订单的详情表,在基本信息表中我们看到有什么,是不是有当前用户ID啊,在详情表里边咱们看有什么,是不是有课程ID啊,那咱们就做个判断,就是判断当前用户是否已经购买过这门课程,并且是否支付。
05:01
那支付怎么做,大家看表里边有个字段,或者咱们这么来看,就是这个字段。这里订单状态,如果状态值是已经支付,那咱们是不是就不需要购买,所以咱做法就是查询这两个表,一个订单的基本信息表,一个订单详情表来做这个判断,这是咱的第二部分。我在里边写一下。查询订单的基本信息表。和订单的详情表,然后进行这么一个查看,如果说根据这些条件能查出数据,那这个用户就是已经购买过课程了,咱就直接观看,如果他没有购买过,那咱需要购买之后才能观看,所以咱就查这个表进行视线,那这表怎么查,我在里边给各位写一段语句,咱们来看一下。给各位自己完善一下,我把思路给各位讲清楚,首先啊,我们写一下,在里边加上语句,我就写个select星。
06:09
From后面加上表,咱们有两个表,一个叫older in,咱们起个名,我叫OE逗号,第二个表叫O的底T。我们叫O2,然后两个表有一个关联条件,O1.ido等于2.id,因为它们是一对一的关系,就是有订单基本表和详情表,他们的ID是定关系,所以这是一个查询,然后查询之后下面咱们居家条件,首先第一个条件就根据用户ID,我们加上就是Oe.user ID。咱们加上等于ID值,比如说咱们随便找一个ID啊,就这个59ID,这是查询当天用户,然后再加一个条件查询他的课程,课程呢在详情表中,咱们用O2点加上那个课程ID,就是咱们掌握课程,就是这个二的这门课程。
07:10
这样的话咱一查,大家看是不是能查出数据,如果说根据当前用户ID和当前课程ID,咱们能查出数据,那证明这个课程已经生成了订单,然后生成订单之后还要看一下订单是否已经进行了支付,用OE里边这个字段叫OCS,这个值是一,表示已经支付,如果它不是一,就没有支付。然后大家看啊,目前我这门课是不是已经订单生成并且支付了,所以他能查出来,那就表示用户已经购买过了这门课程,如果说这个数据,比如说咱随便写一个纸三。我们这么来做,大家看数据是不是查不到了,那就证明我的用户没有购买过这门课程,那咱就需要购买支付之后才能进行这么一个观看,所以以上是咱们做的这么一个判断。
08:08
所以我最终再重复一遍啊,我们这个课程是否观看需要先做个判断,第一个判断课程是否是免费的,然后第二个判断课程当前用户是否已经购买过,并且已经完成了支付。第一个咱们查课程表中的价格字段是零,就是免费直接观看,第二个查询订单和订单详情表,根据里边的这么几个条件部分,刚才我们也写到了,第一个用坏地。第二个课程ID,第三个订单状态,咱们进行查询,我这里写一下啊用户ID。课程ID还有订单状态三个条件查询,如果说能查出数据表示用户已经购买过课程,那咱们能观看,如果查不到,那用户没有购买过,咱们需要购买之后才能进行观看,所以以上是咱们要完善的第一个细节,各位按照过程可以自己给他尝试完成一下,我在课上就不带着各位将题写一遍了,因为过程。
09:15
并不是很复杂,按照流程直接判断可以了。以上是咱们的第一个直接说明课程是否已经购买过了,这大家得知道。然后这个之后呢,我们在里边呢,还有第二个细节需要完善,给各位进一步来说明一下,我在这图上给大家进一步来画一下啊。第二个细节是什么呢?大家注意啊,比如现在我这课程呢,没有购买,咱肯定要进行购买,而购买之后生成订单,生成订单之后咱们是不是要完成这个订单的支付,这个代码咱之前是写过的,那我们来看一下啊,之前那个代码里边把这些关掉,咱们找到service order模块,在里边有这个支付的部分。
10:05
把这个CTRL打开咱们看到啊,在这里边咱之前写过啊,当我生成订单之后,我们向订单和订单详情表中加数据,最终把订单生成,然后进行支付,在支付之后咱们怎么做呢?当时咱的方案就是查询微信那边的接口,查一下我当前订单的支付状态,看是否成功,如果成功的话,咱去修改这个状态,变成已经支付。当时咱是这么来做的,而这过程中呢,其实还有一个功能,咱们可以进一步完善一下,我写一下啊,第二部分就是里边那个订单的支付,而订单支付的时候呢,大家看啊,在咱数据库有个表,这个表叫payment付这个表。这个表是什么?是你的支付信息表,也就是说咱们可以这么做,在我这个单支付之后,我可以向这个订单支付信息表中添加上这么一条记录,记录你当前的支付状态或者支付信息,为了跟微信做对账使用,让咱的功能更加完善,所以各位可以把这个完善一下,在你订单支付完成之后,向支付记录表中加入一条数据啊,包括里边加入这些数据,比如说你的用户ID啊,什么订单ID等等这些值。
11:36
所以这个啊,是咱们可以做的第二个完善,这各位知道一下啊,因为这也不是很复杂,就是像这个支付记录表中加数据,为了跟微信做这个对账使用。我写一下啊,就是和微信进行对账的这么一个作用啊,当然后续可能有其他功能的完善在里边可以进一步说明,比如说咱们做这个可以实现一个退款的功能,那需要用到里面一些数据进行后续的操作。
12:05
所以以上啊是咱们说的第二完善,这各位知道一下啊,我再重复一遍,第一个就是课程是否需要购买,按照两个部分我们可以做个判断,第二个订单支付之后,向订单记录表中可以添加上这条数据,为了和微信进行对账的一个作用,包括后续就是咱要做什么退款等功能,那也要用到里面一些相关的数据。
我来说两句