| 
									
										
										
										
											2020-11-25 09:07:06 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | namespace app\controller; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-08 16:11:04 +08:00
										 |  |  | use app\model\{Achievement, AchievementInfo, Category, Block, Article, History, Model}; | 
					
						
							| 
									
										
										
										
											2020-11-25 09:07:06 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | class Page extends Base | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2020-11-25 20:15:51 +08:00
										 |  |  |     // 默认单页页面
 | 
					
						
							|  |  |  |     public function index($categoryId) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2020-11-25 09:07:06 +08:00
										 |  |  |         $category = Category::getById($categoryId); | 
					
						
							|  |  |  |         if ($category) { | 
					
						
							|  |  |  |             $description = $category['description'] ? $category['description'] : $this->system['seo_description']; | 
					
						
							|  |  |  |             $this->setSeo($category['title'], $this->system['seo_keywords'], $description); | 
					
						
							|  |  |  |         } else { | 
					
						
							| 
									
										
										
										
											2020-11-25 20:15:51 +08:00
										 |  |  |             return $this->error('页面错误'); | 
					
						
							| 
									
										
										
										
											2020-11-25 09:07:06 +08:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-25 09:07:06 +08:00
										 |  |  |         $this->data['categoryId'] = $categoryId; | 
					
						
							|  |  |  |         $this->data['category'] = $category; | 
					
						
							|  |  |  |         $this->data['blocks'] = Block::getByCategoryId($categoryId); | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  |         $this->templateDetailAssign($category); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-25 20:15:51 +08:00
										 |  |  |         return $this->view($category['template_detail']); | 
					
						
							| 
									
										
										
										
											2020-11-25 09:07:06 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     private function templateDetailAssign($category) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $template = $category['template_detail'] ?? ''; | 
					
						
							|  |  |  |         $TopCId = Category::firstGradeById($category['id']); | 
					
						
							|  |  |  |         if($TopCId == $category['id']) { | 
					
						
							|  |  |  |             $topCategory = $category; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $topCategory = Category::getById($TopCId); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2020-12-03 17:02:31 +08:00
										 |  |  |         $childCategory = Category::getChildrenByParentId($topCategory['id']); | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $this->data['topCategory'] = $topCategory; | 
					
						
							|  |  |  |         $this->data['childCategory'] = $childCategory; | 
					
						
							|  |  |  |         switch ($template) { | 
					
						
							|  |  |  |             case 'about' : | 
					
						
							| 
									
										
										
										
											2020-12-03 17:02:31 +08:00
										 |  |  |                 $this->assignAbout($childCategory); | 
					
						
							|  |  |  |                 break; | 
					
						
							|  |  |  |             case 'service' : | 
					
						
							|  |  |  |                 $this->assignService($childCategory); | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  |                 break; | 
					
						
							| 
									
										
										
										
											2020-12-03 18:22:38 +08:00
										 |  |  |             case 'marketing' : | 
					
						
							|  |  |  |                 $this->assignMarketing($childCategory); | 
					
						
							|  |  |  |                 break; | 
					
						
							| 
									
										
										
										
											2020-12-04 18:22:07 +08:00
										 |  |  |             case 'contact' : | 
					
						
							|  |  |  |                 $this->assignContact($childCategory); | 
					
						
							|  |  |  |                 break; | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  |             default : | 
					
						
							| 
									
										
										
										
											2020-12-04 18:22:07 +08:00
										 |  |  |                 $this->data['blocks'] = Block::getByCategoryId($category['id']); | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-03 17:02:31 +08:00
										 |  |  |     // 获取单页栏目IDs
 | 
					
						
							|  |  |  |     private function getBlockCateIds($categoryItems) | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2020-12-03 17:02:31 +08:00
										 |  |  |         $blockCateIds = []; | 
					
						
							|  |  |  |         foreach ($categoryItems as $cate) { | 
					
						
							|  |  |  |             if($cate['model_id'] == Model::PAGE) { | 
					
						
							|  |  |  |                 $blockCateIds[] = $cate['id']; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2020-12-03 17:02:31 +08:00
										 |  |  |         return $blockCateIds; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // 走进超宇
 | 
					
						
							|  |  |  |     private function assignAbout($childCategory) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  |         $honorTopCId = Category::$CIdList['honors_manage'] ?? 0; | 
					
						
							|  |  |  |         $historyCId = Category::$CIdList['history_manage'] ?? 0; | 
					
						
							|  |  |  |         $historyCate = Category::getById($historyCId); | 
					
						
							|  |  |  |         $honors = []; | 
					
						
							|  |  |  |         $blocks = []; | 
					
						
							| 
									
										
										
										
											2020-12-03 17:02:31 +08:00
										 |  |  |         $blockCateIds = $this->getBlockCateIds($childCategory); | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  |         if($honorTopCId) { | 
					
						
							|  |  |  |             $honors = Category::getChildrenByParentId($honorTopCId); | 
					
						
							|  |  |  |             foreach ($honors as &$honor) { | 
					
						
							| 
									
										
										
										
											2020-12-07 14:49:48 +08:00
										 |  |  |                 $honor['items'] = Article::getListByCategoryIds([$honor['id']], $honor['number'] ? $honor['number'] : 20, '', [], 1); | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  |             } | 
					
						
							|  |  |  |             unset($honor); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         $blockList = Block::getByCategoryIds($blockCateIds); | 
					
						
							|  |  |  |         $aboutChildrenFlip = array_flip(Category::$CIdList['about_children']); | 
					
						
							|  |  |  |         foreach ($childCategory as $cate) { | 
					
						
							|  |  |  |             $blocks[$aboutChildrenFlip[$cate['id']]] = $blockList[$cate['id']] ?? []; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->data['blocks'] = $blocks; | 
					
						
							|  |  |  |         $this->data['honors'] = $honors; | 
					
						
							| 
									
										
										
										
											2020-12-08 09:21:33 +08:00
										 |  |  |         $this->data['historyList'] = array_reverse(History::getByCategoryId($historyCId, true, $historyCate['number'] ?? -1)); | 
					
						
							| 
									
										
										
										
											2020-12-03 17:02:31 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // 品质与服务
 | 
					
						
							|  |  |  |     private function assignService($childCategory) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $blocks = []; | 
					
						
							|  |  |  |         $blockCateIds = $this->getBlockCateIds($childCategory); | 
					
						
							|  |  |  |         $blockList = Block::getByCategoryIds($blockCateIds); | 
					
						
							|  |  |  |         $serviceChildrenFlip = array_flip(Category::$CIdList['service_children']); | 
					
						
							|  |  |  |         foreach ($childCategory as $cate) { | 
					
						
							|  |  |  |             $blocks[$serviceChildrenFlip[$cate['id']]] = $blockList[$cate['id']] ?? []; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->data['blocks'] = $blocks; | 
					
						
							| 
									
										
										
										
											2020-12-03 13:47:57 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-12-03 18:22:38 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // 营销网络
 | 
					
						
							|  |  |  |     private function assignMarketing($childCategory) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $blocks = []; | 
					
						
							|  |  |  |         $blockCateIds = $this->getBlockCateIds($childCategory); | 
					
						
							|  |  |  |         $blockList = Block::getByCategoryIds($blockCateIds); | 
					
						
							|  |  |  |         $marketingChildrenFlip = array_flip(Category::$CIdList['marketing_children']); | 
					
						
							|  |  |  |         foreach ($childCategory as $cate) { | 
					
						
							|  |  |  |             $blocks[$marketingChildrenFlip[$cate['id']]] = $blockList[$cate['id']] ?? []; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         $achievementCate = Category::getById(Category::$CIdList['achievement_manage']); | 
					
						
							|  |  |  |         $achievementList = []; | 
					
						
							|  |  |  |         if ($achievementCate) { | 
					
						
							| 
									
										
										
										
											2020-12-08 16:11:04 +08:00
										 |  |  |             $achievementList = Achievement::getListByCategoryId($achievementCate['id'], $achievementCate['number'] ? $achievementCate['number'] : 10, true); | 
					
						
							| 
									
										
										
										
											2020-12-03 18:22:38 +08:00
										 |  |  |         } | 
					
						
							|  |  |  |         $this->data['blocks'] = $blocks; | 
					
						
							|  |  |  |         $this->data['achievementList'] = $achievementList; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-12-04 18:22:07 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // 联系我们
 | 
					
						
							|  |  |  |     private function assignContact($childCategory) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $blocks = []; | 
					
						
							|  |  |  |         $blockCateIds = $this->getBlockCateIds($childCategory); | 
					
						
							|  |  |  |         $blockList = Block::getByCategoryIds($blockCateIds); | 
					
						
							|  |  |  |         $contactChildrenFlip = array_flip(Category::$CIdList['contact_children']); | 
					
						
							|  |  |  |         foreach ($childCategory as $cate) { | 
					
						
							|  |  |  |             $blocks[$contactChildrenFlip[$cate['id']]] = $blockList[$cate['id']] ?? []; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         $jobsCate = Category::getById(Category::$CIdList['jobs_manage']); | 
					
						
							|  |  |  |         $jobList = Article::getLatestByCategory($jobsCate['id'], $jobsCate['number'] ? $jobsCate['number'] : 10, 1); | 
					
						
							|  |  |  |         $this->data['blocks'] = $blocks; | 
					
						
							|  |  |  |         $this->data['jobList'] = $jobList; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-11-25 09:07:06 +08:00
										 |  |  | } |