NoticeController.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. namespace addons\QiJuhe\api\modules\v1\controllers;
  3. use Yii;
  4. use addons\QiJuhe\common\models\NoticeModel;
  5. use addons\QiJuhe\common\service\NoticeHandleService;
  6. use common\enums\RabbitMqEnum;
  7. use common\models\mall\MallAddons;
  8. use yii\helpers\Json;
  9. use yii\web\Controller;
  10. use addons\Cake\common\models\CakeCallbackNotice;
  11. /**
  12. * 消息通知
  13. */
  14. class NoticeController extends Controller
  15. {
  16. public $modelClass = '';
  17. public $enableCsrfValidation = false;
  18. public function actionHandler()
  19. {
  20. header('Content-type: application/json; charset=utf-8');
  21. $supplys_id = $this->request->get('supplys');
  22. $data = $this->request->post();
  23. $message_type = $data['message_type'] ?? '';
  24. if (empty($message_type)) {
  25. echo json_encode(['code' => 0]);die;
  26. }
  27. $method = strtolower(str_replace(".", "_", $message_type));
  28. $service = new NoticeHandleService();
  29. \Yii::error("-------------------- 记录开始 -------------------- $supplys_id");
  30. \Yii::error(var_export($data, true));
  31. \Yii::error("-------------------- 记录结束 -------------------- $supplys_id");
  32. // 蛋糕商品和订单由蛋糕去处理
  33. if (strpos($message_type, 'Cake') !== false) {
  34. $cake_callback_notice = \addons\Cake\common\models\CakeCallbackNotice::class;
  35. if (class_exists($cake_callback_notice)) {
  36. /** @var \addons\Cake\common\models\CakeCallbackNotice|string $cake_callback_notice */
  37. $method = $cake_callback_notice::$messageTypeMap[$message_type] ?? '';
  38. /** @var \addons\Cake\common\service\NoticeHandleService $cake_notice_handle_service */
  39. $cake_notice_handle_service = \addons\Cake\common\service\NoticeHandleService::class;
  40. $cake_notice_handle_service::handle([
  41. 'data' => $data,
  42. 'method' => $method,
  43. // 'supplys_id' => $supplys_id,
  44. 'supplys_id' => 0,
  45. ]);
  46. }else{
  47. \Yii::error(__METHOD__ . " {$cake_callback_notice} not exists");
  48. }
  49. return Json::encode([
  50. 'code' => 0
  51. ]);
  52. } elseif (strpos($message_type, 'fulu') !== false &&
  53. class_exists(\addons\QianxiSupplyChain\common\models\QianxiSupplyChainCallbackNotice::class)) { // 权益接口
  54. $method = \addons\QianxiSupplyChain\common\models\QianxiSupplyChainCallbackNotice::$messageTypeMap[$message_type];
  55. $flag = \addons\QianxiSupplyChain\common\service\NoticeHandleService::handle([
  56. 'data' => $data,
  57. 'method'=> $method
  58. ]);
  59. return Json::encode([
  60. 'code' => 0
  61. ]);
  62. }
  63. $method = strtolower(str_replace(".", "_", $message_type));
  64. $service = new NoticeHandleService();
  65. // if (!method_exists($service, $method)) {
  66. // // 方法不存在
  67. // \Yii::error("qijuhe供应链回调:类型处理方法不存在");
  68. // return Json::encode([
  69. // 'code' => 0
  70. // ]);
  71. // }
  72. // 写日志
  73. // $data['notice_id'] = $data['message_id'];
  74. // NoticeModel::addLog($message_type, $data);
  75. // \Yii::$app->services->rabbitMq->push(RabbitMqEnum::EXCHANGE_TASK, RabbitMqEnum::TASK_QUEUE, [
  76. // 'data' => $data,
  77. // 'method' => $method,
  78. // 'supplys_id' => $supplys_id,
  79. // ], NoticeHandleService::class, 'handle');
  80. // 延时处理
  81. \Yii::$app->services->rabbitMq->delayTask(
  82. 20,
  83. [
  84. 'data' =>$data,
  85. 'method' => $method,
  86. 'supplys_id' => $supplys_id,
  87. ],
  88. NoticeHandleService::class,
  89. 'handle'
  90. );
  91. // NoticeHandleService::handle([
  92. // 'data' => $data,
  93. // 'method' => $method,
  94. // 'supplys_id' => $supplys_id,
  95. // ]);
  96. echo json_encode(['code' => 0]);die;
  97. }
  98. }