This commit is contained in:
weiz 2023-11-25 17:27:15 +08:00
parent 1a7119f42a
commit 7bbc063d5f
4 changed files with 41 additions and 67 deletions

View File

@ -1,26 +1,12 @@
<?php <?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台PHP版
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | gitee下载https://gitee.com/likeshop_gitee/likeadmin
// | github下载https://github.com/likeshop-github/likeadmin
// | 访问官网https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\api\controller; namespace app\api\controller;
use app\api\logic\IndexLogic;
use app\common\enum\notice\NoticeEnum; use app\common\enum\notice\NoticeEnum;
use app\common\model\land\Land; use app\common\model\land\Land;
use app\common\model\land\LandDevice; use app\common\model\land\LandProduct;
use app\common\model\monitor\AirMonitor; use app\common\model\monitor\AirMonitor;
use app\common\model\monitor\SoilMonitor; use app\common\model\monitor\SoilMonitor;
use app\common\model\product\ProductDevice;
use think\facade\Log; use think\facade\Log;
use think\response\Json; use think\response\Json;
@ -37,40 +23,33 @@ class IndexController extends BaseApiController
public function index(): Json public function index(): Json
{ {
$params = $this->request->get('land_id'); $params = $this->request->get(['land_id']);
//获取土地信息 //获取土地信息
if(isset($params['land_id']) && $params['land_id'] !=''){ if(isset($params['land_id']) && $params['land_id'] !=''){
$land = Land::where('user_id',$this->userId)->where('id',$params['land_id'])->order('id desc')->findOrEmpty(); $data = Land::where('user_id',$this->userId)->where('id',$params['land_id'])->order('id desc')->findOrEmpty()->toArray();
}else{ }else{
$land = Land::where('user_id',$this->userId)->order('id desc')->findOrEmpty(); $data = Land::where('user_id',$this->userId)->order('id desc')->findOrEmpty()->toArray();
} }
if($land->isEmpty()){ if(empty($data)){
return $this->success('请求成功',[]); return $this->success('请求成功',[]);
} }
$land['pic'] = json_decode($land['pic'],true); $data['pic'] = json_decode($data['pic'],true);
//获取监测数据 //获取绑定产品
$landDeviceForSoil = LandDevice::where('land_id',$land['id'])->where('device_type',1)->findOrEmpty(); $landProduct = LandProduct::where('land_id',$data['id'])->findOrEmpty();
if($landDeviceForSoil->isEmpty()){ if($landProduct->isEmpty()){
$land['soil_device'] = 0; $data['monitor'] = [];
}else{ }else{
$land['soil_device'] = 1; $device = ProductDevice::where('product_id',$landProduct['product_id'])->select();
$land['soil_monitor_data'] = SoilMonitor::where('device_id',$landDeviceForSoil['device_id'])->order('id desc')->findOrEmpty(); foreach($device as $v) {
if($v['device_type'] == 1){
$data['monitor']['soil_monitor_data'] = SoilMonitor::where('device_id',$v['device_id'])->order('id desc')->findOrEmpty()->toArray();
} }
$landDeviceForAir = LandDevice::where('land_id',$land['id'])->where('device_type',2)->findOrEmpty(); if($v['device_type'] == 2){
if($landDeviceForAir->isEmpty()){ $data['monitor']['air_monitor_data'] = AirMonitor::where('device_id',$v['device_id'])->order('id desc')->findOrEmpty()->toArray();
$land['air_device'] = 0;
}else{
$land['air_device'] = 1;
$land['air_monitor_data'] = AirMonitor::where('device_id',$landDeviceForAir['device_id'])->order('id desc')->findOrEmpty();
} }
$landDeviceForVideo = LandDevice::where('land_id',$land['id'])->where('device_type',3)->findOrEmpty();
if($landDeviceForVideo->isEmpty()){
$land['video_device'] = 0;
}else{
$land['video_device'] = 1;
$land['video_monitor_data'] = '';
} }
return $this->success('请求成功',$land->toArray()); }
return $this->success('请求成功',$data);
} }
// 获取短信验证码 // 获取短信验证码

View File

@ -9,9 +9,6 @@
use app\common\model\geo\Town; use app\common\model\geo\Town;
use app\common\model\geo\Village; use app\common\model\geo\Village;
use app\common\model\land\Land; use app\common\model\land\Land;
use app\common\model\land\LandDevice;
use app\common\model\monitor\AirMonitor;
use app\common\model\monitor\SoilMonitor;
use think\response\Json; use think\response\Json;
class LandController extends BaseApiController class LandController extends BaseApiController
@ -47,28 +44,6 @@
return $this->fail('土地信息不存在'); return $this->fail('土地信息不存在');
} }
$data['pic'] = json_decode($data['pic'],true); $data['pic'] = json_decode($data['pic'],true);
//获取监测数据
$landDeviceForSoil = LandDevice::where('land_id',$params['land_id'])->where('device_type',1)->findOrEmpty();
if($landDeviceForSoil->isEmpty()){
$data['soil_device'] = 0;
}else{
$data['soil_device'] = 1;
$data['soil_monitor_data'] = SoilMonitor::where('device_id',$landDeviceForSoil['device_id'])->order('id desc')->findOrEmpty();
}
$landDeviceForAir = LandDevice::where('land_id',$params['land_id'])->where('device_type',2)->findOrEmpty();
if($landDeviceForAir->isEmpty()){
$data['air_device'] = 0;
}else{
$data['air_device'] = 1;
$data['air_monitor_data'] = AirMonitor::where('device_id',$landDeviceForAir['device_id'])->order('id desc')->findOrEmpty();
}
$landDeviceForVideo = LandDevice::where('land_id',$params['land_id'])->where('device_type',3)->findOrEmpty();
if($landDeviceForVideo->isEmpty()){
$data['video_device'] = 0;
}else{
$data['video_device'] = 1;
$data['video_monitor_data'] = '';
}
return $this->success('请求成功',$data->toArray()); return $this->success('请求成功',$data->toArray());
} }

View File

@ -0,0 +1,10 @@
<?php
namespace app\common\model\land;
use app\common\model\BaseModel;
class LandProduct extends BaseModel
{
protected $name = 'land_product';
}

View File

@ -0,0 +1,10 @@
<?php
namespace app\common\model\product;
use app\common\model\BaseModel;
class ProductDevice extends BaseModel
{
protected $name = 'product_device';
}