如何在RocketMQ监听类中调用Service保存信息时同时保存当前用户的租户相关信息

Blade 已结 1 968
shangmanet
shangmanet 剑圣 2020-07-13 14:16

一、该问题的重现步骤是什么?

  1. 页面点击按钮,调用OrderController,OrderController调用OrderService并传递相关数据

    image.png2. 监听类引用了IOrderService

    image.png

     3. 监听类onMessage处理相关业务逻辑,比如新增订单

    

        image.png


二、你期待的结果是什么?实际看到的又是什么?

1.当前操作用户租户ID为495998

2.期待的结果是order表内新增的数据租户id应为495998

3.实际程序运行的结果order表内新增的数据租户id默认为000000,并且create_user,create_dept等字段无数据


image.png


三、你正在使用的是什么产品,什么版本?在什么操作系统上?


目前使用的是BladeX-boot产品,版本2.5.1.RELEASE,操作系统MacOS Catalina 10.15.5


四、请提供详细的错误堆栈信息,这很重要。


系统逻辑无报错,只是数据储存不是想要的结果


五、若有更多详细信息,请在下面提供。

1条回答
  •  smallchill
    smallchill (最佳回答者)
    2020-07-14 10:20

    多线程、事件驱动、消息队列等等都可以看作是异步操作,而用户信息的获取是依赖request的请求头token的,所以这种写法是无法获取的。

    如果要获取的时候,要以参数的形式传入任务队列

    1 讨论(1)
提交回复