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
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();
|
|
}
|
|
} |