Gameaid.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <?php
  2. /**
  3. * 游戏加速
  4. */
  5. namespace app\mobile\controller;
  6. use think\Db;
  7. use think\Config;
  8. use app\common\model\GameBand;
  9. use app\common\model\GameHome as GameModel;
  10. class Gameaid extends Mobile
  11. {
  12. private $_type = [
  13. '1' => '加速版',
  14. '2' => '跳过版',
  15. ];
  16. /**
  17. * 初始化操作
  18. */
  19. protected function _initialize()
  20. {
  21. parent::_initialize();
  22. }
  23. /**
  24. * 加速游戏
  25. */
  26. public function index(){
  27. $where = [
  28. 'b.is_show' => 1,
  29. 'b.cooperation_status' => ['in',[1,2]]
  30. ];
  31. $list = Db::connect(config('database_slave'))->table('cy_gameaid')->cache(Config::get('QUERY_RESULT_CACHE_TIME'))->alias('a')
  32. ->join('cy_game b','b.id = a.gameid')
  33. ->join('cy_gameinfo info', 'b.id=info.game_id', 'left')
  34. ->field('a.*,b.nickname,info.mobileicon,b.pinyin,info.platform')
  35. ->where($where)
  36. ->order('a.create_time desc')
  37. ->paginate(10, false, array('query' => input('get.')))
  38. ->each(function ($item, $key){
  39. $item['filename'] = Db::connect(config('database_slave'))->table('cy_sdkgamelist')->where(['upload_status'=>1,'package_type'=>1,'gameid'=>$item['gameid'],'channel_id'=>MEMBER_DEFAULT_CHANNEL_ID])->value('filename');
  40. $urlArr = $this->getDownUrl($item);
  41. $item['android_down_url'] = $urlArr['android_down_url'];
  42. $item['ios_down_url'] = $urlArr['ios_down_url'];
  43. $item['mobileicon'] = getGameIcon($item['mobileicon']);
  44. $item['typeName'] = isset($this->_type[$item['type']]) ? $this->_type[$item['type']] : '';
  45. return $item;
  46. });
  47. if ($this->request->isAjax()) $this->jsonResult($list,1);
  48. $this->assign('list',$list);
  49. $this->assign('type',$this->_type);
  50. $this->assign('page',$list->render());
  51. return $this->fetch();
  52. }
  53. /**
  54. * 光环包下载
  55. */
  56. public function download() {
  57. $gameModel = new GameModel;
  58. $gameid = intval(input('id'));
  59. if(!$gameid) {
  60. $this->_abort404();
  61. }
  62. $detail = $gameModel->cache(Config::get('QUERY_RESULT_CACHE_TIME'))
  63. ->alias('game')
  64. ->join('cy_gameinfo info', 'game.id = info.game_id','left')
  65. ->join('cy_gametype t', 'game.type = t.id','left')
  66. ->join('cy_gamesubject s', 'game.subject = s.id','left')
  67. ->join('cy_sdkgamelist sdk', 'game.id=sdk.gameid and sdk.package_type=1 and sdk.upload_status=1 and sdk.channel_id='.MEMBER_DEFAULT_CHANNEL_ID,'left')
  68. ->field('game.id,game.nickname,game.power,info.androidurl,game.pinyin,info.mobileicon,game.type,game.subject,info.developer,info.bigimage,t.name as typename,s.name as subjectname,info.description,sdk.filename')
  69. ->where(['game.id'=>$gameid,'game.cooperation_status' => ['in','0,1,2'],'game.is_show' => 1])
  70. ->find();
  71. if ( empty($detail)) {
  72. // throw new Exception("游戏不存在或无效");
  73. $this->_abort404();
  74. }
  75. else{
  76. /*$detail['icon'] = getGameIcon($detail['mobileicon']);
  77. $detail['size'] = getSize($detail);
  78. $detail['version'] = getVersion($detail);
  79. $detail['updatetime'] = getUpdateTime($detail);*/
  80. $detail['download'] = getDownload($detail);
  81. /* $detail['screenShot'] = getScreenShot($detail['bigimage']);
  82. $detail['typename'] = getTypename($detail['typename']);
  83. $detail['subjectname'] = getSubjectname($detail['subjectname']);
  84. $detail['developer'] = getDeveloper($detail['developer']);*/
  85. }
  86. $this->assign('detail',$detail);
  87. return $this->fetch();
  88. }
  89. /**
  90. * 获取下载链接
  91. */
  92. public function getDownUrl($item,$package_type = 1){
  93. //安卓游戏
  94. if($item['platform']==0)
  95. {
  96. $ios_down_url = '';
  97. $gameBandInfo = Db::connect(config('database_slave'))->table('nw_game_band b,cy_game g')->field('b.ios_game_id,g.id,g.pinyin')
  98. ->where('b.ios_game_id = g.id')
  99. ->where(['b.android_game_id'=>$item['gameid']])->find();
  100. if(!empty($gameBandInfo)){
  101. //绑定的游戏包名
  102. $bandFilename = Db::connect(config('database_slave'))->table('cy_sdkgamelist')->where(['gameid'=>$gameBandInfo['id'],'channel_id'=>MEMBER_DEFAULT_CHANNEL_ID,'upload_status'=>1,'package_type'=>$package_type])->value('filename');
  103. if(!empty($bandFilename)){
  104. $ios_down_url = APK_DOWN_DOMAIN.'/sygame/'.$gameBandInfo['pinyin'].'/'.str_replace(".ipa",".plist",$bandFilename);
  105. }
  106. }
  107. $url = [
  108. 'android_down_url' => (!empty($item['filename']) ? APK_DOWN_DOMAIN.'/sygame/'.$item['pinyin'].'/'.$item['filename'] : ''),
  109. 'ios_down_url' => (isset($ios_down_url) ? $ios_down_url : ''),
  110. ];
  111. return $url;
  112. }
  113. //IOS游戏
  114. else{
  115. $android_down_url = '';
  116. $gameBandInfo = Db::connect(config('database_slave'))->table('nw_game_band b,cy_game g')->field('b.android_game_id,g.id,g.pinyin')
  117. ->where('b.android_game_id = g.id')
  118. ->where(['b.ios_game_id'=>$item['gameid']])->find();
  119. if(!empty($gameBandInfo)){
  120. //绑定的游戏包名
  121. $bandFilename = Db::connect(config('database_slave'))->table('cy_sdkgamelist')->where(['gameid'=>$gameBandInfo['id'],'channel_id'=>MEMBER_DEFAULT_CHANNEL_ID,'upload_status'=>1,'package_type'=>$package_type])->value('filename');
  122. if(!empty($bandFilename)){
  123. $android_down_url = APK_DOWN_DOMAIN.'/sygame/'.$gameBandInfo['pinyin'].'/'.$bandFilename;
  124. }
  125. }
  126. $url = [
  127. 'android_down_url' => (isset($android_down_url) ? $android_down_url : ''),
  128. 'ios_down_url' => (!empty($item['filename']) ? APK_DOWN_DOMAIN.'/sygame/'.$item['pinyin'].'/'.str_replace(".ipa",".plist",$item['filename']) : ''),
  129. ];
  130. return $url;
  131. }
  132. }
  133. }