diff --git a/app/api/controller/InformationController.php b/app/api/controller/InformationController.php index 8dec60efe..1d5583145 100644 --- a/app/api/controller/InformationController.php +++ b/app/api/controller/InformationController.php @@ -13,7 +13,7 @@ use think\response\Json; class InformationController extends BaseApiController { - public array $notNeedLogin = ['groupServiceInfo','captainInfo','farmerInfo','farmerLandInfo','farmerPondInfo']; + public array $notNeedLogin = ['groupServiceInfo','captainInfo','farmerInfo','farmerInfoByPhone','farmerLandInfo','farmerPondInfo','farmerList']; public function list() { @@ -315,7 +315,13 @@ class InformationController extends BaseApiController return $this->fail('参数错误_worker'); } //获取农户信息 - $farmerInfo = UserInformationg::where('id', $params['user_id'])->field('id,create_user_id,company_id,name,phone,area_id,street_id,village_id,brigade_id,area_id area_name,street_id street_name,village_id village_name,brigade_id brigade_name')->findOrEmpty()->toArray(); + $farmerInfo = UserInformationg::alias('f') + ->leftJoin('company c','f.company_id = c.id') + ->leftJoin('user u','u.id = f.create_user_id') + ->leftJoin('user g','g.id = c.user_id') + ->where('f.id', $params['user_id']) + ->field('f.id,f.create_user_id,f.company_id,f.name,f.phone,f.area_id,f.street_id,f.village_id,f.brigade_id,f.area_id area_name,f.street_id street_name,f.village_id village_name,f.brigade_id brigade_name,c.company_name,f.address,u.nickname as captain_name,g.nickname as group_name') + ->findOrEmpty()->toArray(); if(empty($farmerInfo)){ return $this->fail('用户不存在_worker'); } @@ -368,6 +374,19 @@ class InformationController extends BaseApiController return $this->success('请求成功',$farmerInfo); } + //通过手机号码查找农户 + public function farmerInfoByPhone(): Json + { + $params = $this->request->post(['phone']); + if(empty($params['phone'])){ + return $this->fail('参数错误'); + } + $data = UserInformationg::where('phone',$params['phone']) + ->field('id,name,phone,area_id,street_id,village_id,brigade_id,area_id area_name,street_id street_name,village_id village_name,brigade_id brigade_name,address') + ->findOrEmpty(); + return !$data->isEmpty() ? $this->success('请求成功',$data->toArray()) : $this->fail('请求失败'); + } + //获取农户土地信息 public function farmerLandInfo(): Json { @@ -410,4 +429,108 @@ class InformationController extends BaseApiController ]; return $this->success('请求成功',$resData); } + + //获取农户列表 + public function farmerList(): Json + { + $params = $this->request->post(['farmer_name','farmer_phone','group_name','captain_name','page_no','page_size']); + if(empty($params['page_no']) || empty($params['page_size'])){ + return $this->fail('参数错误'); + } + $search = []; + if(!empty($params['farmer_name'])){ + $search[] = ['f.name','like','%'.$params['farmer_name'].'%']; + } + if(!empty($params['farmer_phone'])){ + $search[] = ['f.phone','like','%'.$params['farmer_phone'].'%']; + } + if(!empty($params['group_name'])){ + $search[] = ['g.nickname','like','%'.$params['group_name'].'%']; + } + if(!empty($params['captain_name'])){ + $search[] = ['u.nickname','like','%'.$params['captain_name'].'%']; + } + $data = UserInformationg::alias('f') + ->field('f.id,f.create_user_id,f.company_id,f.name,f.phone,f.area_id,f.street_id,f.village_id,f.brigade_id,c.company_name,u.nickname as captain_name,g.nickname as group_name,f.area_id area_name,f.street_id street_name,f.village_id village_name,f.brigade_id brigade_name,f.address') + ->leftJoin('company c','f.company_id = c.id') + ->leftJoin('user u','u.id = f.create_user_id') + ->leftJoin('user g','g.id = c.user_id') + ->where($search) + ->page($params['page_no'],$params['page_size'])->order('id desc')->select() + ->each(function($item){ + $item['address'] = $item['area_name'].$item['street_name'].$item['village_name'].$item['brigade_name'].$item['address']; + unset($item['area_name'],$item['street_name'],$item['village_name'],$item['brigade_name'],$item['area_id'],$item['street_id'],$item['village_id'],$item['brigade_id']); + $userInformationgDemand = UserInformationgDemand::field('id,category_child,data')->where('information_id', $item['id'])->where('category_id',6)->where('category_child','in','7,32')->order('id', 'desc')->select()->toArray(); + //是否是种植户 + $is_zz_user = false; + //是否是水产养殖户 + $is_sc_user = false; + //是否是家禽养殖户 + $is_jq_user = false; + //是否是大型动物养殖户 + $is_dw_user = false; + //土地总面积 + $total_land_area = 0; + //池塘总面积 + $total_pond_area = 0; + //家禽养殖场总面积 + $total_henhouse_area = 0; + //动物养殖场总面积 + $total_pasture_area = 0; + foreach($userInformationgDemand as $v){ + if($v['category_child'] == 7){ + $is_zz_user = true; + $total_land_area += floatval($v['data']['area']); + } + if($v['category_child'] == 32){ + if($v['data']['breeding_type'] == 1){//水产 + $is_sc_user = true; + $total_pond_area += floatval($v['data']['area']); + }elseif ($v['data']['breeding_type'] == 2) {//脯乳动物 + $is_jq_user = true; + $total_henhouse_area += floatval($v['data']['area']); + }elseif ($v['data']['breeding_type'] == 3){//家禽 + $is_dw_user = true; + $total_pasture_area += floatval($v['data']['area']); + } + } + } + $str = []; + $area = []; + if($is_zz_user){ + $str[] = '种植户'; + $area[] = $total_land_area; + } + if($is_sc_user){ + $str[] = '水产养殖户'; + $area[] = $total_pond_area; + } + if($is_jq_user){ + $str[] = '家禽养殖户'; + $area[] = $total_henhouse_area; + } + if($is_dw_user){ + $str[] = '家畜养殖户'; + $area[] = $total_pasture_area; + } + $item['farmer_type'] = implode('/',$str); + $item['farmer_area'] = implode('/',$area); + return $item; + })->toArray(); + $count = UserInformationg::alias('f') + ->field('f.id,f.create_user_id,f.company_id,f.name,f.phone,f.area_id,f.street_id,f.village_id,f.brigade_id,c.company_name,u.nickname as captain_name,g.nickname as group_name,f.area_id area_name,f.street_id street_name,f.village_id village_name,f.brigade_id brigade_name,f.address') + ->leftJoin('company c','f.company_id = c.id') + ->leftJoin('user u','u.id = f.create_user_id') + ->leftJoin('user g','g.id = c.user_id') + ->where($search) + ->count(); + $result = [ + 'count' => $count, + 'page_no' => $params['page_no'], + 'page_size' => $params['page_size'], + 'lists' => $data + ]; + return $this->success('请求成功',$result); + + } } diff --git a/app/api/controller/VehicleController.php b/app/api/controller/VehicleController.php index e97583fdf..7374b8ecc 100644 --- a/app/api/controller/VehicleController.php +++ b/app/api/controller/VehicleController.php @@ -236,11 +236,11 @@ class VehicleController extends BaseApiController return $this->fail('当前小组服务公司未签约'); } //获取签约信息 - $contract = Contract::where('party_b',$this->userInfo['company_id'])->where('signing_timer',2)->find(); + $contract = Contract::where('party_b',$this->userInfo['company_id'])->where('signing_timer',2)->findOrEmpty(); + if(empty($contract) || empty($party_a)){ + return $this->fail('未找到签约镇街公司'); + } $party_a = Company::field('id,company_name,master_name,master_phone,master_email,is_contract,organization_code,company_type')->where('id',$contract['party_a'])->find(); - if(empty($contract) || empty($party_a)){ - return $this->fail('未找到签约镇街公司'); - } if($party_a['company_type'] != 16){ return $this->fail('不能与非镇街公司签约'); } @@ -666,6 +666,9 @@ class VehicleController extends BaseApiController } //2、获取小组服务公司签约的镇街公司 $zjCompany = Contract::field('party_a')->where('party_b',$this->userInfo['company_id'])->where('signing_timer',2)->findOrEmpty(); + if($zjCompany->isEmpty()){ + return $this->fail('未获取到小组服务公司签约的镇街公司'); + } //3、获取镇街公司向平台租赁的且未二次租赁给小组公司的车辆 $zjRentCars = VehicleRent::field('car_id')->where('company_id',$zjCompany['party_a'])->where('status',0)->select()->toArray(); $zjRentCars = array_column($zjRentCars,'car_id');