123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
- namespace App\Http\Controllers\Web\Content;
- use App\Http\Controllers\Web\WebBaseController;
- use App\Services\Content\ArticleService;
- use App\Services\Content\ArticleCategoryService;
- use App\Services\Content\AdService;
- use App\Services\Content\NavigationService;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Collection;
- class ArticleController extends WebBaseController
- {
- protected $articleService;
- protected $articleCategoryService;
- protected $adService;
- protected $navigationService;
- /**
- * ArticleController constructor.
- * @param $articleService
- * @param $articleCategoryService
- */
- public function __construct(ArticleService $articleService, ArticleCategoryService $articleCategoryService, AdService $adService, NavigationService $navigationService)
- {
- $this->articleService = $articleService;
- $this->articleCategoryService = $articleCategoryService;
- $this->adService = $adService;
- $this->navigationService = $navigationService;
- }
- public function index(Request $request, $id = '1', $num = '8', $focus = '3', $recommend = '4', $other_num = '5')
- {
- $key = $request->input('key');
- $categorys = $this->articleCategoryService->getChildCategorys($id, $num);
- $search_id = '';
- if ($categorys) {
- $search_id = $categorys[0]->id;
- $search_where = [];
- $search_where['id'] = $search_id;
- if ($id != '1') {
- $search_where['parent_id'] = $id;
- }
- if ($num != '8') {
- $search_where['num'] = $num;
- }
- if ($focus != '3') {
- $search_where['focus'] = $focus;
- }
- if ($recommend != '4') {
- $search_where['recommend'] = $recommend;
- }
- if ($other_num != '5') {
- $search_where['other_num'] = $other_num;
- }
- return redirect()->route('news.list', $search_where);
- } else {
- $rst = $this->articleService->list($key, '', 10);
- }
- $focus_articles = $this->articleService->getPropertyArticles($focus, $other_num); //热门资讯
- $recommend_articles = $this->articleService->getPropertyArticles($recommend, $other_num); //推荐资讯
- //顶部广告位
- $ad_data = [
- 'theme' => 'default',
- 'org' => 'Home',
- 'alias' => 'AIX_news_index_top',
- 'num' => '1',
- ];
- $top_ads = $this->adService->getAds($ad_data);
- $return_data = [
- 'articles' => $rst,
- 'categorys' => $categorys,
- 'focus_articles' => $focus_articles,
- 'recommend_articles' => $recommend_articles,
- 'key' => $key,
- 'top_ads' => $top_ads,
- ];
- return view('app.content.article.index', $return_data);
- }
- public function list(Request $request, $id, $parent_id = '1', $num = '8', $focus = '3', $recommend = '4', $other_num = '5')
- {
- $key = $request->input('key');
- $info = $this->articleCategoryService->getInfo($id);
- $lists = $this->articleService->list($key, $id, '10');
- $categorys = $this->articleCategoryService->getChildCategorys($info['parent_id'], $num);
- $categorys_child = $this->articleCategoryService->getChildCategorys($id, 10);
- $focus_articles = $this->articleService->getPropertyArticles($focus, $other_num); //热门资讯
- $recommend_articles = $this->articleService->getPropertyArticles($recommend, $other_num); //推荐资讯
- $bread = $this->articleCategoryService->getBread($info['id']);
- //获取后台职场资讯名称
- $where = [
- 'alias' => 'AIX_top',
- 'pagealias' => 'AIX_news',
- 'display' => '1',
- ];
- $topNav = $this->navigationService->getTopNav($where);
- $now_cate = '';
- $article_cate = [];
- foreach ($categorys as $k => $v) {
- if ($v->id == $id) {
- $now_cate = $v->category_name;
- $article_cate = $v;
- }
- }
- $this->putSeoData('article_cate', $article_cate);
- $return_data = [
- 'articles' => $lists,
- 'categorys' => $categorys,
- 'focus_articles' => $focus_articles,
- 'recommend_articles' => $recommend_articles,
- 'key' => $key,
- 'type_id' => $id,
- 'top_nav' => $topNav,
- 'now_cate' => $now_cate,
- 'categorys_child' => $categorys_child,
- 'bread' => $bread,
- ];
- return view('app.content.article.list', $return_data);
- }
- public function show($id, $parent_id = '1', $num = '8', $focus = '3', $recommend = '4', $other_num = '5')
- {
- $categorys = $this->articleCategoryService->getChildCategorys($parent_id, $num);
- $focus_articles = $this->articleService->getPropertyArticles($focus, $other_num); //热门资讯
- $recommend_articles = $this->articleService->getPropertyArticles($recommend, $other_num); //推荐资讯
- $article_info = $this->articleService->getArticleInfo($id);
- if (!$article_info) {
- $back_url = \Illuminate\Support\Facades\URL::previous();
- return $this->showMessage('资讯不存在', $back_url, true, '上一页', '3');
- }
- $this->putSeoData('article', $article_info);
- $return_data = [
- 'categorys' => $categorys,
- 'focus_articles' => $focus_articles,
- 'recommend_articles' => $recommend_articles,
- 'type_id' => $id,
- 'info' => $article_info,
- 'parent_id' => $parent_id,
- ];
- return view('app.content.article.show', $return_data);
- }
- public function click($id)
- {
- $rst = $this->articleService->incrementData(['id' => $id], 1, 'click');
- $data = ['status' => 0];
- if ($rst) {
- $data = ['status' => 1];
- }
- return response()->json($data);
- }
- }
|