function get_disease_symptom()
{
    $console = Yii::getAlias("@console");
    $file = $console . '/shell/disease_symptom.php';
    $disease_symptom_arr = [];
    if (file_exists($file)) {
        $disease_symptom_str = file_get_contents($file);
        $disease_symptom_arr = unserialize($disease_symptom_str);
    } else {
        $diseases = \common\models\Disease::find()->asArray()->all();
        foreach ($diseases as $disease) {
            $name = $disease['name'];
            $row = array('id' => $disease['id'], 'source_flag' => 1);
            $disease_symptom_arr[$name] = $row;
        }
        $symptoms = \common\models\Symptom::find()->asArray()->all();
        foreach ($symptoms as $symptom) {
            $name = $symptom['name'];
            if (!isset($disease_symptom_arr[$name])) {
                $row = array('id' => $symptom['id'], 'source_flag' => 2);
                $disease_symptom_arr[$name] = $row;
            }
        }
        $disease_symptom_str = serialize($disease_symptom_arr);
        file_put_contents($file, $disease_symptom_str);
    }
    return $disease_symptom_arr;
}
 /**
  * 根据疾病的拼音简写,得到疾病的信息
  * @author gaoqing
  * @date 2016-03-23
  * @param String $pyInitial 疾病的拼音简写
  * @return array 疾病的信息集
  */
 public function getDiseasesByPinyin($pyInitial)
 {
     $disease = [];
     if ($this->isNotNull($pyInitial)) {
         //疾病基本信息
         $diseaseBasic = Disease::find()->where(['pinyin_initial' => $pyInitial])->asArray(true)->one();
         //疾病详细信息
         $diseaseContent = [];
         if ($this->isNotNull($diseaseBasic)) {
             $diseaseContent = DiseaseContent::find()->where(['id' => $diseaseBasic['id']])->asArray(true)->one();
         }
         if ($this->isNotNull($diseaseBasic) && $this->isNotNull($diseaseContent)) {
             $diseaseContentApp = $diseaseContent;
             foreach ($diseaseContentApp as $key => $content) {
                 $diseaseContentApp[$key] = String::cutString($content, 35);
             }
             $disease = array_merge($diseaseBasic, $diseaseContent);
             $disease['content_app'] = $diseaseContentApp;
         }
     }
     if (!isset($disease) || empty($disease)) {
         throw new NotFoundHttpException("当前访问的页面不存在!");
     }
     return $disease;
 }
예제 #3
0
 public static function createAllDiseaseSymptomCache4Redis()
 {
     $redis = \Yii::$app->redis;
     $redis_expired = 24 * 60 * 60;
     //秒
     $cache_all_disease_symptom_link_key = APP_CACHE_PREFIX . 'CACHE_ALL_DISEASE_SYMPTOM_LINK';
     $cache_all_disease_symptom_link_data = array();
     $all_disease = Disease::find()->select(['name', 'pinyin_initial'])->asArray()->all();
     foreach ($all_disease as $k => $v) {
         $cache_all_disease_symptom_link_data[$v['name']] = \Yii::getAlias('@jb_domain') . '/' . $v['pinyin_initial'] . '/';
     }
     $all_symptom = Symptom::find()->select(['name', 'pinyin_initial'])->asArray()->all();
     foreach ($all_symptom as $k => $v) {
         $cache_all_disease_symptom_link_data[$v['name']] = \Yii::getAlias('@jb_domain') . '/zhengzhuang/' . $v['pinyin_initial'] . '/';
     }
     $redis->hMset($cache_all_disease_symptom_link_key, $cache_all_disease_symptom_link_data, $redis_expired);
     return $cache_all_disease_symptom_link_data;
 }
 public function actionRedirect()
 {
     $diseaseid = $this->helpGquery('disid', 0);
     if ($diseaseid > 0) {
         $oldDisease = new oldDisease();
         $disInfo = $oldDisease->getDiseaseByContentid($diseaseid);
         $url = \Yii::getAlias("@jb_domain");
         //        var_dump($url);exit;
         if ($disInfo) {
             $disname = $disInfo['title'];
             $newDisInfo = Disease::find()->where('name=:name', [':name' => $disname])->one();
             $pinyin_initial = $newDisInfo ? $newDisInfo->pinyin_initial : '';
             $url .= '/' . $pinyin_initial . '/';
             header("Location:{$url}", true, 301);
             exit;
         } else {
             $this->actionDispatch();
         }
     }
 }
 /**
  * 疾病 sitemap
  * @author gaoqing
  * @date 2016-04-25
  * @return array 响应信息
  */
 private function diseaseSitemap()
 {
     /**
      * <urlset>
      *  <url>
      *  <loc>http://jb.9939.com/article/2009/0327/1.shtml</loc>
      *  <lastmod>2009-03-27</lastmod>
      *  <changefreq>always</changefreq>
      *  <priority>0.6</priority>
      *  </url>
      * </urlset>
      */
     $where = $this->_ownership;
     $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">';
     //判断jb还是wapjb
     $prefix = $where == 'pc' ? '' : 'wap_';
     //1、生成 疾病 部分的 sitemap
     $diseases = Disease::find()->asArray()->all();
     $sitemap .= $this->setSitemapURL($diseases, $prefix . 'disease');
     //2、生成 症状 部分的 sitemap
     $symptoms = Symptom::find()->asArray()->all();
     $sitemap .= $this->setSitemapURL($symptoms, $prefix . 'symptom');
     //3、生成 科室 部分的 sitemap
     $departments = Department::find()->asArray()->all();
     $sitemap .= $this->setSitemapURL($departments, $prefix . 'department');
     //4、生成 部位 部分的 sitemap
     $parts = Part::find()->asArray()->all();
     $sitemap .= $this->setSitemapURL($parts, $prefix . 'part');
     $sitemap .= '</urlset>';
     //5、生成 sitemap 文件
     if ($where == 'pc') {
         $frontend = \Yii::getAlias("@frontend");
         $frontDomain = \Yii::getAlias("@frontdomain");
     } elseif ($where == 'wap') {
         $frontend = \Yii::getAlias("@wapjb");
         $frontDomain = \Yii::getAlias("@mjb_domain");
     }
     //        $frontend = \Yii::getAlias("@frontend");
     $sitemapFolder = 'sitemap';
     $fileFolder = $frontend . '/web/' . $sitemapFolder;
     if (!file_exists($fileFolder) || !is_dir($fileFolder)) {
         mkdir($fileFolder, 0755);
     }
     $fileName = $this->_baidu ? 'diseasebaidusitemap.xml' : 'diseasesitemap.xml';
     if (file_put_contents($fileFolder . '/' . $fileName, $sitemap)) {
         //            $frontDomain = \Yii::getAlias("@frontdomain");
         return ['flag' => 1, 'url' => $frontDomain . '/' . $sitemapFolder . '/' . $fileName, 'name' => $fileName];
     }
     return [];
 }
예제 #6
0
 public function getDiseaseLimit($where = [], $offset = 0, $length = 10, $orderBy = 'id DESC')
 {
     return Disease::find()->where($where)->orderBy($orderBy)->offset($offset)->limit($length)->asArray()->all();
 }