Index.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. /**
  3. * 官网首页
  4. */
  5. namespace app\home\controller;
  6. use app\common\model\GameHome as Game;
  7. use app\common\model\GameInfo;
  8. use app\common\model\News;
  9. use app\common\model\Links;
  10. use app\common\model\SdkGameList;
  11. use think\Db;
  12. use think\Config;
  13. class Index extends Home
  14. {
  15. public function index()
  16. {
  17. $gameModel = new Game;
  18. $gameInfoModel = new GameInfo;
  19. $articleModel = new News;
  20. $linksModel = new Links;
  21. $sdGameModel = new SdkGameList;
  22. //获取热门游戏列表
  23. $hotGameList = $gameInfoModel->getGameInfoByLanmu(['g.lanmu'=>2]);
  24. //获取最新游戏列表
  25. $newGameList = $gameInfoModel->getGameInfoByLanmu(['g.lanmu'=>3]);
  26. //获取本周推荐列表
  27. $recommendGameList = $gameInfoModel->getGameInfoByLanmu(['g.lanmu'=>4]);
  28. //顶部推荐
  29. $topBannerList = Db::connect(config('database_slave'))->table('cy_ad')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->field('id,title,url,image')->where(['type'=>1])->order('sort asc,create_time asc')->limit(0,5)->select();
  30. //今日热点
  31. $todayHotList = Db::connect(config('database_slave'))->table('cy_ad')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->field('id,title,url,image')->where(['type'=>3])->order('sort asc,create_time asc')->limit(0,4)->select();
  32. //首页轮播
  33. $broadcastList = Db::connect(config('database_slave'))->table('cy_ad')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->field('id,title,url,image')->where(['type'=>11])->order('sort asc,create_time asc')->limit(0,5)->select();
  34. foreach ($broadcastList as &$ad) {
  35. $ad['url'] = preg_match("/^http(s)?:\\/\\/.+/",$ad['url']) ? $ad['url'] : 'http://' . $ad['url'];
  36. }
  37. //红字头条
  38. $redHeadline = Db::connect(config('database_slave'))->table('cy_ad')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->field('id,title,url')->where(['type'=>4])->order('sort asc,create_time asc')->find();
  39. //头条新闻
  40. $headlineNewsList = Db::connect(config('database_slave'))->table('cy_ad')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->field('id,title,url')->where(['type'=>5])->order('sort asc,create_time asc')->limit(0,2)->select();
  41. //游戏评测
  42. $reviewGameList = Db::connect(config('database_slave'))->table('cy_ad')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->field('id,title,url,image')->where(['type'=>6])->order('sort asc,create_time asc')->limit(0,3)->select();
  43. //首页底部推荐位
  44. $footerList = Db::connect(config('database_slave'))->table('cy_ad')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->field('id,title,url,image')->where(['type'=>8])->order('sort asc,create_time asc')->limit(0,2)->select();
  45. //首页广告弹窗
  46. $adPopups = Db::connect(config('database_slave'))->table('cy_ad')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->field('id,title,url,image')->where(['type'=>12])->order('sort asc,create_time asc')->find();
  47. //新闻列表
  48. $articleList = $articleModel->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->field('id,title,jlink,type,create_time')->where(['type'=>['in','1,2,3,4,5'],'isdelete'=>0, 'position'=>['LIKE','%a%']])->order('create_time desc')->limit(0,10)->select();
  49. //游戏攻略
  50. $walkthroughList = $articleModel->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->field('id,title,jlink,type,image,create_time')->where(['type'=>['in','1,2,3,4,5'],'isdelete'=>0, 'position'=>['LIKE','%b%']])->order('create_time desc')->limit(0,20)->select();
  51. //获取游戏分类列表
  52. $gameTypeList = Db::connect(config('database_slave'))->table('cy_gametype')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->select();
  53. //友情链接
  54. $linksList = Db::connect(config('database_slave'))->table('cy_links')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->order('sort asc,create_time asc')->select();
  55. //获取各分类游戏列表
  56. $allGameList = [];
  57. //各分类游戏sdk包信息
  58. $sdkGameList = [];
  59. if ( !empty($gameTypeList) ) {
  60. $gameids = [];
  61. foreach ( $gameTypeList as $type ) {
  62. $gameList = $gameModel->alias('g')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))
  63. ->join('cy_gameinfo i', 'g.id=i.game_id', 'left')
  64. ->join('cy_sdkgamelist sdk', 'g.id=sdk.gameid and sdk.package_type=0 and sdk.upload_status=1 and sdk.channel_id='.MEMBER_DEFAULT_CHANNEL_ID,'left')
  65. ->field('g.id,g.nickname,g.pinyin,i.mobileicon,sdk.filename')
  66. ->where(['g.type'=>$type['id'],'g.cooperation_status' => ['in','1,2'],'g.is_show' => 1])
  67. ->order('g.create_time desc')
  68. ->limit(0,18)->select();
  69. foreach ( $gameList as &$game ) {
  70. $game['mobileicon'] = STATIC_DOMAIN.$game['mobileicon'];
  71. $game['url'] = getGameUrl($game['id']);
  72. $game['download'] = getDownload($game);
  73. }
  74. $allGameList[] = $gameList;
  75. $gameids = array_unique(array_merge($gameids,arrayColumnByObject($gameList, 'id')));
  76. }
  77. $sdkGameList = Db::connect(config('database_slave'))->table('cy_sdkgamelist')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->where(['channel_id'=>MEMBER_DEFAULT_CHANNEL_ID,'gameid'=>['in',$gameids],'package_type'=>0])->column('filename','gameid');
  78. }
  79. $this->assign('hotGameList',$hotGameList);
  80. $this->assign('newGameList',$newGameList);
  81. $this->assign('recommendGameList',$recommendGameList);
  82. $this->assign('topBannerList',$topBannerList);
  83. $this->assign('todayHotList',$todayHotList);
  84. $this->assign('broadcastList',$broadcastList);
  85. $this->assign('redHeadline',$redHeadline);
  86. $this->assign('headlineNewsList',$headlineNewsList);
  87. $this->assign('articleList',$articleList);
  88. $this->assign('reviewGameList',$reviewGameList);
  89. $this->assign('walkthroughList',$walkthroughList);
  90. $this->assign('gameTypeList',$gameTypeList);
  91. $this->assign('allGameList',$allGameList);
  92. $this->assign('sdkGameList',$sdkGameList);
  93. $this->assign('linksList',$linksList);
  94. $this->assign('footerList',$footerList);
  95. $this->assign('adPopups',$adPopups);
  96. $seo['title'] = '祈盟文化_简单生活,快乐游戏';
  97. $seo['keywords'] = '好玩的手机游戏,手机游戏下载,热门手游,最新手游,手游排行榜,安卓游戏,祈盟文化游戏,祈盟文化';
  98. $seo['description'] = '祈盟文化手游平台为玩家提供免费手机游戏下载,最新、热门手机游戏排行以及海量免费的手游礼包。祈盟文化还提供最新鲜好玩的手机游戏资讯、最精彩的手游攻略、手游评测、手游视频等内容!';
  99. $this->assign('seo',$seo);
  100. return $this->fetch();
  101. }
  102. public function agreement()
  103. {
  104. return $this->fetch();
  105. }
  106. }