/** * 疾病图集 * @author gaoqing * @date 2016-03-25 * @return string 视图 */ public function actionDisimages() { $view = "disease_images"; $dname = $this->helpGparam('dname', ""); $dname = trim($dname, '/'); $domudle = $this->helpGparam('dmodule', 'tuji'); $domudle = trim($domudle, '/'); $pageStr = trim(trim($domudle, 'tuji'), '_'); $page = 1; if (!empty($pageStr)) { $page = intval($pageStr); } $disease = $this->diseaseService->getDiseasesByPinyin($dname, false, false, false, false); //图集信息 $icondition = ['flag' => 1, 'relid' => $disease['id']]; $images = Image::search($icondition); $imagesList = $images['list']; //获取相关疾病图集 $relDiseaseImages = ArticleService::getRelDiseaseImages($disease['id'], 6); $return_img_list = []; foreach ($imagesList as $k => $v) { $v['url'] = \librarys\helpers\utils\Url::getuploadfileUrl(1, $v['name']); $return_img_list[] = $v; } $params = ['disease' => $disease, 'imagesList' => $return_img_list, 'relDiseaseImages' => $relDiseaseImages]; return $this->renderPartial($view, $params); }
/** * 根据疾病id, 获取当前疾病相关疾病的图集 * @author gaoqing * @date 2016-05-05 * @param int $diseaseid 疾病id * @param int $size 所需的个数 * @return array 相关疾病的图集 */ public static function getRelDiseaseImages($diseaseid, $size) { $relDiseaseImages = []; //1、得到所有的相关疾病 $disease = new Disease(); $relDiseases = $disease->getDiseaseDisByDisid($diseaseid); //2、得到相关疾病的图集 if (isset($relDiseases) && !empty($relDiseases)) { $notHasImages = []; $inner = []; $relDiseaseImagesIndex = 0; foreach ($relDiseases as $relDisease) { $images = []; $inner['disease'] = $relDisease; $inner['images'] = $images; //2.1、如果当前图集,已经够 $size 了,就停止查询 if ($relDiseaseImagesIndex == 6) { break; } //2.2、得到疾病图集 $icondition = ['flag' => 1, 'relid' => $relDisease['id']]; $imagesTemp = Image::search($icondition); if (isset($imagesTemp['list']) && !empty($imagesTemp['list'])) { $images = $imagesTemp['list']; $inner['images'] = $images; $relDiseaseImages[] = $inner; $relDiseaseImagesIndex++; } else { $notHasImages[] = $inner; } } $relDiseaseImagesCount = count($relDiseaseImages); /* * 3.1、当前 $relDiseaseImages 中不到指定的个数 $size时: * 3.2、计算出,距离 $size 所需的个数 $needCount * 3.3、从 $notHasImages 中,提前 $needCount 个数据 */ if ($relDiseaseImagesCount < $size) { $needCount = $size - $relDiseaseImagesCount; $needArr = array_slice($notHasImages, 0, $needCount); $relDiseaseImages = array_merge($relDiseaseImages, $needArr); } } return $relDiseaseImages; }
/** * 症状图集 * lc 2016-4-1 * @return string 视图 */ public function actionSymimages() { $view = "symptom_images"; $dname = $this->helpGparam('dname', ""); $dname = trim($dname, '/'); $domudle = $this->helpGparam('dmodule', 'tuji'); $domudle = trim($domudle, '/'); $pageStr = trim(trim($domudle, 'tuji'), '_'); $page = 1; if (!empty($pageStr)) { $page = intval($pageStr); } $condition = ["{{%symptom}}.pinyin_initial" => $dname]; $disease = $this->symptom->getSymptomByCondition($condition, [], 1, 0); if (!isset($disease) || empty($disease)) { throw new NotFoundHttpException("当前访问的页面不存在!"); } $disease = $disease[0]; if (!empty($disease)) { $symptomContent = SymptomContent::find()->select('examine')->where(['id' => $disease['id']])->asArray(true)->one(); if (isset($symptomContent) && !empty($symptomContent)) { $disease = array_merge($disease, $symptomContent); } } //图集信息 $icondition = ['flag' => 2, 'relid' => $disease['id']]; $size = 1; $paging = $this->helpPaging('pager')->setSize($size)->setPageSetSize(9)->setUrlFormat('/' . $dname . '/tuji_%d' . '/')->setCurrentClass('cupat'); $offset = $paging->getOffset(); $images = Image::search($icondition, $offset, $size, 'id DESC', true); $imagesList = $images['list']; $paging->setTotal($images['total']); //获取相关疾病文章 $relArtsAndAsks = CacheHelper::getCache('frontend_symptom_detail_xgwz', ['title' => $disease['name'], 'id' => $disease['id'], 'diseaseid' => $disease['id'], 'pinyin' => $disease['pinyin']]); $relArticles = $relArtsAndAsks['relArticles']; //相关问答 $asks = $relArtsAndAsks['relAsks']; //大家还在找部分 $stillFind = $this->getStillFindDatas($disease['name']); //右侧:最新文章 $lastestArticles = $this->getLatestArticles(); $return_img_list = []; foreach ($imagesList as $k => $v) { $v['url'] = \librarys\helpers\utils\Url::getuploadfileUrl(2, $v['name']); $return_img_list[] = $v; } $params = ['disease' => $disease, 'imagesList' => $return_img_list, 'relArticles' => $relArticles, 'paging' => $paging, 'asks' => $asks, 'lastestArticles' => $lastestArticles, 'stillFind' => $stillFind]; return $this->render($view, $params); }