model = (new Campus()); } //获取全部校区 public function getAll(array $where){ $res = [ 'code'=>0, 'msg'=>'缺少筛选条件', 'data'=>[] ]; if(!$where){ return $res; } $model = $this->model; //判断用没有员工id if(!empty($where['personnel_id'])){ //获取员工归属的校区id $campus_id = $this->getPersonnelCamousId($where['personnel_id']); if(!$campus_id){ $res = [ 'code'=>0, 'msg'=>'暂无归属校区', 'data'=>[] ]; return $res; } $model = $model->whereIn('id',$campus_id); } $data = $model->select()->toArray(); foreach ($data as &$v){ $campus_coordinates_arr = json_decode($v['campus_coordinates'],true); $v['campus_coordinates_arr'] = [ 'address'=>$campus_coordinates_arr['address'] ?? '', 'lat'=>$campus_coordinates_arr['lat'] ?? '', 'lng'=>$campus_coordinates_arr['lng'] ?? '', ]; } $res = [ 'code'=>1, 'msg'=>'操作成功', 'data'=>$data ]; return $res; } /** * 查询员工归属的校区id * @param $personnel_id 员工表id */ private function getPersonnelCamousId($personnel_id){ //这里要去重 $campus_id = CampusPersonRole::where('person_id',$personnel_id) ->distinct(true) ->column('campus_id'); return $campus_id; } }