1-种植户 2-家禽养殖户 3-家畜养殖户 4-水产养殖户 $params = $this->request->get(['type','page_no','page_size']); if(empty($params['type']) || !in_array($params['type'],[1,2,3,4])){ return $this->fail('参数错误'); } //设置分页条件 $pageNo = empty($params['page_no']) || $params['page_no'] < 0 ? 1 : $params['page_no']; $pageSize = empty($params['page_size']) || $params['page_size'] < 0 ? 10 : $params['page_size']; switch ($params['type']) { case 1: $data = Db::name('farmer_land_crop')->field('id,user_id,source_code as code,crop_variety as kind,crop_brand as breed,ripe_time,seed_time as create_time') ->where('flag',1)->page($pageNo,$pageSize)->order('seed_time desc')->select()->each(function($item){ if(!empty($item['ripe_time'])){ $item['status'] = '已成熟'; }else{ $item['status'] = '生长中'; } $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); unset($item['ripe_time']); return $item; })->toArray(); $count = Db::name('farmer_land_crop')->field('id,')->where('flag',1)->count(); break; case 2: $data = Db::name('farmer_poultry_breed')->field('id,user_id,code,kind,breed,status,create_time') ->page($pageNo,$pageSize)->order('create_time desc')->select()->each(function($item){ //状态 1-健康 2-产蛋期 3-生病隔离 4-可出栏 5-已出栏 switch ($item['status']) { case 1: $item['status'] = '健康'; break; case 2: $item['status'] = '产蛋期'; break; case 3: $item['status'] = '生病隔离'; break; case 4: $item['status'] = '可出栏'; break; case 5: $item['status'] = '已出栏'; break; } $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); return $item; })->toArray(); $count = Db::name('farmer_poultry_breed')->field('id,')->count(); break; case 3: $data = Db::name('farmer_animal_breed')->field('id,user_id,animal_code as code,animal_kind as kind,animal_breed as breed,animal_status as status,create_time') ->page($pageNo,$pageSize)->order('create_time desc')->select()->each(function($item){ //养殖动物状态 1-健康 2-怀孕中 3-生病隔离中 4-可出栏 5-已出栏 switch ($item['status']) { case 1: $item['status'] = '健康'; break; case 2: $item['status'] = '怀孕中'; break; case 3: $item['status'] = '生病隔离'; break; case 4: $item['status'] = '可出栏'; break; case 5: $item['status'] = '已出栏'; break; } $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); return $item; })->toArray(); $count = Db::name('farmer_animal_breed')->field('id,')->count(); break; case 4: $data = Db::name('farmer_pond_breed')->field('id,user_id,source_code as code,kind,breed,create_time') ->page($pageNo,$pageSize)->order('create_time desc')->select()->each(function($item){ $item['status'] = '生长中'; $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); return $item; })->toArray(); $count = Db::name('farmer_pond_breed')->field('id,')->count(); break; default: $data = []; $count = 0; } $url = env('project.worker_domain').'/api/information/farmerInfo'; foreach($data as $k=>$v) { $farmer = curl_post($url,[],['user_id'=>$v['user_id']]); if(!empty($farmer) && $farmer['code'] == 1){ $data[$k]['address'] = $farmer['data']['area_name'].$farmer['data']['street_name'].$farmer['data']['village_name'].$farmer['data']['brigade_name'].$farmer['data']['address']; $data[$k]['captain_name'] = $farmer['data']['captain_name']; $data[$k]['group_name'] = $farmer['data']['group_name']; $data[$k]['farmer_name'] = $farmer['data']['name']; } $data[$k]['type'] = $params['type']; } $result = [ 'count'=>$count, 'page_no' => $pageNo, 'page_size' => $pageSize, 'lists' => $data ]; return $this->success('请求成功',$result); } public function detail(): Json { //type=>1-种植户 2-家禽养殖户 3-家畜养殖户 4-水产养殖户 $params = $this->request->get(['id','type']); if(empty($params['id']) || empty($params['type']) || !in_array($params['type'],[1,2,3,4])){ return $this->fail('参数错误'); } //获取数据 switch ($params['type']) { case 1: $data = Db::name('farmer_land_crop')->field('id,user_id,land_id,source_code as code,crop_variety as kind,crop_brand as breed,ripe_time,seed_time as create_time')->where('id',$params['id'])->findOrEmpty(); if(!empty($data)){ $data['status'] = !empty($data['ripe_time']) ? '已成熟' : '生长中'; $data['create_time'] = date('Y-m-d H:i:s',$data['create_time']); unset($data['ripe_time']); //获取生长记录 $data['action_lists'] = Db::name('farmer_land_crop_record')->field('action_id,action_content,create_time') ->where('crop_id',$data['id'])->order('create_time desc')->limit(10)->select()->each(function($item){ $action = Db::name('farmer_action')->where('id',$item['action_id'])->findOrEmpty(); if(!empty($action)){ $item['action_name'] = $action['name']; } $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); return $item; })->toArray(); //获取监管记录 $data['check_list'] = Db::name('farmer_land_check')->field('check_status,pic,create_time') ->where('land_id',$data['land_id'])->order('create_time desc')->limit(10)->select()->each(function($item){ //1-正常 2-未及时更新生产状况 3-生产状况与实际不符 $item['status'] = $item['check_status'] == 1 ? '正常' : ($item['check_status'] == 2 ? '未及时更新生产状况' : '生产状况与实际不符'); $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); unset($item['check_status']); return $item; })->toArray(); unset($data['land_id']); } break; case 2: $data = Db::name('farmer_poultry_breed')->field('id,user_id,code,kind,breed,status,create_time')->where('id',$params['id'])->findOrEmpty(); if(!empty($data)){ switch ($data['status']) { case 1: $data['status'] = '健康'; break; case 2: $data['status'] = '产蛋期'; break; case 3: $data['status'] = '生病隔离'; break; case 4: $data['status'] = '可出栏'; break; case 5: $data['status'] = '已出栏'; break; } $data['create_time'] = date('Y-m-d H:i:s',$data['create_time']); //获取生长记录 $data['action_lists'] = Db::name('farmer_poultry_record')->field('action_id,action_content,create_time') ->where('user_id',$data['user_id'])->order('create_time desc')->limit(10)->select()->each(function($item){ $action = Db::name('farmer_action')->where('id',$item['action_id'])->findOrEmpty(); if(!empty($action)){ $item['action_name'] = $action['name']; } $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); return $item; })->toArray(); //获取监管记录 $data['check_list'] = Db::name('farmer_poultry_check')->field('check_status,pic,create_time') ->where('user_id',$data['user_id'])->order('create_time desc')->limit(10)->select()->each(function($item){ //1-正常 2-未及时更新生产状况 3-生产状况与实际不符 $item['status'] = $item['check_status'] == 1 ? '正常' : ($item['check_status'] == 2 ? '未及时更新生产状况' : '生产状况与实际不符'); $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); unset($item['check_status']); return $item; })->toArray(); } break; case 3: $data = Db::name('farmer_animal_breed')->field('id,user_id,animal_code as code,animal_kind as kind,animal_breed as breed,animal_status as status,create_time')->where('id',$params['id'])->findOrEmpty(); if(!empty($data)){ switch ($data['status']) { case 1: $data['status'] = '健康'; break; case 2: $data['status'] = '怀孕中'; break; case 3: $data['status'] = '生病隔离'; break; case 4: $data['status'] = '可出栏'; break; case 5: $data['status'] = '已出栏'; break; } $data['create_time'] = date('Y-m-d H:i:s',$data['create_time']); //获取生长记录 $data['action_lists'] = Db::name('farmer_animal_record')->field('action_id,action_content,create_time') ->where('user_id',$data['user_id'])->order('create_time desc')->limit(10)->select()->each(function($item){ $action = Db::name('farmer_action')->where('id',$item['action_id'])->findOrEmpty(); if(!empty($action)){ $item['action_name'] = $action['name']; } $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); return $item; })->toArray(); //获取监管记录 $data['check_list'] = Db::name('farmer_animal_check')->field('check_status,pic,create_time') ->where('user_id',$data['user_id'])->order('create_time desc')->limit(10)->select()->each(function($item){ //1-正常 2-未及时更新生产状况 3-生产状况与实际不符 $item['status'] = $item['check_status'] == 1 ? '正常' : ($item['check_status'] == 2 ? '未及时更新生产状况' : '生产状况与实际不符'); $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); unset($item['check_status']); return $item; })->toArray(); } break; case 4: $data = Db::name('farmer_pond_breed')->field('id,user_id,pond_id,source_code as code,kind,breed,create_time')->where('id',$params['id'])->findOrEmpty(); if(!empty($data)){ $data['status'] = '生长中'; $data['create_time'] = date('Y-m-d H:i:s',$data['create_time']); //获取生长记录 $data['action_lists'] = Db::name('farmer_pond_record')->field('action_id,action_content,create_time') ->where('pond_id',$data['pond_id'])->order('create_time desc')->limit(10)->select()->each(function($item){ $action = Db::name('farmer_action')->where('id',$item['action_id'])->findOrEmpty(); if(!empty($action)){ $item['action_name'] = $action['name']; } $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); return $item; })->toArray(); //获取监管记录 $data['check_list'] = Db::name('farmer_pond_check')->field('check_status,pic,create_time') ->where('pond_id',$data['pond_id'])->order('create_time desc')->limit(10)->select()->each(function($item){ //1-正常 2-未及时更新生产状况 3-生产状况与实际不符 $item['status'] = $item['check_status'] == 1 ? '正常' : ($item['check_status'] == 2 ? '未及时更新生产状况' : '生产状况与实际不符'); $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); unset($item['check_status']); return $item; })->toArray(); unset($data['pond_id']); } break; default: $data = []; } if(!empty($data)){ $url = env('project.worker_domain').'/api/information/farmerInfo'; $farmer = curl_post($url,[],['user_id'=>$data['user_id']]); if(!empty($farmer) && $farmer['code'] == 1){ $data['address'] = $farmer['data']['area_name'].$farmer['data']['street_name'].$farmer['data']['village_name'].$farmer['data']['brigade_name'].$farmer['data']['address']; $data['captain_name'] = $farmer['data']['captain_name']; $data['group_name'] = $farmer['data']['group_name']; $data['farmer_name'] = $farmer['data']['name']; } } return $this->success('请求成功',$data); } public function landEnv(): Json { $params = $this->request->get(['user_id','start_time','end_time']); if(empty($params['user_id']) || empty($params['start_time']) || empty($params['end_time'])){ return $this->fail('参数错误'); } //获取数据 $data = Db::name('farmer_land_env_data')->where('user_id',$params['user_id'])->whereBetweenTime('create_time', $params['start_time'], $params['end_time'])->order('id asc')->select()->each(function($item){ $item['create_time'] = date('m-d',$item['create_time']); return $item; })->toArray(); if(empty($data)){ return $this->fail('暂无数据'); } $result = [ ['title' => '土地温度','categories' => array_column($data,'create_time'),'series'=>[['name'=>'土地温度','data'=>array_column($data,'soil_temp')]],'max'=>max(array_column($data,'soil_temp'))], ['title' => '土地湿度','categories' => array_column($data,'create_time'),'series'=>[['name'=>'土地湿度','data'=>array_column($data,'soil_mois')]],'max'=>max(array_column($data,'soil_mois'))], ['title' => '土壤磷含量','categories' => array_column($data,'create_time'),'series'=>[['name'=>'土壤磷含量','data'=>array_column($data,'p_content')]],'max'=>max(array_column($data,'p_content'))], ['title' => '土壤氮含量','categories' => array_column($data,'create_time'),'series'=>[['name'=>'土壤氮含量','data'=>array_column($data,'n_content')]],'max'=>max(array_column($data,'n_content'))], ['title' => '土壤钾含量','categories' => array_column($data,'create_time'),'series'=>[['name'=>'土壤钾含量','data'=>array_column($data,'k_content')]],'max'=>max(array_column($data,'k_content'))], ]; return $this->success('请求成功',$result); } }