| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 | 
							- <?php
 
- namespace App\Services;
 
- use App\Repositories\SubsiteRepository;
 
- use App\Repositories\TplRepository;
 
- use Illuminate\Support\Facades\Cache;
 
- class SubsiteService
 
- {
 
-     /**
 
-      * @var SubsiteRepository
 
-      */
 
-     private $subsiteRepository;
 
-     private $tplRepository;
 
-     /**
 
-      * SubsiteService constructor.
 
-      * @param SubsiteRepository $subsiteRepository
 
-      */
 
-     public function __construct(SubsiteRepository $subsiteRepository, TplRepository $tplRepository)
 
-     {
 
-         $this->subsiteRepository = $subsiteRepository;
 
-         $this->tplRepository     = $tplRepository;
 
-     }
 
-     public function getSiteId()
 
-     {
 
-         $site_module   = explode('/', trim(request()->server('REQUEST_URI'), '/'))[0];
 
-         $subsite_array = $this->getSiteDomain();
 
-         if (!empty($subsite_array[$site_module])) {
 
-             return $subsite_array[$site_module];
 
-         }
 
-         return 0;
 
-         /*$main_domain_lenth=count(explode('.', config('app.url')));
 
-         $host_array=explode('.', request()->getHost());
 
-         //域名最多两级且最后一级只能是www: www.aa.bb.cc.91caiqing.com(主域名就是bb.cc.91caiqing.com)
 
-         if (count($host_array)>($main_domain_lenth + 2)) {
 
-             return false;
 
-         }
 
-         if (count($host_array) == ($main_domain_lenth + 2) && $host_array[0] != 'www') {
 
-             return false;
 
-         }
 
-         //主站
 
-         if (count($host_array) == $main_domain_lenth || (count($host_array) == ($main_domain_lenth + 1) && $host_array[0] == 'www')) {
 
-             return 0;
 
-         }
 
-         //分站
 
-         $subsite_array=$this->getSiteDomain();
 
-         if (count($host_array) == ($main_domain_lenth + 2) && $host_array[0] == 'www') {
 
-             $sub_domain=$host_array[1];
 
-             return isset($subsite_array[$sub_domain])?$subsite_array[$sub_domain]:false;
 
-         }
 
-         $sub_domain=$host_array[0];
 
-         return isset($subsite_array[$sub_domain])?$subsite_array[$sub_domain]:0;*/
 
-     }
 
-     public function getSubsite($user)
 
-     {
 
-         $default = ['id' => 0, 'sitename' => '总站', 'domain' => config('app.url')];
 
-         $subsite = $this->subsiteRepository->getSubsite();
 
-         if ($user->subsite_id == 0) {
 
-             return $subsite;
 
-         } else {
 
-             foreach ($subsite as $key => $val) {
 
-                 if ($user->subsite_id == $val['id']) {
 
-                     unset($subsite[$key]);
 
-                 }
 
-             }
 
-             array_unshift($subsite, $default);
 
-             return $subsite;
 
-         }
 
-     }
 
-     public function getAllSubsite()
 
-     {
 
-         $subsites = Cache::get('subsites_list');
 
-         if (is_null($subsites)) {
 
-             $subsites[0] = ['id' => 0, 'sitename' => '总站', 'domain' => config('app.url')];
 
-             $list        = $this->subsiteRepository->getSubsite();
 
-             if (!$list) {
 
-                 return null;
 
-             }
 
-             foreach ($list as $value) {
 
-                 $subsites[$value['id']] = $value;
 
-             }
 
-             Cache::forever('subsites_list', $subsites);
 
-         }
 
-         return $subsites;
 
-     }
 
-     public function getSubsiteDomain($subsite_id = 0)
 
-     {
 
-         $app_url = config('app.url');
 
-         if ($subsite_id > 0) {
 
-             $subsites = $this->getAllSubsite();
 
-             $subsite  = $subsites[$subsite_id];
 
-             $app_url  = $app_url . '/' . $subsite['domain'];
 
- //            $app_url  = str_replace('://', '://' . $subsite['domain'] . ".", $app_url);
 
-         }
 
-         if (!empty(request()->route()) && is_mobile_route()) {
 
-             $app_url .= "/mobile";
 
-         }
 
-         return $app_url;
 
-     }
 
-     public function getSiteDomain()
 
-     {
 
-         $sub_array = Cache::get('subsites_domain');
 
-         if (is_null($sub_array)) {
 
-             $sub_array = $this->subsiteRepository->getSiteDomain();
 
-             Cache::forever('subsites_domain', $sub_array);
 
-         }
 
-         return $sub_array;
 
-     }
 
-     public function getSubsiteConfig($key, $default = null, $subsite_id = null)
 
-     {
 
-         $subsite_id = is_null($subsite_id) ? $this->getSiteId() : $subsite_id;
 
-         if ($subsite_id == 0) {
 
-             return config($key, $default);
 
-         } else {
 
-             $key_array     = explode('.', $key);
 
-             $subsite_array = $this->getAllSubsite();
 
-             $value         = array_get($subsite_array[$subsite_id], end($key_array), $default);
 
-             if (empty($value) && !is_numeric($value)) {
 
-                 return config($key, $default);
 
-             }
 
-             return $value;
 
-         }
 
-     }
 
-     //获取模板名称
 
-     public function getSubsiteTpl($subsite_id)
 
-     {
 
-         $subsites = $this->getAllSubsite();
 
-         if ($subsite_id) {
 
-             if (array_has($subsites, $subsite_id)) {
 
-                 $sub_info = $subsites[$subsite_id];
 
-                 if (array_has($sub_info, 'tpl')) {
 
-                     $tpl_id    = $sub_info['tpl'];
 
-                     $tpl_where = ['id' => $tpl_id, 'display' => 1];
 
-                     $tpl_info  = $this->tplRepository->getDefaultTpl($tpl_where);
 
-                     if ($tpl_info) {
 
-                         return $tpl_info->blade_name;
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         return '';
 
-     }
 
- }
 
 
  |