| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace addons\WangDianTong\common\traits;
- use addons\WangDianTong\common\service\OrderSyncFailService;
- use common\enums\RabbitMqEnum;
- use yii\helpers\Json;
- trait CompensateTrait
- {
- /**
- * @param array $data
- * @param string $class
- * @param string $method
- * @param \Throwable $e
- * @return void
- * @throws \Exception
- */
- protected function compensate(array $data, string $class, string $method, \Throwable $e)
- {
- \Yii::$app->services->rabbitMq->push(RabbitMqEnum::EXCHANGE_TASK, RabbitMqEnum::TASK_QUEUE,
- [
- 'id' => $data['compensate_id']??0,
- 'mall_id' => $data['mall_id'] ?? 0,
- 'data' => Json::encode($data),
- 'consumer_class' => $class,
- 'consumer_method' => $method,
- 'error_message' => Json::encode([
- 'file' => $e->getFile(),
- 'msg' => $e->getMessage(),
- 'line' => $e->getLine(),
- // 'trace' => $e->getTrace()
- ])
- ], OrderSyncFailService::class, 'create');
- }
- /**
- * 补偿完成
- * @param int $id
- * @return void
- */
- protected function compensateFinish(int $id)
- {
- (new OrderSyncFailService())->finish($id);
- }
- }
|