/** * 疾病缓存 */ public function diseaseCache($param = [], $offset) { // $disease = new Disease(); // $res = $disease->getAllDisease(); $disease = new Disease(); $length = self::$length; $offset = ($offset - 1) * $length; // $res = $symptom->getAllSymptom(); $res = $disease->getDiseaseLimit([], $offset, $length); $i = 0; foreach ($res as $k => $v) { if (CacheHelper::$param['function']($param['key_prefix'], $v, true)) { $i++; } } return $i; }
private function disSymColSitemap() { /** * <urlset> * <url> * <loc>http://jb.9939.com/gm/jianjie/</loc> * <lastmod>2009-03-27</lastmod> * <changefreq>always</changefreq> * <priority>0.6</priority> * </url> * </urlset> */ $this->_changefreq = 'always'; $this->_priority = '0.6'; $where = $this->_ownership; $flag = 1; //目录 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/sitemapbaidudissymcolindex' : 'sitemap/sitemapdissymcolindex'; $fileFolder = $frontend . '/web/' . $sitemapFolder; if (!file_exists($fileFolder) || !is_dir($fileFolder)) { mkdir($fileFolder, 0755, true); } $type = ''; // 疾病 | 症状 $sitemap_site = $this->getSitemapCount($fileFolder, ['dis_offset' => 0, 'sym_offset' => 0, 'max_file_tail' => 0]); $dis_offset = $sitemap_site['dis_offset']; $dis_obj = new Disease(); $dis_count = $dis_obj->getCount(); if ($dis_offset < $dis_count) { $type = 'disease'; $data = $dis_obj->getDiseaseLimit(['status' => 2], $dis_offset, 1000); $sitemap_site['dis_offset'] = (int) $dis_offset + count($data); } else { $type = 'symptom'; $sym_offset = $sitemap_site['sym_offset']; $dis_obj = new Symptom(); $sym_count = $dis_obj->getCount(); if ($sym_offset < $sym_count) { $data = $dis_obj->getSymptomLimit(['status' => 3], $sym_offset, 2000); $sitemap_site['sym_offset'] = (int) $sym_offset + count($data); $flag = $sitemap_site['sym_offset'] == $sym_count ? 2 : 1; } else { //无需生成新的数据,返回索引的url $res = $this->generateSitemapIndex($fileFolder, $sitemapFolder, 'dissym'); return ['flag' => 2, 'siteindex' => $res['url']]; } } //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->setDiseaseSymptomSubURL($data, $type); $sitemap .= '</urlset>'; $sitemap_site['max_file_tail']++; $name_tail = $sitemap_site['max_file_tail']; //写入计数文件 $this->setSitemapCount($sitemap_site, $fileFolder); $fileName = 'sitemap' . $name_tail . '.xml'; if (file_put_contents($fileFolder . '/' . $fileName, $sitemap)) { $res = $this->generateSitemapIndex($fileFolder, $sitemapFolder, 'dissym'); return ['flag' => $flag, 'url' => $frontDomain . '/' . $sitemapFolder . '/' . $fileName, 'name' => $fileName, 'siteindex' => $res['url']]; } return []; }