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.

121 lines
4.7 KiB
PHP

<?php
namespace Home\Controller;
use Admin\Model\PromoteModel;
use Think\Controller;
/**
* 游戏分成比例控制器
*/
class GameDivideController extends BaseController
{
//首页
public function index()
{
$loginPromote = $this->getLoginPromote();
if ($loginPromote['parent_id'] > 0) {//只开会长权限
$this->error('权限异常');
}
//验证安全密码
$metaTitle = '分成比例';
$modelList = ['游戏管理', $metaTitle];
$this->verifyPasswordView($modelList);
$time = time();
$promoteId = $loginPromote['id'];
if ($loginPromote['level'] != 1) {
$chain = explode('/', trim($loginPromote['chain'], '/'));
$promoteId = empty($chain[0]) ? 0 : intval($chain[0]);
}
$promoteGameRatiosMap['promote_id'] = $promoteId;
$promoteGameRatiosMap['status'] = 1;
$promoteGameRatiosMap['begin_time'] = ['elt', $time];
$promoteGameRatiosWhere['_string'] = "end_time = 0 or end_time >= $time";
$promoteGameRatiosMap['_complex'] = $promoteGameRatiosWhere;
$map['online_status'] = 1;//开发者游戏上线状态
$map['down_port'] = 1;//游戏端口 第三方接口不能申请
$map['game_status'] = 1;//游戏状态
empty(I('relation_game_id')) || $map['relation_game_id'] = I('relation_game_id');
empty(I('sdk_version')) || $map['sdk_version'] = I('sdk_version');
empty(I('server_type')) || $map['server_type'] = I('server_type');
$minRatio = I('min_ratio', '');
$maxRatio = I('max_ratio', '');
if (!empty($minRatio) || !empty($maxRatio)) {
$promoteGameRatiosNotInMap = $promoteGameRatiosMap;
if (!empty($minRatio) && empty($maxRatio)) {
$promoteGameRatiosMap['ratio'] = ['egt', $minRatio];
$map['ratio'] = ['egt', $minRatio];
} elseif (empty($minRatio) && !empty($maxRatio)) {
$promoteGameRatiosMap['ratio'] = ['elt', $maxRatio];
$map['ratio'] = ['elt', $maxRatio];
} elseif (!empty($minRatio) && !empty($maxRatio)) {
$promoteGameRatiosMap['ratio'] = ['between', [$minRatio, $maxRatio]];
$map['ratio'] = ['between', [$minRatio, $maxRatio]];
}
$promoteGameRatioIds = M('promote_game_ratio', 'tab_')->where($promoteGameRatiosMap)->getField('game_id', true);
$promoteGameRatioNotInIds = M('promote_game_ratio', 'tab_')->where($promoteGameRatiosNotInMap)->getField('game_id', true);
if (!empty($promoteGameRatioIds)) {
$whereOr['id'] = ['not in', $promoteGameRatioNotInIds];
$whereOr['ratio'] = $map['ratio'];
$where['id'] = ['in', $promoteGameRatioIds];
$where['_logic'] = 'or';
$where['_complex'] = $whereOr;
$map['_complex'] = $where;
unset($map['ratio']);
}
}
$page = intval(I('get.p', 0));
$page = $page ? $page : 1; //默认显示第一页数据
if (isset($_REQUEST['row'])) {
$row = $_REQUEST['row'];
} else {
$row = 10;
}
$data = M('Game', 'tab_')
->field('id,icon,game_name,game_type_name,sdk_version,server_type,discount,ratio')
->where($map)
->order('id desc')
->page($page, $row)
->select();
$count = M('Game', 'tab_')
->where($map)
->count();
if (!empty($data)) {
$promoteGameRatios = M('promote_game_ratio', 'tab_')->where($promoteGameRatiosMap)->getField('game_id, ratio', true);
foreach ($data as &$list) {
$list['ratio'] = isset($promoteGameRatios[$list['id']]) ? $promoteGameRatios[$list['id']] : $list['ratio'];
}
}
//分页
$parameter['p'] = I('get.p', 1);
$parameter['row'] = I('get.row');
empty(I('relation_game_id')) || $parameter['relation_game_id'] = I('relation_game_id');
empty(I('sdk_version')) || $parameter['sdk_version'] = I('sdk_version');
empty(I('server_type')) || $parameter['server_type'] = I('server_type');
($minRatio === '') || $parameter['min_ratio'] = $minRatio;
($maxRatio === '') || $parameter['max_ratio'] = $maxRatio;
$page = set_pagination($count, $row, $parameter);
if ($page) {
$this->assign('_page', $page);
}
$this->assign('dataList', $data);
$this->assign('count', $count);
$this->assign('serverType', I('server_type', 0));
$this->meta_title = $metaTitle;
$this->assign('modelList', $modelList);
$this->display();
}
}