308 lines
14 KiB
PHP
308 lines
14 KiB
PHP
<?php
|
|
|
|
namespace app\adminapi\controller\code;
|
|
|
|
use app\adminapi\controller\BaseAdminController;
|
|
use think\facade\Db;
|
|
use think\response\Json;
|
|
|
|
class CodeController extends BaseAdminController
|
|
{
|
|
public function lists(): Json
|
|
{
|
|
//type=>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);
|
|
}
|
|
} |