cqpCow hai 1 ano
pai
achega
df45661141
Modificáronse 2 ficheiros con 73 adicións e 25 borrados
  1. 35 13
      app/Jobs/ProcessDataJob.php
  2. 38 12
      app/Service/ClearDataService.php

+ 35 - 13
app/Jobs/ProcessDataJob.php

@@ -60,21 +60,43 @@ class ProcessDataJob implements ShouldQueue
         if(! $status) return;
 
         $url = $this->url . "api/module-data/device_machine_record/device_machine_record";
-        $post = [
-            'bizId' => -1,
-            'bizTypeEk' => 'LOWCODE',
-            'data' => [
-                'device_machine_record' => [
-                    'machine_code' => $data['dev_eui'],
-                    'param_value' => $data['value'],
-                    'record_time' => $this->getNowDay()
-                ]
-            ],
-            'dynamicFormId' => '477743923368955904',
-            'showModelId' => '477745421456904192'
-        ];
         $header = ["Authorization: Bearer {$token}","Content-Type:application/json"];
+        if(! empty($data['multiple'])){
+            foreach ($data['multiple'] as $key => $value){
+                $post = [
+                    'bizId' => -1,
+                    'bizTypeEk' => 'LOWCODE',
+                    'data' => [
+                        'device_machine_record' => [
+                            'machine_code' => $key,
+                            'param_value' => $value,
+                            'record_time' => $this->getNowDay()
+                        ]
+                    ],
+                    'dynamicFormId' => '477743923368955904',
+                    'showModelId' => '477745421456904192'
+                ];
+                $this->sendData($url,$post,$header);
+            }
+        } else{
+            $post = [
+                'bizId' => -1,
+                'bizTypeEk' => 'LOWCODE',
+                'data' => [
+                    'device_machine_record' => [
+                        'machine_code' => $data['dev_eui'],
+                        'param_value' => $data['value'],
+                        'record_time' => $this->getNowDay()
+                    ]
+                ],
+                'dynamicFormId' => '477743923368955904',
+                'showModelId' => '477745421456904192'
+            ];
+            $this->sendData($url,$post,$header);
+        }
+    }
 
+    public function sendData($url, $post, $header){
         $curl = curl_init();
         curl_setopt_array($curl, array(
             CURLOPT_URL => $url,

+ 38 - 12
app/Service/ClearDataService.php

@@ -86,20 +86,41 @@ class ClearDataService extends Service
 
     public static function saveData($data){
         try{
+            $dev_eui = $data['obj']['devEUI'];
+            $device_name = $data['obj']['deviceName'];
+            $source_ip = self::getIP();
             //保存数据
-            $model = new DeviceData();
+            if(isset($data['temperature']) && isset($data['humidity'])){
+                $insert[] = [
+                    'dev_eui' => $dev_eui . '1',
+                    'device_name' => $device_name,
+                    'source_ip' => $source_ip,
+                    'data_type' => 4,
+                    'happening_data' => $data['temperature']
+                ];
+                $insert[] = [
+                    'dev_eui' => $dev_eui . '2',
+                    'device_name' => $device_name,
+                    'source_ip' => $source_ip,
+                    'data_type' => 4,
+                    'happening_data' => $data['humidity']
+                ];
+                DeviceData::insert($insert);
+            }else{
+                $model = new DeviceData();
 //            $model->data = json_encode($data);//源数据
-            $model->dev_eui = $data['obj']['devEUI'];
-            $model->device_name = $data['obj']['deviceName'];
-            $model->source_ip = self::getIP();
-            if(isset($data['temperature'])){
-                $model->data_type = 1;
-                $model->happening_data = $data['temperature'];
-            }elseif (isset($data['pressure'])){
-                $model->data_type = 2;
-                $model->happening_data = $data['pressure'];
+                $model->dev_eui = $dev_eui;
+                $model->device_name = $device_name;
+                $model->source_ip = $source_ip;
+                if(isset($data['temperature'])){
+                    $model->data_type = 1;
+                    $model->happening_data = $data['temperature'];
+                }elseif (isset($data['pressure'])){
+                    $model->data_type = 2;
+                    $model->happening_data = $data['pressure'];
+                }
+                $model->save();
             }
-            $model->save();
         }catch (\Exception $exception){
             file_put_contents('record_errors.txt',json_encode($data) . PHP_EOL . $exception->getFile().$exception->getLine().$exception->getCode(),8);
         }
@@ -108,7 +129,12 @@ class ClearDataService extends Service
     public static function clearData($data){
         $return['is_clear_data'] = 1;
         $return['dev_eui'] = $data['obj']['devEUI'] ?? '';
-        if(isset($data['temperature'])){
+        if(isset($data['temperature']) && isset($data['humidity'])){
+            $return['multiple'] = [
+                $return['dev_eui'] . '1' => $data['temperature'],
+                $return['dev_eui'] . '2' => $data['humidity'],
+            ];
+        }elseif(isset($data['temperature'])){
             $return['value'] = $data['temperature'];
         }elseif (isset($data['pressure'])){
             $return['value'] = round($data['pressure'] / 1000,2);