From 011411300238cb33557c0e726a13eb856f5c5bcc Mon Sep 17 00:00:00 2001 From: fomichev Date: Mon, 24 Feb 2025 17:24:41 +0300 Subject: [PATCH] =?utf8?q?=D0=9E=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA?= =?utf8?q?=D0=B0=20=D0=BE=D1=82=D0=BC=D0=B5=D0=BD=D1=8B=20=D0=B8=20=D0=B2?= =?utf8?q?=D0=BE=D0=B7=D0=B2=D1=80=D0=B0=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../controllers/NotificationController.php | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/erp24/media/controllers/NotificationController.php b/erp24/media/controllers/NotificationController.php index 079ec04f..69fe1f2e 100644 --- a/erp24/media/controllers/NotificationController.php +++ b/erp24/media/controllers/NotificationController.php @@ -173,6 +173,70 @@ class NotificationController extends Controller } } + case 'ORDER_CANCELLED': + $requiredFields = ['campaignId', 'orderId', 'cancelledAt', 'items']; + foreach ($requiredFields as $field) { + if (!isset($data[$field])) { + Yii::$app->response->statusCode = 400; + return $this->asJson([ + 'error' => [ + 'type' => 'WRONG_EVENT_FORMAT', + 'message' => "Отсутствует обязательное поле: {$field}" + ] + ]); + } + } + $campaignId = $data['campaignId']; + $orderId = $data['orderId']; + $orderData = MarketplaceService::fetchOrder($campaignId, $orderId); + if (empty($orderData)) { + Yii::$app->response->statusCode = 400; + return $this->asJson([ + 'error' => [ + 'type' => 'WRONG_EVENT_FORMAT', + 'message' => "Не удалось получить заказ с orderId: {$orderId} для кампании: {$campaignId}" + ] + ]); + } + $result = MarketplaceService::processOrders($orderData); + return $this->asJson([ + 'success' => true, + 'message' => "ORDER_CANCELLED событие обработано успешно", + 'result' => $result + ]); + + case 'ORDER_RETURN_CREATED': + $requiredFields = ['campaignId', 'orderId', 'returnId', 'returnType', 'createdAt', 'items']; + foreach ($requiredFields as $field) { + if (!isset($data[$field])) { + Yii::$app->response->statusCode = 400; + return $this->asJson([ + 'error' => [ + 'type' => 'WRONG_EVENT_FORMAT', + 'message' => "Отсутствует обязательное поле: {$field}" + ] + ]); + } + } + $campaignId = $data['campaignId']; + $orderId = $data['orderId']; + $orderData = MarketplaceService::fetchOrder($campaignId, $orderId); + if (empty($orderData)) { + Yii::$app->response->statusCode = 400; + return $this->asJson([ + 'error' => [ + 'type' => 'WRONG_EVENT_FORMAT', + 'message' => "Не удалось получить заказ с orderId: {$orderId} для кампании: {$campaignId}" + ] + ]); + } + $result = MarketplaceService::processOrders($orderData); + return $this->asJson([ + 'success' => true, + 'message' => "ORDER_RETURN_CREATED событие обработано успешно", + 'result' => $result + ]); + default: Yii::info("Неизвестный тип события: {$eventType}"); return $this->asJson([ -- 2.39.5