开始

上面完成了用户下单到向商家微服务发型消息的流程。
image.png

image.png

处理收到的消息

这种接口不需要单独的声明一个类去实现它这里面的方法,我们只需要用莱姆达表达式或者是箭头函数这种类型去生成一个匿名的类。匿名的方法就可以了。
image.png

箭头后面是个方法
image.png

image.png
message是Delivery类型的
image.png
Delivery里面有个body,是一个字符数组类型的。
image.png
我们使用getBody方法就可以
image.png

将字符数组,转化成字符串。
image.png

收到了消息还要回发消息。我们还要走下面的流程,所以还要拿到Connection
image.png
我们要把String反序列化成dto,转化成dto的时候有可能抛出异常,所以我们在这里
image.png

推荐这种打印的方式,这是打印好准输出里面,不一定能打印到你想打印的地方。
image.png
所以这里我们引入slf4j
image.png

image.png
先把消息反序列化为dto
image.png

image.png

注入
image.png

image.png
查询到订单的信息后,后面可以进行逻辑操作了,其他的微服务都向订单的微服务发送消息,我们怎么知道这个消息是哪里来的??怎们知道消息是哪个微服务发来的
我们通过这个订单在数据库中的状态就知道是谁在给订单的微服务发送消息。
如果一开始状态是正在创建creating的状态,那么是商家微服务在给我们回消息。商家给我们回复消息后,我们会把消息变成商家已确认的状态。商家已确认后,如果再收到消息,那么骑手微服务给我们回消息。

image.png

所以这里我们要判断订单的状态
image.png

自动生成
image.png

先判断商家是否确认了,表示商家的业务走通了
image.png
更新订单的数据库信息。设置为商家已确认的状态
image.png

image.png
下面就要给骑手微服务发送消息,拿connection,拿channel
image.png
routingKey是骑手微服务声明的。
image.png

image.png
else商家微服务如果没有确认好。把订单的状态做成失败。
image.png

结束