54 lines
2.4 KiB
PHP
54 lines
2.4 KiB
PHP
<?php
|
||
namespace app\api\controller;
|
||
|
||
use app\common\model\LandCollection;
|
||
use Exception;
|
||
use think\facade\Log;
|
||
|
||
class DataCollectController extends BaseApiController
|
||
{
|
||
public array $notNeedLogin = ['collect'];
|
||
// 种植数据采集
|
||
public function collect()
|
||
{
|
||
try {
|
||
|
||
$parmas = $this->request->post();
|
||
Log::info(json_encode($parmas));
|
||
if(!$parmas || !isset($parmas['username']) || $parmas['username']==''){
|
||
return $this->fail('参数错误');
|
||
}
|
||
$payload= json_decode($parmas['payload'], true);
|
||
$land = explode('_', $parmas['username']); // 命名规则:land_id id土地表主键id
|
||
$device = explode('_', $parmas['topic']); // 命名规则:topic_deviceid deviceid为设备主键id
|
||
$data = [
|
||
'land_id' => $land[3],
|
||
'topic'=>$device[1],
|
||
'qos'=>$parmas['qos'],
|
||
'wind_speed' => $payload['wind_speed'],
|
||
'wind_direction' => $payload['wind_direction'],
|
||
'ambient_temperature' => $payload['ambient_temperature'],
|
||
'ambient_humidity' => $payload['ambient_humidity'],
|
||
'carbon_dioxide' => $payload['carbon_dioxide'],
|
||
'ambient_air_pressure' => $payload['ambient_air_pressure'],
|
||
'rainfall' => $payload['rainfall'],
|
||
'ambient_lighting' => $payload['ambient_lighting'],
|
||
'soil_temperature' => $payload['soil_temperature'],
|
||
'soil_moisture' => $payload['soil_moisture'],
|
||
'soil_PH' => $payload['soil_PH'],
|
||
'soil_potassium_phosphate_nitrogen' => $payload['soil_potassium_phosphate_nitrogen'],
|
||
'soil_potassium_phosphate_phosphorus' => $payload['soil_potassium_phosphate_phosphorus'],
|
||
'soil_potassium_phosphate_potassium' => $payload['soil_potassium_phosphate_potassium'],
|
||
'clientid'=>$parmas['clientid'],
|
||
'create_time'=>date('Y-m-d H:i:s'),
|
||
'update_time'=>date('Y-m-d H:i:s'),
|
||
];
|
||
|
||
LandCollection::create($data);
|
||
return $this->success('接收成功', ['user_name'=>$parmas['username'], 'topic'=>$parmas['topic']]);
|
||
} catch (Exception $e) {
|
||
return $this->fail($e->getMessage());
|
||
}
|
||
|
||
}
|
||
} |