You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.6 KiB
PHP

<?php
namespace Base\Repository;
use Base\Tool\Registry;
class GameRepository
{
public function getBaseGames($isRefresh = false)
{
$baseGames = Registry::get('base_games');
if ($isRefresh || is_null($baseGames)) {
$baseGames = M('base_game', 'tab_')->where('1=1')->select();
Registry::set('base_games', $baseGames);
}
return $baseGames;
}
public function getBaseGameByGameId($gameId, array $baseGames = null)
{
if (is_null($baseGames)) {
return M('base_game', 'tab_')->where('android_game_id=' . $gameId . ' or ios_game_id=' . $gameId)->find();
}
foreach ($baseGames as $baseGame) {
if ($baseGame['android_game_id'] == $gameId || $baseGame['ios_game_id'] == $gameId) {
return $baseGame;
}
}
return null;
}
public function getChoiceGames(array $visibleGameIds = null, $fields = ['id', 'game_name'])
{
$map = [];
$map['_string'] = '1=1';
if (is_null($visibleGameIds)) {
} elseif (count($visibleGameIds) > 0) {
$map['_string'] = ' and id in (' . implode(',', $visibleGameIds) . ')';
} else {
$map['_string'] = ' and 1=0';
}
return M('game', 'tab_')->field($fields)->where($map)->select();
}
public function getServersByGameId($gameId, $fields = ['id', 'server_name', 'server_id'])
{
$map = [];
$map['game_id'] = $gameId;
return M('server', 'tab_')
->field($fields)
->where($map)
->order('server_id asc')
->select();
}
}