说一下生成课表的业务流程
在项目中生成课表涉及到的微服务:课表微服务,订单微服务、课程微服务,涉及到的表有:课程表、学生课表、订单表。那么,我就从免费课程生成学生课表的流程来大致说一下。
- 首先,学生在界面点击 立即报名 按钮 ,路由请求到订单服务
- 订单服务 接收到请求从课程查询课程信息,判断课程是否存在,是否是已上架、未过期状态。
- 条件不符则直接向前端返回具体信息,符合则开始创建订单信息,写入订单表中,同时MQ向学生课表服务 投递消息,通知报名成功。
- 学生课表服务 监听到MQ中的消息,开始向学生课表中保存课程信息与用户信息。
至此课表已生成完毕。
说一下查询课表的业务流程
查询课表涉及到了微服务:课程微服务、学生课表微服务,查询的表有:学生课表、课程表
- 首先、前端发起查询课表请求,后端接收到请求后从课表中查询信息。
- 如果查询信息为空,则认为用户为报名任何课程,返回空。
- 否则将课表中的课程id取出,封装成list集合,调用课程服务中的查询课程信息集合功能。
- 将获得到的集合转为map集合,方便从集合中取相应的信息。
- 最后根据查到的信息,封装vo返回
我的项目中查询课表功能的业务流程大致是这样的。
说一下查询最近学习章节的业务流程
在这个项目中最近学习的课程的展示仅仅是最近的一个课程,在这个而课程中查询学习章节的这么一个功能。
- 所以当前端发起查询请求,后端接收到请求后根据最后一次学习时间的倒序从课表中查询信息,只取第一条信息。
- 对其做非空判断后,通过查询出来的信息中的课程id,使用fegin调用课程服务中的查询功能,查询出对用的课程信息
- 在项目中查询课程信息的功能接收的是一个list集合,同时做非空判断,但我们知道的是里面只有一条信息,所以对返回的结果也是只取一条。
- 最后开始根据查询到的信息,开始设置vo进行返回。
这就是我的项目中查询学习章节的业务流程