diff --git a/app/api/controller/AnimalBreedController.php b/app/api/controller/AnimalBreedController.php new file mode 100644 index 00000000..a80b3594 --- /dev/null +++ b/app/api/controller/AnimalBreedController.php @@ -0,0 +1,217 @@ +request->post(['user_id','kind','breed','gender','age','status','weight','pic']); + if(empty($params['user_id']) || empty($params['name']) || empty($params['breed']) || empty($params['type']) || !in_array($params['type'],[1,2]) || empty($params['age']) || empty($params['status']) || !in_array($params['status'],[1,2,3,4]) || empty($params['weight'])){ + return $this->fail('参数错误'); + } + //写入数据 + Db::transaction(function () use($params) { + $animalId = Db::name('farmer_animal_breed')->insertGetId([ + 'user_id' => $params['user_id'], + 'animal_code' => '', + 'animal_kind' => $params['kind'], + 'animal_breed' => $params['breed'], + 'animal_gender' => $params['gender'], + 'animal_age' => $params['age'], + 'animal_status' => $params['status'], + 'animal_weight' => $params['weight'], + 'create_time' => time() + ]); + if(!empty($params['pic'])){ + Db::name('farmer_animal_pic')->insert([ + 'animal_id' => $animalId, + 'pic' => $params['pic'], + 'create_time' => time() + ]); + } + }); + //返回信息 + return $this->success('添加成功'); + } + + //获取饲养动物详情 + public function animalInfo(): Json + { + $params = $this->request->get(['animal_id']); + if(empty($params['animal_id'])){ + return $this->fail('参数错误'); + } + $data = Db::name('farmer_animal_breed')->where('id',$params['animal_id'])->findOrEmpty(); + $data['pic_detail'] = Db::name('farmer_animal_pic')->field('pic,create_time')->where('animal_id',$params['animal_id'])->order('id desc')->findOrEmpty(); + $data['create_time'] = date('Y-m-d H:i:s',$data['create_time']); + $data['pic_detail']['create_time'] = date('Y-m-d H:i:s',$data['pic_detail']['create_time']); + return $this->success('请求成功',$data); + } + + //饲养动物列表 + public function animalList(): Json + { + $params = $this->request->get(['user_id','page_no','page_size','keyword']); + if(empty($params['user_id'])){ + 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']; + //设置搜素条件 + $query = 'user_id = '.$params['user_id']; + if(!empty($params['keyword'])){ + $query .= ' and (animal_code LIKE "%'.$params['keyword'].'%" or animal_kind LIKE "%'.$params['keyword'].'%" or animal_breed LIKE "%'.$params['keyword'].'%")'; + } + //获取数据 + $data = Db::name('farmer_animal_breed')->whereRaw($query)->page($pageNo,$pageSize)->order('id desc')->select()->toArray(); + //返回数据 + return $this->success('请求成功',$data); + } + + //更新饲养动物状态 + public function animalStatus(): Json + { + $params = $this->request->post(['animal_id','status']); + if(empty($params['animal_id']) || empty($params['status']) || !in_array($params['status'],[1,2,3,4])){ + return $this->fail('参数错误'); + } + $result = Db::name('farmer_animal_breed')->where('id',$params['animal_id'])->update(['animal_status'=>$params['status']]); + return $result ? $this->success('更新成功') : $this->fail('更新失败'); + } + + //上传动物养殖情况图片 + public function addAnimalPic(): Json + { + $params = $this->request->post(['animal_id','pic']); + if(empty($params['animal_id']) || empty($params['pic'])){ + return $this->fail('参数错误'); + } + //写入数据 + $params['create_time'] = time(); + $result = Db::name('farmer_animal_pic')->insert($params); + //返回 + return $result ? $this->success('添加成功') : $this->fail('添加失败'); + } + + //动物养殖情况图片列表 + public function animalPicList(): Json + { + //获取参数 + $params = $this->request->get(['animal_id']); + if(empty($params['animal_id'])){ + return $this->fail('参数错误'); + } + $data = Db::name('farmer_animal_pic')->where('animal_id',$params['animal_id'])->order('id desc')->select()->each(function($item){ + $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); + return $item; + })->toArray(); + return $this->success('请求成功',$data); + } + + //添加饲养动物操作记录 + public function addAnimalRecord(): Json + { + $params = $this->request->post(['user_id','action_id','action_content']); + if(empty($params['user_id']) || empty($params['action_id']) || empty($params['action_content'])){ + return $this->fail('参数错误'); + } + if(empty(json_decode($params['action_content']))) { + return $this->fail('参数错误'); + } + //写入数据 + $params['create_time'] = time(); + $result = Db::name('farmer_animal_record')->insert($params); + //返回 + return $result ? $this->success('添加成功') : $this->fail('添加失败'); + } + + //删除饲养动物操作记录 + public function delAnimalRecord(): Json + { + $params = $this->request->post(['record_id']); + if(empty($params['record_id'])){ + return $this->fail('参数错误'); + } + $result = Db::name('farmer_animal_record')->where('id',$params['record_id'])->delete(); + return $result ? $this->success('删除成功') : $this->fail('删除失败'); + } + + //编辑饲养动物操作记录 + public function ediAnimalRecord(): Json + { + $params = $this->request->post(['record_id','action_content']); + if(empty($params['record_id']) || empty($params['action_content'])){ + return $this->fail('参数错误'); + } + if(empty(json_decode($params['action_content']))) { + return $this->fail('参数错误'); + } + //修改数据 + $result = Db::name('farmer_animal_record')->where('id',$params['record_id'])->update(['action_content'=>$params['action_content']]); + //返回 + return $result ? $this->success('修改成功') : $this->fail('修改失败'); + } + + //获取饲养动物操作记录详情 + public function animalRecordInfo(): Json + { + $params = $this->request->get(['record_id']); + if(empty($params['record_id'])){ + return $this->fail('参数错误'); + } + $data = Db::name('farmer_animal_record')->where('id',$params['record_id'])->findOrEmpty(); + if(empty($data)){ + return $this->fail('数据不存在'); + } + $data['action_content'] = json_decode($data['action_content'],true); + $data['action_detail'] = Db::name('farmer_action_detail')->where('action_id','in',$data['action_id'])->select()->toArray(); + return $this->success('请求成功',$data); + } + + //获取饲养动物操作记录列表 + public function animalRecordList(): Json + { + $params = $this->request->get(['user_id','action_type_id','page_no','page_size']); + if(empty($params['user_id']) || empty($params['action_type_id'])){ + 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']; + //获取操作分类下的操作id + $actions = Db::name('farmer_action')->where('type_id',$params['action_type_id'])->select()->toArray(); + $actionIds = array_column($actions,'id'); + //获取数据 + $data = Db::name('farmer_animal_record')->where('user_id',$params['user_id'])->where('action_id','in',$actionIds)->page($pageNo,$pageSize)->order('create_time desc')->select()->each(function($item){ + $item['action_name'] = Db::name('farmer_action')->where('id',$item['action_id'])->findOrEmpty()['name']; + $item['action_content'] = json_decode($item['action_content'],true); + $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); + return $item; + })->toArray(); + return $this->success('请求成功',$data); + } + + //获取农户动物饲养环境监测数据 + public function animalEnvData(): Json + { + $params = $this->request->get(['user_id']); + if(empty($params['user_id'])){ + return $this->fail('参数错误'); + } + $data = Db::name('farmer_animal_env_data')->where('user_id',$params['user_id'])->whereDay('create_time', date('Y-m-d',time()))->findOrEmpty(); + return $this->success('请求成功',$data); + } + } \ No newline at end of file diff --git a/app/api/controller/LandPlantController.php b/app/api/controller/LandPlantController.php index c4132dd4..0e00b048 100644 --- a/app/api/controller/LandPlantController.php +++ b/app/api/controller/LandPlantController.php @@ -179,6 +179,9 @@ return $this->fail('参数错误'); } $data = Db::name('farmer_land_crop_record')->where('id',$params['record_id'])->findOrEmpty(); + if(empty($data)){ + return $this->fail('数据不存在'); + } $data['action_content'] = json_decode($data['action_content'],true); $data['action_detail'] = Db::name('farmer_action_detail')->where('action_id','in',$data['action_id'])->select()->toArray(); return $this->success('请求成功',$data); @@ -196,6 +199,7 @@ $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']; $data = Db::name('farmer_land_crop_record')->where('crop_id',$params['crop_id'])->page($pageNo,$pageSize)->order('create_time desc')->select()->each(function($item){ + $item['action_name'] = Db::name('farmer_action')->where('id',$item['action_id'])->findOrEmpty()['name']; $item['action_content'] = json_decode($item['action_content'],true); $item['create_time'] = date('Y-m-d H:i:s',$item['create_time']); return $item; diff --git a/app/api/controller/UserController.php b/app/api/controller/UserController.php index a4b4abb2..5ba742dc 100644 --- a/app/api/controller/UserController.php +++ b/app/api/controller/UserController.php @@ -46,6 +46,26 @@ class UserController extends BaseApiController } $curl_result['data']['land_detail'] = $lands; } + //判断是否是家畜养殖户 + if($curl_result['data']['is_dw_user']){ + //获取家畜养殖数量 + $animalCount = Db::name('farmer_animal_breed')->where('user_id',$params['user_id'])->count(); + //获取家畜是公的数量 + $maleCount = Db::name('farmer_animal_breed')->where('user_id',$params['user_id'])->where('animal_gender',1)->count(); + //获取家畜是母的数量 + $maternalCount = Db::name('farmer_animal_breed')->where('user_id',$params['user_id'])->where('animal_gender',2)->count(); + //获取家畜养殖种类 + $animalKind = Db::name('farmer_animal_breed')->distinct(true)->where('user_id',$params['user_id'])->limit(4)->column('animal_kind'); + //获取家畜养殖具体品种 + $animalBreed = Db::name('farmer_animal_breed')->distinct(true)->where('user_id',$params['user_id'])->limit(4)->column('animal_breed'); + $curl_result['data']['animal_detail'] = [ + 'total_count' => $animalCount, + 'male_count' => $maleCount, + 'maternal_count' => $maternalCount, + 'kind' => $animalKind, + 'breed' => $animalBreed + ]; + } //返回数据 return json($curl_result); } @@ -72,9 +92,16 @@ class UserController extends BaseApiController $ar2[]=$val; } } - $arr1[$value['type_name']] = $ar2; + $arr1[$value['type_name']]['type_id'] = $value['type_id']; + $arr1[$value['type_name']]['actions'] = $ar2; $ar2 =[]; } + if($params['type'] == 3){ + foreach($arr1 as $k=>$v) { + $actionIds = array_column($v['actions'],'id'); + $arr1[$k]['action_record'] = Db::name('farmer_animal_record')->where('action_id','in',$actionIds)->order('id desc')->limit(5)->select(); + } + } return $this->success('请求成功',$arr1); }