实战二

添加课表

        课表购买之前只是单纯的课程,平台讲师发布,用户只能看到课程相关的信息。只有用户在付款购买后才会后加入用户课表,才能进行观看学习。(免费课程,点击报名后自动加入课表)

       课表添加,涉及到交易和学习两个为微服务,由交易服务,发起远程调用学习服务,完成课程的添加。这里涉及到微服务间的互相调用,常用收无外乎就是基于Feign的同步调用和Rabbit MQ的异步通讯。应为调用的是一个新增相关的业务接口,不关注返回结果,所以MQ会更适合此场景。接下来,就把交易模块看做消息发布者,学习模块看做消息的消费者,以MQ的消息模型作为一个主体开发。

        交易服务流程:

                1.完成订单操作;

                2.向mq投递支付成功的消息;

                3.响应结果。

        学习服务流程:

                1.监听mq,一旦发现交易支付成功的消息,就开始消费消息;

                2.添加课表。

                        在添加课表功能中,上来考虑地首先是封装课表对象(按照数据库表补齐数据),进行添加操作。但是根据mq消息传递的dto参数来看,这儿由涉及到课程表,所以需要发起一个课程服务远程的调用。(远程调用语句不要出现在循环中,影响性能) 因此,在添加之前得远程调用课程服务进行查询。 数据准被好后,再将完整的课表数据保存到数据库。

查询课表

        课表查询的具体体现就是,用户购买完课程后,进入学习中心->我的课程,在这一栏就会展示用户购买的所有课程(包含免费课程)。

        在查询的时候要注意接口文档中四要素(request url、request method、request parameters、response result)可以根据求参数决定DTO,响应结果数据决定服务是否会跨库跨服务。

        在这儿,根据响应结果可以判断,需要从课程服务中查询课程表的信息。因为是查询,所以用Feign的同步调用。

        具体业务逻辑:

                ①:查询课表信息;

                ②:用一个Set结合来承载课表信息关联的课程信息,并转化为一个Map结合(方便后续获取课程信息);

                ③:遍历课程,获取课程信息

                ④:合并两部分记过,封装最终需要的VO返回。

最近学习

        总流程:

                学习服务-->课程服务(获取课程、以及章节相关信息) -->封装VO(出参)

        具体流程:

                ①:根据业务条件,查询最近学习的课程;注意用户id这个隐式条件

                ②:获取课程id,根据课程id调用课程微服务,获取课程信息(远程调用)

                ③:从课程表中获取到小节id,调用课程微服务的章节接口;

                ④:封装结果并返回;

        

                        

                        

                        

 

                        

        

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值