From: fomichev Date: Mon, 24 Feb 2025 14:24:41 +0000 (+0300) Subject: Обработка отмены и возврата X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=011411300238cb33557c0e726a13eb856f5c5bcc;p=erp24_rep%2Fyii-erp24%2F.git Обработка отмены и возврата --- 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([