/** * 症状首页可能疾病缓存数据 * lc 2016-4-15 * @param type $cacheKey 缓存的唯一标识 * @param type $parms 单条症状所有字段内容数组 * @param type $forceCache 是否强制缓存,默认不强制缓存 * @return type */ public static function cacheSymptomRelateDisease($cacheKey, $parms, $forceCache = false) { $symptomid = $parms['id']; $cache = \Yii::$app->cache_data_file; $key = $cacheKey . '_' . $symptomid; $data = $cache->get($key); if ($forceCache) { $data = false; } if (!isset($data) || empty($data)) { $relate = new Relate(); $disease = new Disease(); $department = new Department(); $diseaseList = $relate->getRelateDiseases($symptomid); //根据关联表查询出疾病id,该症状对应的疾病下的所有疾病信息 // print_r($diseaseList);exit; if (!empty($diseaseList)) { $diseaseId = []; foreach ($diseaseList as $k => $v) { $diseaseId[] = $v['diseaseid']; } $diseaseMap = $disease->batchGetDiseaseById($diseaseId); //该症状对应的疾病下的所有疾病信息 $symptomMap = $relate->batchGetSymptomsByDisid($diseaseId); //该症状对应的疾病下对应的所有相关症状 $diseaseIdStr = implode(',', $diseaseId); $departmentMap = $department->batchGetDepartmentsByDisid($diseaseIdStr); //该症状对应的疾病对应的所有科室 // print_r($departmentMap);exit; foreach ($symptomMap as $k => $v) { $disId = $v['diseaseid']; $symId = $v['symptomid']; foreach ($diseaseMap as $kk => $vv) { $pinyin = $vv['pinyin_initial']; if ($vv['id'] == $disId) { $tmp[$pinyin][] = $v; } } } $diseaseTmp['relDisease'] = $diseaseMap; $diseaseTmp['relSymptom'] = $tmp; $disTmp = ['diseaseMap' => $diseaseMap, 'symptomMap' => $symptomMap, 'departmentMap' => $departmentMap, 'diseaseTmp' => $diseaseTmp, 'diseaseId' => $diseaseId]; $cache->set($key, $disTmp); return $disTmp; } return array(); } else { return $data; } }