예제 #1
0
 /**
  * 查询科室下的对应疾病集
  * @author gaoqing
  * @date 2016-04-08
  * @param int $columns 在页面中,显示的列数
  * @return array 科室下的对应疾病集
  */
 private static function getDepartmentDis($columns)
 {
     $departmentDis = array();
     $department = new Department();
     $disease = new Disease();
     //get the first level departments
     $firstLevel = $department->getDepartmentLevel1(1);
     if (self::isNotNull($firstLevel)) {
         foreach ($firstLevel as $level1) {
             //select diseases that all belong current first level department
             $inner = array();
             $inner['department'] = $level1;
             $size = count($firstLevel) * $columns;
             $inner['disease'] = $disease->getDiseaseByDepartment($level1['id'], 'class_level1', 0, $size);
             $departmentDis[] = $inner;
         }
         return $departmentDis;
     }
     return $departmentDis;
 }
 public function diseasehtmlSitemap()
 {
     $this->disableLayout();
     $departmentObj = new Department();
     $disease = new Disease();
     $symptom = new Symptom();
     //1、科室查询
     $departments = Department::find()->asArray()->all();
     $departmentsMap = [];
     //查询出所有一级科室
     foreach ($departments as $k => $v) {
         if ($v['level'] == 1) {
             $departmentsMap[$v['id']]['level1'] = $v;
         }
     }
     //查询出所有二级科室
     foreach ($departments as $k => $v) {
         foreach ($departmentsMap as $kk => $vv) {
             if ($v['class_level1'] == $kk && (int) $v['id'] !== $kk) {
                 $departmentsMap[$kk]['level2'][] = $v;
             }
         }
     }
     $model['departments'] = $departmentsMap;
     //2、疾病查询
     //根据一级科室查询该科室下所有疾病
     foreach ($departmentsMap as $k => $v) {
         $level1 = $v['level1'];
         $diseaseMap[$k]['department'] = $level1;
         $diseaseMap[$k]['disease'] = $disease->getDiseaseByDepartment($level1['id'], 'class_level1', 0, 8511);
     }
     $model['disease'] = $diseaseMap;
     //        print_r($diseaseMap);
     //        exit;
     //3、部位查询
     $parts = Part::find()->asArray()->all();
     $partsMap = [];
     //查询出所有一级部位
     foreach ($parts as $k => $v) {
         if ($v['level'] == 1) {
             $partsMap[$v['id']]['level1'] = $v;
         }
     }
     //查询出所有二级科室
     foreach ($parts as $k => $v) {
         foreach ($partsMap as $kk => $vv) {
             if ($v['part_level1'] == $kk && (int) $v['id'] !== $kk) {
                 $partsMap[$kk]['level2'][] = $v;
             }
         }
     }
     $model['parts'] = $partsMap;
     //4、症状查询
     //根据一级部位查询该部位下所有症状
     foreach ($partsMap as $k => $v) {
         $level1 = $v['level1'];
         $symptomMap[$k]['part'] = $level1;
         $symptomMap[$k]['symptom'] = $symptom->getSymptomsByPartid($level1['id'], 'part_level1', 0, 12398);
     }
     //        print_r($symptomMap);
     //        exit;
     $model['symptom'] = $symptomMap;
     $renderContent = $this->render('diseasehtmlsitemap', ['model' => $model]);
     $frontend = \Yii::getAlias("@frontend");
     $sitemapFolder = 'map';
     $fileFolder = $frontend . '/web/' . $sitemapFolder;
     if (!file_exists($fileFolder) || !is_dir($fileFolder)) {
         mkdir($fileFolder, 0755);
     }
     $fileName = 'index.shtml';
     if (file_exists($fileFolder . '/' . $fileName)) {
         unlink($fileFolder . '/' . $fileName);
     }
     if (file_put_contents($fileFolder . '/' . $fileName, $renderContent)) {
         $frontDomain = \Yii::getAlias("@frontdomain");
         return ['flag' => 1, 'url' => $frontDomain . '/' . $sitemapFolder . '/' . $fileName, 'name' => $fileName];
     }
     return [];
 }