]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Исправление ответа
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 25 Feb 2025 07:13:59 +0000 (10:13 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 25 Feb 2025 07:13:59 +0000 (10:13 +0300)
erp24/media/controllers/NotificationController.php

index 3d077fda25fd8628cac8c97fd71564ff46354156..86dd2a58ad1bd77d9011a05783049c0ca41ab956 100644 (file)
@@ -33,15 +33,14 @@ class NotificationController extends Controller
             throw new BadRequestHttpException('Только POST запросы разрешены');
         }
 
-        /*$requestIp = Yii::$app->request->userIP;
+        /*
+        $requestIp = Yii::$app->request->userIP;
         $ipLong = ip2long($requestIp);
-
         $allowedRanges = [
             ['start' => ip2long('5.45.207.0'),   'end' => ip2long('5.45.207.127')],
             ['start' => ip2long('141.8.142.0'),  'end' => ip2long('141.8.142.127')],
             ['start' => ip2long('5.255.253.0'),  'end' => ip2long('5.255.253.127')],
         ];
-
         $allowed = false;
         foreach ($allowedRanges as $range) {
             if ($ipLong >= $range['start'] && $ipLong <= $range['end']) {
@@ -49,7 +48,6 @@ class NotificationController extends Controller
                 break;
             }
         }
-
         if (!$allowed) {
             Yii::$app->response->statusCode = 403;
             return $this->asJson([
@@ -58,7 +56,8 @@ class NotificationController extends Controller
                     'message' => 'Доступ запрещен'
                 ]
             ]);
-        }*/
+        }
+        */
 
         $rawBody = Yii::$app->request->getRawBody();
         try {
@@ -90,8 +89,8 @@ class NotificationController extends Controller
             switch ($eventType) {
                 case 'PING':
                     return $this->asJson([
-                        'version' => '1.0.0',
-                        'name' => 'БазаЦветов24',
+                        'version'   => '1.0.0',
+                        'name'      => 'БазаЦветов24',
                         'timestamp' => date('Y-m-d H:i:s')
                     ]);
 
@@ -108,9 +107,8 @@ class NotificationController extends Controller
                             ]);
                         }
                     }
-
                     $campaignId = $data['campaignId'];
-                    $orderId = $data['orderId'];
+                    $orderId    = $data['orderId'];
 
                     $orderData = MarketplaceService::fetchOrder($campaignId, $orderId);
                     if (empty($orderData)) {
@@ -122,13 +120,13 @@ class NotificationController extends Controller
                             ]
                         ]);
                     }
-
-                    $result = MarketplaceService::processOrders($orderData);
-                    //TODO - отправка в 1С
+                    $result = \MarketplaceService::processOrders($orderData);
+                    // Здесь можно добавить отправку данных в 1С
                     return $this->asJson([
-                        'version' => '1.0.0',
-                        'name' => 'БазаЦветов24',
-                        'timestamp' => date('Y-m-d H:i:s')
+                        'version'   => '1.0.0',
+                        'name'      => 'БазаЦветов24',
+                        'timestamp' => date('Y-m-d H:i:s'),
+                        'message'   => 'ORDER_CREATED событие обработано успешно'
                     ]);
 
                 case 'ORDER_STATUS_UPDATED':
@@ -144,10 +142,9 @@ class NotificationController extends Controller
                             ]);
                         }
                     }
-
-                    $campaignId = $data['campaignId'];
-                    $orderId = $data['orderId'];
-                    $newStatusCode = $data['status'];
+                    $campaignId       = $data['campaignId'];
+                    $orderId          = $data['orderId'];
+                    $newStatusCode    = $data['status'];
                     $newSubstatusCode = $data['substatus'];
 
                     $marketplaceOrder = MarketplaceOrders::find()
@@ -167,13 +164,14 @@ class NotificationController extends Controller
                         }
                         $result = MarketplaceService::processOrders($orderData);
                         return $this->asJson([
-                            'version' => '1.0.0',
-                            'name' => 'БазаЦветов24',
-                            'timestamp' => date('Y-m-d H:i:s')
+                            'version'   => '1.0.0',
+                            'name'      => 'БазаЦветов24',
+                            'timestamp' => date('Y-m-d H:i:s'),
+                            'message'   => "ORDER_STATUS_UPDATED событие обработано успешно (заказ создан)",
+                            'result'    => $result
                         ]);
                     } else {
-                        //TODO - обработка отдельных статусов
-                        $currentStatusCode = $marketplaceOrder->status ? $marketplaceOrder->status->code : null;
+                        $currentStatusCode    = $marketplaceOrder->status ? $marketplaceOrder->status->code : null;
                         $currentSubstatusCode = $marketplaceOrder->substatus ? $marketplaceOrder->substatus->code : null;
                         if ($newStatusCode !== $currentStatusCode || $newSubstatusCode !== $currentSubstatusCode) {
                             $orderData = MarketplaceService::fetchOrder($campaignId, $orderId);
@@ -188,15 +186,18 @@ class NotificationController extends Controller
                             }
                             $result = MarketplaceService::processOrders($orderData);
                             return $this->asJson([
-                                'version' => '1.0.0',
-                                'name' => 'БазаЦветов24',
-                                'timestamp' => date('Y-m-d H:i:s')
+                                'version'   => '1.0.0',
+                                'name'      => 'БазаЦветов24',
+                                'timestamp' => date('Y-m-d H:i:s'),
+                                'message'   => "ORDER_STATUS_UPDATED событие обработано успешно",
+                                'result'    => $result
                             ]);
                         } else {
                             return $this->asJson([
-                                'version' => '1.0.0',
-                                'name' => 'БазаЦветов24',
-                                'timestamp' => date('Y-m-d H:i:s')
+                                'version'   => '1.0.0',
+                                'name'      => 'БазаЦветов24',
+                                'timestamp' => date('Y-m-d H:i:s'),
+                                'message'   => 'Статус заказа не изменился, обновление не требуется'
                             ]);
                         }
                     }
@@ -215,8 +216,8 @@ class NotificationController extends Controller
                         }
                     }
                     $campaignId = $data['campaignId'];
-                    $orderId = $data['orderId'];
-                    $orderData = MarketplaceService::fetchOrder($campaignId, $orderId);
+                    $orderId    = $data['orderId'];
+                    $orderData  = MarketplaceService::fetchOrder($campaignId, $orderId);
                     if (empty($orderData)) {
                         Yii::$app->response->statusCode = 400;
                         return $this->asJson([
@@ -228,9 +229,11 @@ class NotificationController extends Controller
                     }
                     $result = MarketplaceService::processOrders($orderData);
                     return $this->asJson([
-                        'version' => '1.0.0',
-                        'name' => 'БазаЦветов24',
-                        'timestamp' => date('Y-m-d H:i:s')
+                        'version'   => '1.0.0',
+                        'name'      => 'БазаЦветов24',
+                        'timestamp' => date('Y-m-d H:i:s'),
+                        'message'   => "ORDER_CANCELLED событие обработано успешно",
+                        'result'    => $result
                     ]);
 
                 case 'ORDER_RETURN_CREATED':
@@ -247,8 +250,8 @@ class NotificationController extends Controller
                         }
                     }
                     $campaignId = $data['campaignId'];
-                    $orderId = $data['orderId'];
-                    $orderData = MarketplaceService::fetchOrder($campaignId, $orderId);
+                    $orderId    = $data['orderId'];
+                    $orderData  = MarketplaceService::fetchOrder($campaignId, $orderId);
                     if (empty($orderData)) {
                         Yii::$app->response->statusCode = 400;
                         return $this->asJson([
@@ -260,9 +263,11 @@ class NotificationController extends Controller
                     }
                     $result = MarketplaceService::processOrders($orderData);
                     return $this->asJson([
-                        'version' => '1.0.0',
-                        'name' => 'БазаЦветов24',
-                        'timestamp' => date('Y-m-d H:i:s')
+                        'version'   => '1.0.0',
+                        'name'      => 'БазаЦветов24',
+                        'timestamp' => date('Y-m-d H:i:s'),
+                        'message'   => "ORDER_RETURN_CREATED событие обработано успешно",
+                        'result'    => $result
                     ]);
 
                 default: