2-1 说一下生成课表的业务流程
生成课表业务流程涉及到三个微服务模块,分别是交易服务模块、学习服务模块、课程模块。交易服务模块与学习服务模块微服务间的调用使用的是RabbitMQ异步调用。学习服务模块调用课程模块查询数据库采用的是Feign的同步调用。
1.首先用户通过前端购买或者报名课程,如果是付费课程,需先完成付费.如果是免费课程,则直接异步通知,交易服务模块将添加课程所需基本信息包装,然后投放到消息队列中
2.学习服务模块需监听同一交换机,RoutingKey与BindingKey匹配的MQ消息,如果接收数据、用户ID、课程ID不为空,则将课程添加到课表中.
3.课程添加到课表,需要Feign同步调用course课程微服务,基于CourseClient进行数据库查询课程的有效期,从而计算出课程过期时间。
4.最后封装LearningLession,批量保存到数据库中。
2-2 说一下查询课表的业务流程
查询课表就是分页查询我的课表,根据最近学习时间降序
1.首先用户从学生课表分页查询学生课表信息,但是没有课程名、课程封面、课程总小节的信息
2.这是就需要远程调用course微服务根据课程id查询tj-course课程列表,并且以课程id为键以课程信息为值封装成map集合
3.这时就可以在遍历过程中将学生的每个课表所缺的三个信息进行补全,然后封装成前段所需信息格式即可。
2-3 说一下查询最近学习章节的业务流程
查询最近学习章节的业务就是根据课表的最近一次学习时间确定用户最近学习的一个课程。
1.首先查询最近学习的课程,但是查询出的信息中缺少有关课程信息的课程名称、封面、总章节数,章节信息中的章节名称、章节序号和课程数量
2.这时需要根据课表中的课程id调用课程微服务查询课程信息,根据课表中的章节id调用课程微服务查询章节信息。
3.然后通过用户ID,聚合函数统计出课程数量
4.补全前段所需课程信息所缺的信息,封装返回结果即可。