127 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			127 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
| <?php
 | |
| 
 | |
| namespace app\controller;
 | |
| 
 | |
| use app\model\{Article as MArticle, CasesModel, Category, Block, Message, Article, Slide};
 | |
| use Exception;
 | |
| use think\exception\ValidateException;
 | |
| use think\facade\Db;
 | |
| use think\facade\View;
 | |
| use app\service\Tool;
 | |
| 
 | |
| class Index extends Base
 | |
| {
 | |
|     public function index()
 | |
|     {
 | |
|         $category   = Category::getIndex();
 | |
|         $categoryId = $category['id'] ?? 0;
 | |
|         $blocks     = Block::getByCategoryId($categoryId);
 | |
| 
 | |
|         $this->news();
 | |
|         $this->cases();
 | |
|         $this->companyHistory($blocks['company_history_list']['value']);
 | |
| 
 | |
|         $this->data['categoryId']    = $categoryId;
 | |
|         $this->data['blocks']        = Block::convertValue($blocks);
 | |
|         $this->data['category']      = $category;
 | |
|         $this->data['topCategoryId'] = Category::firstGradeById($category['id']);
 | |
|         $this->data['isIndex']       = true;
 | |
|         $this->data['slide']         = Slide::getList();
 | |
|         $this->setSeo($this->system['seo_title'], $this->system['seo_keywords'], $this->system['seo_description']);
 | |
|         return $this->view();
 | |
|     }
 | |
| 
 | |
|     // 新闻
 | |
|     private function news()
 | |
|     {
 | |
|         $newsCategory = Category::where('parent_id', Category::CATEGORY_NEWS)
 | |
|             ->order('sort', 'asc')
 | |
|             ->column('id,title,route,url');
 | |
| 
 | |
|         $sql = '';
 | |
|         foreach ($newsCategory as $cate) {
 | |
|             $sql .= empty($sql) ? '' : ' union ';
 | |
|             $sql .= '(select `id`,`title`,`summary`,`category_id`,`src`,`src_mobile`,`create_time` from bee_article where `category_id` = '.$cate['id'].' order by `top` desc, `sort` desc limit 5)';
 | |
|         }
 | |
| 
 | |
|         $res  = Db::query($sql);
 | |
|         $list = [];
 | |
| 
 | |
|         foreach (array_column($newsCategory, 'id') as $categoryId) {
 | |
|             if (!isset($list[$categoryId])) {
 | |
|                 $list[$categoryId] = [];
 | |
|             }
 | |
|             foreach ($res as $re) {
 | |
|                 if ($re['category_id'] == $categoryId) {
 | |
|                     $list[$categoryId][] = $re;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         $this->data['newsCategory'] = $newsCategory;
 | |
|         $this->data['newsList']     = $list;
 | |
|     }
 | |
| 
 | |
|     // 案例
 | |
|     private function cases()
 | |
|     {
 | |
|         $casesList = CasesModel::where('home', 1)->order('sort', 'desc')
 | |
|             ->order('id', 'desc')->limit(4)->select();
 | |
| 
 | |
|         $this->data['casesList'] = $casesList;
 | |
|     }
 | |
| 
 | |
|     private function companyHistory(string $companyHistory)
 | |
|     {
 | |
|         $companyHistory     = nl2br($companyHistory);
 | |
|         $companyHistory     = explode('<br />', $companyHistory);
 | |
|         $companyHistoryList = [];
 | |
|         foreach ($companyHistory as $v) {
 | |
|             $arr                  = explode(';', $v);
 | |
|             $companyHistoryList[] = [
 | |
|                 'year' => $arr[0] ?? '',
 | |
|                 'desc' => $arr[1] ?? ''
 | |
|             ];
 | |
|         }
 | |
|         $this->data['companyHistoryList'] = $companyHistoryList;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 留言
 | |
|      *
 | |
|      * @throws Exception
 | |
|      */
 | |
|     public function message()
 | |
|     {
 | |
|         if ($this->request->isPost()) {
 | |
|             $item     = input('item/a', [], 'strip_tags');
 | |
|             $validate = $this->validateByApi($item, [
 | |
|                 'code|验证码'     => 'require',
 | |
|                 'name|姓名'      => 'require',
 | |
|                 'email|邮箱'     => 'email',
 | |
|                 'tel|联系方式'     => 'require|mobile',
 | |
|                 'content|留言内容' => 'require',
 | |
|             ]);
 | |
|             if ($validate !== true) {
 | |
|                 return $validate;
 | |
|             }
 | |
| 
 | |
|             if (!captcha_check($item['code'])) {
 | |
|                 return $this->json(4001, '验证码错误');
 | |
|             }
 | |
| 
 | |
|             Message::create([
 | |
|                 'name'        => $item['name'],
 | |
|                 'tel'         => $item['tel'],
 | |
|                 'email'       => $item['email'],
 | |
|                 'content'     => $item['content'],
 | |
|                 'ip'          => request()->ip(),
 | |
|                 'create_time' => time(),
 | |
|             ]);
 | |
|             return $this->json();
 | |
|         } else {
 | |
|             return $this->json('请求错误');
 | |
|         }
 | |
|     }
 | |
| 
 | |
| } |