Example #1
0
 /**
  * 获取疾病文章的相关文章
  * @author gaoqing
  * @date 2016-04-26
  * @param array $params 参数
  * @return array 疾病文章的相关文章集
  */
 private static function getRelArticlesBySymptomid($symptomid, $iswapjb = false)
 {
     $articleids = [];
     $darticle = new DArticle();
     $rarticles = $darticle->listByCondition([['status' => '99'], ['symptomid' => $symptomid]], 22, 0, 'id DESC');
     if (isset($rarticles) && !empty($rarticles)) {
         $relArticles = $rarticles;
         if ($iswapjb) {
             foreach ($relArticles as &$relArticle) {
                 $date_path = date('Y/md', $relArticle['inputtime']);
                 $article_path = sprintf("%s/%s/%d.shtml", 'article', $date_path, $relArticle['id']);
                 $relArticle['url'] = sprintf('%s/%s', \Yii::getAlias('@jb_domain'), $article_path);
                 $relArticle['wap_url'] = sprintf('%s/%s', \Yii::getAlias('@mjb_domain'), $article_path);
             }
         }
     } else {
         $relArticles = [];
     }
     return $relArticles;
 }
 /**
 * 文章sitemap
 * 
 * <url> 
  <loc>http://m.jb.9939.com/article/2009/0327/22.shtml</loc>
  <mobile:mobile type="mobile"/>
  <lastmod>2009-12-14</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.8</priority>
  </url>
 */
 public function articleSitemap()
 {
     $this->_changefreq = 'daily';
     $this->_priority = '0.8';
     $where = $this->_ownership;
     //目录
     if ($where == 'pc') {
         $frontend = \Yii::getAlias("@frontend");
         $frontDomain = \Yii::getAlias("@frontdomain");
     } elseif ($where == 'wap') {
         $frontend = \Yii::getAlias("@wapjb");
         $frontDomain = \Yii::getAlias("@mjb_domain");
     }
     $sitemapFolder = $this->_baidu ? 'sitemap/sitemapbaiduaricleindex' : 'sitemap/sitemaparicleindex';
     $fileFolder = $frontend . '/web/' . $sitemapFolder;
     if (!file_exists($fileFolder) || !is_dir($fileFolder)) {
         mkdir($fileFolder, 0755, true);
     }
     //判断jb还是wapjb
     $type = $where == 'pc' ? 'article' : 'wap_article';
     //文章数据
     $art_obj = new Article();
     $limit = 10000;
     $sitemap_site = $this->getSitemapCount($fileFolder);
     $offset = $sitemap_site['limit'];
     $articles = $art_obj->listByCondition([['status' => 99]], $limit, $offset, 'id ASC');
     $flag = count($articles) == $limit ? 1 : 2;
     //为2时提示已经生成完毕
     //xml
     $sitemap = '<?xml version="1.0" encoding="UTF-8"?>';
     $sitemap .= $this->_baidu ? '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/">' : '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
     $sitemap .= $this->setSitemapURL($articles, $type);
     $sitemap .= '</urlset>';
     //写入计数文件
     $this->setSitemapCount(['limit' => (int) $offset + $limit], $fileFolder);
     $name_tail = intval($offset / 10000 + 1);
     $fileName = 'sitemap' . $name_tail . '.xml';
     if (file_put_contents($fileFolder . '/' . $fileName, $sitemap)) {
         $res = $this->generateSitemapIndex($fileFolder, $sitemapFolder);
         return ['flag' => $flag, 'url' => $frontDomain . '/' . $sitemapFolder . '/' . $fileName, 'name' => $fileName, 'siteindex' => $res['url']];
     }
     return [];
 }
Example #3
0
 /**
  * 右侧公共信息,跟疾病有关的
  * lc 2016-4-6
  * @param type $symptomid
  * @param array $filter  ['disease','relSymptom'] 筛选需要的数据 
  * @return type
  */
 public function getRightInfo($symptomid, $filter = [])
 {
     $cacheHelper = new CacheHelper();
     $filter = !empty($filter) ? $filter : ['disease', 'articles', 'doctorInfos', 'leftDoctor', 'medicalDepartment', 'relSymptom'];
     $model = [];
     $diseaseList = [];
     $parms = ['id' => $symptomid];
     $diseaseCache = $cacheHelper->getCache('frontend_symptom_index_knjb', $parms);
     if (in_array('medicalDepartment', $filter) || in_array('disease', $filter)) {
         if (!empty($diseaseCache)) {
             $model['disid'] = $diseaseCache['diseaseId'];
             //症状首页左侧可能疾病及伴随症状
             $model['disease'] = $diseaseCache['diseaseTmp'];
         }
     }
     //右侧就诊科室
     //        if (in_array('medicalDepartment', $filter)) {
     //            if (!empty($diseaseCache)) {
     //                //在取到的所有科室数据合并去重
     //                $medicalDepartment = [];
     //                foreach ($diseaseCache['departmentMap'] as $vv) {
     //                    $Tmp['medicalDepartmentTmp'][] = $vv['id'];
     //                    $Tmp['medicalDepartmentTmpName'][] = $vv['name'];
     //                    $Tmp['medicalDepartmentTmpPinyin'][] = $vv['pinyin'];
     //                }
     //                $medicalDepartment['id'] = array_unique($Tmp['medicalDepartmentTmp']);
     //                $medicalDepartment['name'] = array_unique($Tmp['medicalDepartmentTmpName']);
     //                $medicalDepartment['pinyin'] = array_unique($Tmp['medicalDepartmentTmpPinyin']);
     ////                print_r($medicalDepartment);exit;
     //                $model['medicalDepartment'] = $medicalDepartment;
     //                //科室拼音
     //                $model['departPinyin'] = $this->department->getDepartmentPinyin();
     //            }
     //        }
     //右侧相关症状
     if (in_array('relSymptom', $filter)) {
         $relateObj = new Relate();
         $model['relSymptom'] = $relateObj->getRelateSymptoms($symptomid);
     }
     //症状相关文章
     if (in_array('articles', $filter)) {
         $articleObj = new Article();
         $model['articles'] = [];
         $articles = $articleObj->listByCondition([['status' => '99'], ['symptomid' => $symptomid]], 7, 0, 'id DESC');
         if (!empty($articles)) {
             $model['articles'] = $articles;
         } else {
             if (!empty($diseaseCache)) {
                 $diseaseId = $diseaseCache['diseaseId'];
                 $disease_ids = implode(',', $diseaseId);
                 $articles = $articleObj->listBySqlCondition($disease_ids, 7, 0);
                 $arts = [];
                 foreach ($articles as $k => $v) {
                     $date_path = date('Y/md', $v['inputtime']);
                     $article_path = sprintf("%s/%s/%d.shtml", 'article', $date_path, $v['id']);
                     $articleUrl = sprintf('%s/%s', Yii::getAlias('@jb_domain'), $article_path);
                     foreach ($v as $kk => $vv) {
                         $arts[$k][$kk] = $vv;
                         $arts[$k]['url'] = $articleUrl;
                     }
                 }
                 $model['articles'] = $arts;
             }
         }
     }
     //专家(左侧)
     if (in_array('doctorInfos', $filter)) {
         if (!empty($diseaseCache)) {
             //取所有相关疾病里第一个疾病id来查专家
             $diseaserandid = $diseaseCache['diseaseId']['0'];
             $doctors = $this->getDoctor($diseaserandid, 0, 6);
             //专家(右侧)
             $rightDoctor = array_slice($doctors, 3, 3);
             $model['doctorInfos'] = $rightDoctor;
             //在线咨询 左侧
             $leftDoctor = [['uid' => 1440561, 'nickname' => '陶丽萍', 'zhicheng' => '', 'best_dis' => '保健综合', 'pic' => '201601/1440561_avatar_middle.jpg'], ['uid' => 221102, 'nickname' => '王庆松', 'zhicheng' => '', 'best_dis' => '上呼吸道综合', 'pic' => '201601/221102_avatar_middle.jpg'], ['uid' => 831181, 'nickname' => '刘业生', 'zhicheng' => '', 'best_dis' => '常见病综合,呼吸道系统诊疗', 'pic' => '201604/831181_avatar_middle.jpg']];
             $model['leftDoctor'] = $leftDoctor;
         }
     }
     return $model;
 }