Game.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547
  1. <?php
  2. /**
  3. * 前端游戏控制器
  4. * Created by PhpStorm.
  5. * User: Administrator
  6. * Date: 2019/9/29
  7. * Time: 14:11
  8. */
  9. namespace app\mobile\controller;
  10. use app\common\model\GameHome as GameModel;
  11. use app\common\model\News as NewsModel;
  12. use think\Db;
  13. use think\Exception;
  14. use think\Config;
  15. class Game extends Mobile
  16. {
  17. // 开测类型 1-预告 2-开服 3-删档内测 4-不删档内测 5-公测
  18. private $_serstatus = [
  19. '1' => '预告',
  20. '2' => '开服',
  21. '3' => '删档内测',
  22. '4' => '不删档内测',
  23. '5' => '公测',
  24. ];
  25. /**
  26. * 找游戏
  27. */
  28. public function index() {
  29. $showType = 'type';
  30. $gameModel = new GameModel;
  31. $where = [];
  32. if(input('type') != ''){
  33. if(intval(input('type'))){
  34. $where['game.type'] = intval(input('type'));
  35. }
  36. $showType = 'type';
  37. }
  38. else if(input('subject') != ''){
  39. if(intval(input('subject'))){
  40. $where['game.subject'] = intval(input('subject'));
  41. }
  42. $showType = 'subject';
  43. }
  44. else{
  45. if(intval(input('type'))){
  46. $where['game.type'] = intval(input('type'));
  47. }
  48. $showType = 'type';
  49. }
  50. $list = $gameModel->cache(Config::get('QUERY_RESULT_CACHE_TIME'))
  51. ->alias('game')
  52. ->join('cy_gameinfo info', 'game.id = info.game_id','left')
  53. ->join('cy_gametype t', 'game.type = t.id','left')
  54. ->join('cy_gamesubject s', 'game.subject = s.id','left')
  55. ->join('cy_sdkgamelist sdk', 'game.id=sdk.gameid and sdk.package_type=0 and sdk.upload_status=1 and sdk.channel_id='.MEMBER_DEFAULT_CHANNEL_ID,'left')
  56. ->field('game.id,game.nickname,game.power,game.publicity,info.androidurl,info.platform,game.pinyin,info.mobileicon,game.type,game.subject,sdk.filename,t.name as typename,s.name as subjectname')
  57. ->where(['game.cooperation_status' => ['in','1,2'],'game.is_show' => 1])
  58. ->where($where)
  59. ->order('game.create_time desc')
  60. ->paginate(10, false, array('query' => input('get.')))
  61. ->each(function ($item, $key){
  62. $item['icon'] = "http://static.46yx.com/".$item['mobileicon'];
  63. $item['typename'] = getTypename($item['typename']);
  64. $item['subjectname'] = getSubjectname($item['subjectname']);
  65. $item['size'] = getSize($item);
  66. if($item['platform']==1){
  67. $item['download'] = '';
  68. $item['ios_download'] = getIosDownload($item);
  69. }
  70. else{
  71. $item['download'] = getDownload($item);
  72. $item['ios_download'] = '';
  73. }
  74. $item['url'] = getMobileGameUrl($item['id']);
  75. return $item;
  76. });
  77. if ($this->request->isAjax()) $this->jsonResult($list,1);
  78. $totalGameCnt = $gameModel->cache(Config::get('QUERY_RESULT_CACHE_TIME'))
  79. ->alias('game')
  80. ->join('cy_gameinfo info', 'game.id = info.game_id','left')
  81. ->join('cy_sdkgamelist sdk', 'game.id=sdk.gameid and sdk.package_type=0 and sdk.upload_status=1 and sdk.channel_id='.MEMBER_DEFAULT_CHANNEL_ID,'left')
  82. ->field('game.id,game.nickname,game.power,info.androidurl,game.pinyin,info.mobileicon,game.type,game.subject,sdk.filename')
  83. ->where(['game.cooperation_status' => ['in','1,2'],'game.is_show' => 1])
  84. ->where($where)->count();
  85. //获取游戏分类列表
  86. $gameTypeList = Db::connect(config('database_slave'))->table('cy_gametype')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->select();
  87. //游戏题材表
  88. $gameSubjectList = Db::connect(config('database_slave'))->table('cy_gamesubject')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->select();
  89. //游戏分类一维数组
  90. $gameType = arrayColumnByObject($gameTypeList,'name','id');
  91. //游戏题材一维数组
  92. $gameSubject = arrayColumnByObject($gameSubjectList,'name','id');
  93. $this->assign('gameTypeList',$gameTypeList);
  94. $this->assign('gameSubjectList',$gameSubjectList);
  95. // $this->assign('gameType',$gameType);
  96. // $this->assign('gameSubject',$gameSubject);
  97. $this->assign('list',$list);
  98. $this->assign('totalGameCnt',$totalGameCnt);
  99. $title = '手机游戏_麻花网络';
  100. if(intval(input('type')) || intval(input('subject'))){
  101. if(intval(input('type'))){
  102. $title = $gameType[intval(input('type'))].$title;
  103. }
  104. else if(intval(input('subject'))){
  105. $title = $gameSubject[intval(input('subject'))].$title;
  106. }
  107. }
  108. $seo['title'] = $title;
  109. $seo['keywords'] = '找手机游戏,手机游戏大全,手机游戏排行榜,好玩的手机游戏';
  110. $seo['description'] = '麻花网络找游戏频道免费为玩家提供最新最好玩的手机游戏下载,同时也提供最热门的手机游戏排行榜和各种手机游戏分类筛选服务。';
  111. $this->assign('seo',$seo);
  112. $this->assign('showType',$showType);
  113. return $this->fetch();
  114. }
  115. public function detail() {
  116. $gameModel = new GameModel;
  117. $gameid = intval(input('id'));
  118. $type = trim(input('type'));
  119. if(in_array($type,['index','news','gift'])){
  120. if($type=='index'){
  121. return $this->info();
  122. }
  123. else if($type=='news'){
  124. return $this->news();
  125. }
  126. else{
  127. return $this->gift();
  128. }
  129. }
  130. else{
  131. return $this->info();
  132. }
  133. }
  134. public function info() {
  135. $gameModel = new GameModel;
  136. $gameid = intval(input('id'));
  137. if(!$gameid) {
  138. // throw new Exception("游戏不存在");
  139. $this->_abort404();
  140. }
  141. if ($this->request->isAjax()) {
  142. $serverType = input('serverType', 0, 'intval');
  143. $kcServers = $this->getGameServer($gameid,$serverType);
  144. $kcServers = $kcServers['list'];
  145. $this->jsonResult($kcServers,1);
  146. }
  147. $this->gameDetail('info');
  148. $kcServers = $this->getGameServer($gameid,1);
  149. // var_dump($kcServers);
  150. $kcServerCnt = $kcServers['list']->total();
  151. // echo $kcServerCnt."---kcServerCnt----<br>";
  152. $kfServers = $this->getGameServer($gameid,0);
  153. // var_dump($kfServers);
  154. $kfServerCnt = $kfServers['list']->total();
  155. // echo $kfServerCnt."----kfServerCnt-----<Br>";
  156. $this->assign('kcServers',$kcServers['list']);
  157. $this->assign('kcServerCnt',$kcServerCnt);
  158. $this->assign('kfServers',$kfServers['list']);
  159. $this->assign('kfServerCnt',$kfServerCnt);
  160. return $this->fetch('info');
  161. }
  162. private function news() {
  163. $gameModel = new GameModel;
  164. $gameid = intval(input('id'));
  165. if(!$gameid) {
  166. $this->_abort404();
  167. }
  168. $newsModel = new NewsModel;
  169. $list = $newsModel->cache(Config::get('QUERY_RESULT_CACHE_TIME'))
  170. ->alias('a')
  171. ->join('cy_content b', 'a.id = b.id','left')
  172. ->field('a.id,a.title,a.image,a.jlink,a.create_time,a.total,a.zhiding,a.type,a.gameid,b.content')
  173. ->where(['a.gameid'=>$gameid,'a.isdelete' => 0,'a.type'=>['in','1,2,3,4,5']])
  174. ->order('a.create_time DESC')
  175. ->paginate(10, false, array('query' => input('get.')))
  176. ->each(function ($item, $key){
  177. $item['image'] = getNewsImage($item['image']);
  178. $item['url'] = getMobileNewsUrl($item['id'],$item['jlink']);
  179. $item['createdate'] = date('Y-m-d',$item['create_time']);
  180. $item['createtime'] = date('Y-m-d H:i:s',$item['create_time']);
  181. $item['cutcontent'] = getCutcontent($item['content']);
  182. return $item;
  183. });
  184. // var_dump($list);
  185. if ($this->request->isAjax()) $this->jsonResult($list,1);
  186. $this->gameDetail('news');
  187. $totalNewsCnt = $newsModel->cache(Config::get('QUERY_RESULT_CACHE_TIME'))
  188. ->alias('a')
  189. ->join('cy_content b', 'a.id = b.id','left')
  190. ->field('a.id,a.title,a.image,a.jlink,a.create_time,a.total,a.zhiding,a.type,a.gameid,b.content')
  191. ->where(['a.gameid'=>$gameid,'a.isdelete' => 0,'a.type'=>['in','1,2,3,4,5']])
  192. ->count();
  193. // var_dump($totalNewsCnt);
  194. // echo $totalNewsCnt."----totalNewsCnt------<br>";
  195. $this->assign('list',$list);
  196. $this->assign('totalNewsCnt',$totalNewsCnt);
  197. // $this->assign('page', $list->render());
  198. return $this->fetch('info-news');
  199. }
  200. private function gift() {
  201. $gameModel = new GameModel;
  202. $gameid = intval(input('id'));
  203. if(!$gameid) {
  204. // throw new Exception("游戏不存在");
  205. $this->_abort404();
  206. }
  207. $where = [
  208. 'a.gameid' => $gameid,
  209. 'a.isdelete' => 0,
  210. 'a.endtime' => ['gt',NOW_TIMESTAMP],
  211. 'b.is_show' => 1,
  212. 'b.cooperation_status' => ['in',[0,1,2]]
  213. ];
  214. $list = Db::connect(config('database_slave'))->table('cy_libaoinfo')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->alias('a')
  215. ->join('cy_game b','a.gameid = b.id')
  216. ->join('cy_gameinfo info', 'b.id=info.game_id', 'left')
  217. ->field('a.id,a.gameid,a.title,a.content,a.total,a.used,a.starttime,a.endtime,info.mobileicon')
  218. ->where($where)
  219. ->where('a.total > a.used')
  220. ->order('a.create_time DESC')
  221. ->paginate(10, false, array('query' => input('get.')))
  222. ->each(function ($item, $key){
  223. $used = $item['used'];
  224. $total = $item['total'];
  225. $item['percent'] = '100%';
  226. if ( $used >= $total ) {
  227. $item['percent'] = '0%';
  228. } else if ( $used && $total ) {
  229. $item['percent'] = (bcsub( 1, bcdiv($used, $total, 2), 2 ) * 100) . '%';
  230. }
  231. $item['mobileicon'] = "http://static.46yx.com/".$item['mobileicon'];
  232. $item['starttime'] = date('Y-m-d H:i',$item['starttime']);
  233. $item['endtime'] = date('Y-m-d H:i',$item['endtime']);
  234. return $item;
  235. });
  236. if ($this->request->isAjax()) $this->jsonResult($list,1);
  237. $this->gameDetail('gift');
  238. $totalGiftCnt = Db::connect(config('database_slave'))->table('cy_libaoinfo')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->alias('a')
  239. ->join('cy_game b','a.gameid = b.id')
  240. ->join('cy_gameinfo info', 'b.id=info.game_id', 'left')
  241. ->where($where)
  242. ->where('a.total > a.used')
  243. ->count();
  244. $this->assign('list',$list);
  245. $this->assign('totalGiftCnt',$totalGiftCnt);
  246. // var_dump($list);
  247. // echo $totalGiftCnt."----totalGiftCnt-----<br>";
  248. // $this->assign('page', $list->render());
  249. return $this->fetch('info-gift');
  250. }
  251. private function gameDetail($p_type='info') {
  252. $gameModel = new GameModel;
  253. $gameid = intval(input('id'));
  254. if(!$gameid) {
  255. // throw new Exception("游戏不存在");
  256. $this->_abort404();
  257. }
  258. $detail = $gameModel->cache(Config::get('QUERY_RESULT_CACHE_TIME'))
  259. ->alias('game')
  260. ->join('cy_gameinfo info', 'game.id = info.game_id','left')
  261. ->join('cy_gametype t', 'game.type = t.id','left')
  262. ->join('cy_gamesubject s', 'game.subject = s.id','left')
  263. ->join('cy_sdkgamelist sdk', 'game.id=sdk.gameid and sdk.package_type=0 and sdk.upload_status=1 and sdk.channel_id='.MEMBER_DEFAULT_CHANNEL_ID,'left')
  264. ->field('game.id,game.nickname,game.power,info.androidurl,info.platform,game.pinyin,info.mobileicon,game.type,game.subject,game.publicity,info.developer,info.bigimage,t.name as typename,s.name as subjectname,info.description,sdk.filename')
  265. ->where(['game.id'=>$gameid,'game.cooperation_status' => ['in','0,1,2'],'game.is_show' => 1])
  266. ->find();
  267. if ( empty($detail)) {
  268. // throw new Exception("游戏不存在或无效");
  269. $this->_abort404();
  270. }
  271. else{
  272. $detail['icon'] = "http://static.46yx.com/".$detail['mobileicon'];
  273. $detail['size'] = getSize($detail);
  274. $detail['version'] = getVersion($detail);
  275. $detail['updatetime'] = getUpdateTime($detail);
  276. if($detail['platform']==1){
  277. $detail['download'] = '';
  278. $detail['ios_download'] = getIosDownload($detail);
  279. }
  280. else{
  281. $detail['download'] = getDownload($detail);
  282. $detail['ios_download'] = '';
  283. }
  284. $detail['screenShot'] = getScreenShot($detail['bigimage']);
  285. $detail['typename'] = getTypename($detail['typename']);
  286. $detail['subjectname'] = getSubjectname($detail['subjectname']);
  287. $detail['developer'] = getDeveloper($detail['developer']);
  288. }
  289. // var_dump($detail);
  290. if($p_type=='info'){
  291. //猜你喜欢游戏列表(读取和当前详情页的游戏相同类型 或者 题材的游戏,不重复显示同一款游戏而且不包括当前详情页的这款游戏)
  292. $relGameList = array();
  293. $whereSql = '';
  294. if(intval($detail['type']) || intval($detail['subject'])){
  295. if(intval($detail['type']) && intval($detail['subject'])){
  296. $whereSql = '(game.type='.intval($detail['type']).') or (game.subject='.intval($detail['subject']).')';
  297. }
  298. else if(intval($detail['type'])){
  299. $whereSql = '(game.type='.intval($detail['type']).')';
  300. }
  301. else if(intval($detail['subject'])){
  302. $whereSql = '(game.subject='.intval($detail['subject']).')';
  303. }
  304. }
  305. if($whereSql){
  306. $relGameList = $gameModel->cache(Config::get('QUERY_RESULT_CACHE_TIME'))
  307. ->alias('game')
  308. ->join('cy_gameinfo info', 'game.id = info.game_id')
  309. ->join('cy_gametype t', 'game.type = t.id','left')
  310. ->join('cy_gamesubject s', 'game.subject = s.id','left')
  311. ->join('cy_sdkgamelist sdk', 'game.id=sdk.gameid and sdk.package_type=0 and sdk.upload_status=1 and sdk.channel_id='.MEMBER_DEFAULT_CHANNEL_ID,'left')
  312. ->field('game.id,game.nickname,game.power,game.publicity,info.androidurl,info.platform,game.pinyin,info.mobileicon,game.type,game.subject,sdk.filename,t.name as typename,s.name as subjectname')
  313. ->where(['game.cooperation_status' => ['in','1,2'],'game.is_show' => 1,'game.id' => ['neq',$gameid]])
  314. ->where($whereSql)
  315. ->orderRaw('rand()')
  316. ->limit(8)
  317. ->select();
  318. foreach ( $relGameList as &$game ) {
  319. $game['icon'] = "http://static.46yx.com/".$game['mobileicon'];
  320. $game['size'] = getSize($game);
  321. $game['typename'] = getTypename($game['typename']);
  322. $game['subjectname'] = getSubjectname($game['subjectname']);
  323. $game['url'] = getGameUrl($game['id'],2);
  324. if($game['platform']==1){
  325. $game['download'] = '';
  326. $game['ios_download'] = getIosDownload($game);
  327. }
  328. else{
  329. $game['download'] = getDownload($game);
  330. $game['ios_download'] = '';
  331. }
  332. }
  333. }
  334. $title = $detail['nickname'].'下载_'.$detail['nickname'].'开服开测'.'_麻花网络';
  335. $this->assign('relGameList',$relGameList);
  336. }
  337. else if($p_type=='news'){
  338. $title = $detail['nickname'].'资讯攻略_麻花网络';
  339. }
  340. else if($p_type=='gift'){
  341. $title = $detail['nickname'].'礼包_麻花网络';
  342. }
  343. else{
  344. $title = $detail['nickname'].'下载_'.$detail['nickname'].'开服开测'.'_麻花网络';
  345. }
  346. $seo['title'] = $title;
  347. $seo['keywords'] = $detail['nickname'].','.$detail['nickname'].'下载,'.$detail['nickname'].'安卓版,'.$detail['nickname'].'攻略,'.$detail['nickname'].'资讯,'.$detail['nickname'].'礼包,'.$detail['nickname'].'开服,'.$detail['nickname'].'开测';
  348. $seo['description'] = '麻花网络'.$detail['nickname'].'手游专区,为您免费提供'.$detail['nickname'].'安卓版游戏下载,最实用的'.$detail['nickname'].'手游攻略资讯,还有'.$detail['nickname'].'礼包激活码等你拿,欢迎来麻花网络下载'.$detail['nickname'].'。';
  349. $this->assign('seo',$seo);
  350. $this->assign('detail',$detail);
  351. }
  352. /**
  353. * 开服、开测--列表
  354. */
  355. private function getGameServer($game_id,$type) {
  356. /*$type = $this->request->param('t',1,'intval');*/
  357. if (!in_array($type,[0,1])) $type = 0;
  358. $game_id = intval($game_id);
  359. $where = [
  360. 'gameid'=>intval($game_id),
  361. 'type'=>$type,
  362. 'isdelete'=>0,
  363. ];
  364. $nowtime = NOW_TIMESTAMP;
  365. $list = Db::connect(config('database_slave'))->table('cy_serverinfo')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))
  366. ->field('id,gameid,sername,sertime,serstatus,type,sercertype')
  367. ->where($where)
  368. ->where("( ( sertime > {$nowtime} and sercertype = 1 ) or sercertype = 2 )")
  369. ->order('sercertype asc,sertime asc')
  370. ->paginate(5, false)
  371. ->each(function ($item, $key){
  372. $td = date("Y-m-d");
  373. $tm = date("Y-m-d",strtotime("+1 day"));
  374. $item['subscribe'] = 1; // 预约游戏
  375. $item['serverName'] = '';
  376. if ($item['sercertype'] == 1){
  377. if(date("Y-m-d",$item['sertime']) == $td){
  378. $item['serverDate'] = '今日';
  379. $item['serverTime'] = date('H:i',$item['sertime']);
  380. }
  381. else if(date("Y-m-d",$item['sertime']) == $tm){
  382. $item['serverDate'] = '明日';
  383. $item['serverTime'] = date('H:i',$item['sertime']);
  384. }
  385. else{
  386. $item['serverDate'] = date('m',$item['sertime']).'-'.date('d',$item['sertime']);
  387. $item['serverTime'] = date('H:i',$item['sertime']);
  388. }
  389. if( $item['sertime'] <= NOW_TIMESTAMP + 60*60){
  390. $item['subscribe'] = 0;
  391. }
  392. }
  393. else{
  394. $item['serverDate'] = '';
  395. $item['serverTime'] = '长期有效';
  396. $item['subscribe'] = 0;
  397. }
  398. if($item['type'] == 1){
  399. $item['serverName'] = $this->_serstatus[$item['serstatus']];
  400. }
  401. else{
  402. $item['serverName'] = $item['sername'];
  403. }
  404. return $item;
  405. });
  406. $TempDate = '';
  407. foreach ( $list as &$item ) {
  408. if($item['serverDate'] == $TempDate){
  409. $item['serverDate'] = '';
  410. }
  411. else{
  412. $TempDate = $item['serverDate'];
  413. }
  414. }
  415. return ['list'=>$list];
  416. }
  417. public function gameList(){
  418. $condition = array();
  419. $condition['g.cooperation_status'] = ['in','1,2'];
  420. $condition['g.is_show'] = 1;
  421. $type = trim(input('type'));
  422. if(in_array($type,['hot','new','recommend'])){
  423. if($type=='hot'){
  424. $condition['g.lanmu'] = 2;
  425. }
  426. else if($type=='new'){
  427. $condition['g.lanmu'] = 3;
  428. }
  429. else{
  430. $condition['g.lanmu'] = 4;
  431. }
  432. }
  433. else{
  434. $condition['g.lanmu'] = 2;
  435. }
  436. $gameList = Db::connect(config('database_slave'))
  437. ->table('cy_game g')
  438. ->join('cy_gameinfo info', 'g.id = info.game_id')
  439. ->join('cy_gametype t', 'g.type = t.id','left')
  440. ->join('cy_gamesubject s', 'g.subject = s.id','left')
  441. ->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')
  442. ->cache(Config::get('QUERY_RESULT_CACHE_TIME'))
  443. ->field('g.id,g.nickname,g.power,info.androidurl,info.platform,g.pinyin,info.mobileicon,g.type,g.subject,g.publicity,t.name as typename,s.name as subjectname,sdk.filename')
  444. ->where($condition)
  445. ->order('g.xulie DESC,g.create_time desc')
  446. ->paginate(10, false, array('query' => input('get.')))
  447. ->each(function ($item, $key){
  448. $item['mobileicon'] = "http://static.46yx.com/".$item['mobileicon'];
  449. $item['url'] = getMobileGameUrl($item['id']);
  450. if($item['platform']==1){
  451. $item['download'] = '';
  452. $item['ios_download'] = getIosDownload($item);
  453. }
  454. else{
  455. $item['download'] = getDownload($item);
  456. $item['ios_download'] = '';
  457. }
  458. $item['size'] = getSize($item);
  459. $item['typename'] = getTypename($item['typename']);
  460. $item['subjectname'] = getSubjectname($item['subjectname']);
  461. return $item;
  462. });
  463. // var_dump($gameList);
  464. if ($this->request->isAjax()) $this->jsonResult($gameList,1);
  465. $type = trim(input('type'));
  466. if($type=='new'){
  467. $seo['title'] = '最新游戏_最新手机游戏排行_麻花网络';
  468. $seo['keywords'] = '最新手机游戏,最新手机游戏排行榜,最新手机游戏下载';
  469. $seo['description'] = '麻花网络热门手游推荐,为玩家提供当前最新的手机游戏排行,还有最新手机游戏免费下载。';
  470. }
  471. else if($type=='recommend'){
  472. $seo['title'] = '本周推荐_本周手机游戏排行_麻花网络';
  473. $seo['keywords'] = '本周热门手游,本周推荐手游,本周好玩的手机游戏下载';
  474. $seo['description'] = '麻花网络本周手游推荐,为玩家提供本周推荐的手机游戏排行,还有本周推荐的手机游戏免费下载。';
  475. }
  476. else{
  477. $seo['title'] = '热门游戏_热门手机游戏排行_麻花网络';
  478. $seo['keywords'] = '热门手机游戏,热门手机游戏排行榜,热门手机游戏下载';
  479. $seo['description'] = '麻花网络热门手游推荐,为玩家提供当前最热门的手机游戏排行,还有最热门手机游戏免费下载。';
  480. }
  481. $this->assign('seo',$seo);
  482. $this->assign('game_list', $gameList);
  483. return $this->fetch();
  484. }
  485. // 搜索游戏关键字
  486. public function ajaxGameList()
  487. {
  488. $keyword = input('keyword');
  489. $list = (new GameModel())->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->alias('game')
  490. ->join('cy_gameinfo info', 'game.id = info.game_id')
  491. ->join('cy_sdkgamelist sdk', 'game.id=sdk.gameid and sdk.package_type=0 and sdk.upload_status=1 and sdk.channel_id='.MEMBER_DEFAULT_CHANNEL_ID,'left')
  492. ->where(['game.cooperation_status' => ['in','1,2'],'game.is_show' => 1])
  493. ->where('game.nickname|game.pinyin','like','%'. $keyword .'%')
  494. ->field('LENGTH(game.nickname) as tLen,LOCATE("'.$keyword.'",game.nickname) as tIndex,LOCATE("'.$keyword.'",game.pinyin) as cIndex,game.id,game.nickname')
  495. ->order('tIndex,cIndex,tLen,game.create_time desc')
  496. ->limit(10)
  497. ->select();
  498. foreach ($list as $key => &$value) {
  499. $value['url'] = getMobileGameUrl($value['id']);
  500. $value['nickname'] = preg_replace("/($keyword)/i","<b style=\"color:#51a7ff\">\\1</b>",$value['nickname']);
  501. }
  502. return $list;
  503. }
  504. }