2-1 说一下生成课表的业务流程
生成课表的业务涉及到的微服务有交易微服务和学习微服务,使用消息中间件RabbitMQ异步调用;
- 首先交易微服务负责传递消息到MQ上,用户先购买或者报名课程,如果课程是免费的,就可以直接报名;如果是付费的,则需要用户完成课程下单支付成功后,发送消息到MQ;
- 然后学习服务中定义监听器负责监听MQ,当获取到MQ中的课程信息后,调用课表的业务层进行新增操作;
- 最后调用课程微服务根据课程主键查询课程信息,再进行循环遍历,封装课表信息,计算并填入过期时间,id和课程id,再批量保存;
2-2 说一下查询课表的业务流程
查询课表业务使用到了课表微服务和课程微服务,根据课程ID查询出课程信息,封装后进行返回
- 首先,在课表微服务中根据当前用户ID进行分页查询,获取我们需要返回的结果
- 其次,我们需要将刚刚查询到的所有课程ID通过stream流收集起来,通过调用课程微服务,获取课程信息的集合
- 接下来,我们将获取到的信息集合转为map对象,并对分页查询的结果进行遍历,从map对象中,获取课程信息,封装到vo对象中,并对列表中的数据进行替换
- 最后,返回封装好的list集合
2-3 说一下查询最近学习章节的业务流程
查询课表业务使用到了课表微服务和课程微服务,根据课程ID查询出课程信息,封装后进行返回
- 当用户在前端页面发起查询请求,后端接收到请求后会根据最后一次学习时间的倒序从课表中查询第一条信息;
- 对这条信息做非空判断,若不为空,通过课程id和最后一次学习的小节id,调用课程微服务和查询出小节信息和课程信息;
- 最后拷贝课表信息到课表vo,根据课程信息、章节信息和计算一下课程数量去填充vo中其余相应的数据;并返回结果。