private function getAreaHospitalData($nowPage, $pageSize) {/*{{{*/ $res = array(); $cityRes = $proviceRes = array(); $provinceList = Area::getAllProvinceNameList(); $cityList = Area::getCities(); foreach($provinceList as $province) { echo date('Y-m-d H:i:s')."计算".$province."的数据。。。。\n"; foreach($cityList[$province] as $city) { if($province != $city) { $cityParams = array('province'=>$province, 'city'=>$city); //通过市级查询 $itemCity = $this->buildAreaData($cityParams, $nowPage, $pageSize); if(false == empty($itemCity)) { $cityRes[] = $itemCity; } unset($itemCity); } BeanFinder::get('LocalCache')->removeAll(); } //通过省级查询 $provinceParams = array('province'=>$province); $itemProvice = $this->buildAreaData($provinceParams, $nowPage, $pageSize); if(false == empty($itemProvice)) { $proviceRes[] = $itemProvice; } unset($itemProvice); BeanFinder::get('LocalCache')->removeAll(); } $data = array_merge($cityRes, $proviceRes); return $this->formatData($data); }/*}}}*/
private function dealSearchOptions($request, $response) { /*{{{*/ $response->isMatchPrecisely = $request->getRequest('isMatchPrecisely', 0); $response->filters = $request->getRequest('filters', array()); $response->hospitalName = $request->getRequest('hospitalName', ''); $response->facultyName = $request->getRequest('facultyName', ''); $response->doctorName = $request->getRequest('doctorName', ''); $response->diseaseName = $request->getRequest('diseaseName', ''); $response->userName = $request->getRequest('userName', ''); $response->serviceDef = $request->getRequest('serviceDef', ServiceDef::TYPE_TELORDER); $response->doctorType = $request->getRequest('doctorType', ''); $response->groups = $request->getRequest('groups', 0); $response->groupCategories = $request->getRequest('groupCategories', 0); $response->childCategories = $request->getRequest('childCategories', 0); $response->provinces = $request->getRequest('provinces', array()); $response->canBind = $request->getRequest('canBind', 0); $response->provNameList = Area::getAllProvinceNameList(); }
protected function getData($nowPage, $pageSize) {/*{{{*/ $facultyIds = FacultyClient::getInstance()->getFacultyListByOption($nowPage, $pageSize); $faculties = DAL::get()->find('Faculty', $facultyIds['ids']); $provinces = Area::getAllProvinceNameList(); $provinces[] = "全国"; $res = array(); foreach ($faculties as $faculty) { $info['key'] = $faculty->name; $offices = $doctorInfos = array(); foreach ($provinces as $province) { if (Area::isZXS($province)) { $cities = array($province); } elseif($province == "全国") { $cities = array("全国"); } else { $cities = Area::getProvinceCities($province); $cities[] = $province; } foreach ($cities as $city) { $options = array(); $options['facultyId'] = $faculty->id; $options['orderBy']['rank'] = true; $options['isVirtual'] = 0; $options['hospitalIsActivated'] = 1; if ($city != "全国") { if (Area::isProvince($city) || Area::isZXS($city)) { $options['province'] = $city; $areaUrl = "http://haoping.haodf.com/keshi/".$faculty->getEncodeId()."/keshi/".Area::getProvKeyByName($city).".htm"; } else { $options['city'] = $city; $str = Area::retrieveCityEnglishName($province, Area::getProvKeyByName($province), $city); $areaUrl = "http://haoping.haodf.com/keshi/".$faculty->getEncodeId()."/keshi/".Area::getProvKeyByName($province).".htm?city=".$str; } } else { $areaUrl = "http://haoping.haodf.com/keshi/".$faculty->getEncodeId()."/keshi/all.htm"; } $hospitalfaculties = HospitalFacultyClient::getInstance()->getHospitalFacultyByOption(1, 30, $options); if (false == empty($hospitalfaculties)) { $office['area'] = $city; $office['areaurl'] = $areaUrl; foreach ($hospitalfaculties as $hospitalfaculty) { if ($hospitalfaculty->doctorCount < 1) { continue; } $officeInfo['office']['officename'] = $hospitalfaculty->hospital->name.$hospitalfaculty->name; $officeInfo['office']['city'] = $hospitalfaculty->hospital->city; $officeInfo['office']['officeurl'] = $hospitalfaculty->getUrl(); $officeInfo['office']['aptitude'] = $hospitalfaculty->hospital->getGradeStr(); $officeInfo['office']['gooddoctornum'] = $hospitalfaculty->doctorCount; $officeInfo['office']['votenum'] = $hospitalfaculty->rank; $office[] = $officeInfo; $officeInfo = array(); } $offices[] = array('offices' =>$office); $office = array(); } $page = $params = array(); $page['nowPage'] = 1; $page['pageSize'] = 30; $doctorList = DoctorClient::getInstance()->getDoctorBetweenFaculty($faculty->id, $faculty->id+1, $options, $page); if (false == empty($doctorList['list'])) { $doctors['area'] = $city; $pre = "all"; if ($city != "全国") { $pre = Area::getProvKeyByName($province); } $doctors['areaurl'] = "http://haoping.haodf.com/keshi/".$faculty->getEncodeId()."/daifu/".$pre.".htm"; $doctorInfo = array(); foreach ($doctorList['list'] as $doctor) { if (74154 != $doctor->id && $doctor->hospitalfaculty->hospital->isActivated && $doctor->hospitalfaculty->hospital->name != "未收录医院") { $doctors['doctor']['doctorname'] = $doctor->name; $doctors['doctor']['doctorurl'] = $doctor->getUrl(); $doctors['doctor']['doctorgrade'] = $doctor->grade ? $doctor->grade : " "; $doctors['doctor']['doctorjob'] = $doctor->educateGrade ? $doctor->educateGrade : " "; $doctors['doctor']['hospitalname'] = $doctor->hospitalfaculty->hospital->commonName; $doctors['doctor']['hospitalurl'] = $doctor->hospitalfaculty->hospital->getUrl(); $doctors['doctor']['votenum'] = $doctor->rank; $doctorInfo[] = $doctors; $doctors = array(); } } $doctorInfos[] = array('doctors' => $doctorInfo); $doctorInfo = array(); } } BeanFinder::get('LocalCache')->removeAll(); } $offices = array_filter($offices); $doctorInfos = array_filter($doctorInfos); $info = array_merge($info, $offices, $doctorInfos); $res[] = array('item' => $info); $info = array(); } return $res; }/*}}}*/