|
|
<?php
|
|
|
namespace admin\Controller;
|
|
|
|
|
|
use Think\Controller;
|
|
|
|
|
|
class ExportController extends Controller
|
|
|
{
|
|
|
public function exportExcel($expTitle, $expCellName, $expTableData)
|
|
|
{
|
|
|
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
|
|
|
// $fileName = session('user_auth.username').date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
|
|
|
$fileName = $expTitle;
|
|
|
$cellNum = count($expCellName);
|
|
|
$dataNum = count($expTableData);
|
|
|
Vendor("PHPExcel.PHPExcel");
|
|
|
$objPHPExcel = new \PHPExcel();
|
|
|
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1');//合并单元格
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle);
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
for ($i = 0; $i < $cellNum; $i++) {
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i] . '2', $expCellName[$i][1]);
|
|
|
}
|
|
|
for ($i = 0; $i < $dataNum; $i++) {
|
|
|
for ($j = 0; $j < $cellNum; $j++) {
|
|
|
$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j] . ($i + 3), $expTableData[$i][$expCellName[$j][0]]);
|
|
|
}
|
|
|
}
|
|
|
ob_end_clean();//清除缓冲区,避免乱码
|
|
|
header('pragma:public');
|
|
|
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');
|
|
|
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
|
|
|
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
|
|
$objWriter->save('php://output');
|
|
|
exit;
|
|
|
}
|
|
|
|
|
|
//导出Excel
|
|
|
function expUser($id)
|
|
|
{
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
switch ($id) {
|
|
|
case 1:
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('user_account', "玩家账号"),
|
|
|
array('game_name', "游戏名称"),
|
|
|
array('server_name', L('Game_area_clothing')),
|
|
|
array('role_name', "角色名"),
|
|
|
array('role_level', "游戏等级"),
|
|
|
array('play_time', "最后登录时间", 'time_format', '*'),
|
|
|
array('play_ip', "最后登录ip"),
|
|
|
);
|
|
|
if (isset($_REQUEST['game_name'])) {
|
|
|
$map['game_name'] = ['like', trim($_REQUEST['game_name'])."%"];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
if (isset($_REQUEST['user_account'])) {
|
|
|
$map['user_account'] = array('like','%'.trim($_REQUEST['user_account']).'%');
|
|
|
unset($_REQUEST['user_account']);
|
|
|
}
|
|
|
if (isset($_REQUEST['server_name'])) {
|
|
|
$map['server_name'] = array('like','%'.trim($_REQUEST['server_name']).'%');
|
|
|
unset($_REQUEST['server_name']);
|
|
|
}
|
|
|
if (isset($_REQUEST['server_id'])) {
|
|
|
$map['server_id'] = trim($_REQUEST['server_id']);
|
|
|
unset($_REQUEST['server_id']);
|
|
|
}
|
|
|
if (isset($_REQUEST['game_type'])) {
|
|
|
$map['sdk_version'] = trim($_REQUEST['game_type']);
|
|
|
unset($_REQUEST['game_type']);
|
|
|
}
|
|
|
if (isset($_REQUEST['role_name'])) {
|
|
|
$map['role_name'] = array('like','%'.trim($_REQUEST['role_name']).'%');
|
|
|
unset($_REQUEST['role_name']);
|
|
|
}
|
|
|
if (isset($_REQUEST['promote_id'])) {
|
|
|
$queryStr = '';
|
|
|
if ($_REQUEST['promote_id'] == 0) {
|
|
|
$map['promote_id'] = '0';
|
|
|
} else {
|
|
|
$queryStr = "chain like '%/{$_REQUEST['promote_id']}/%' or id={$_REQUEST['promote_id']}";
|
|
|
$promoter_ids = D("Promote")->where($queryStr)->field('id')->select();
|
|
|
$promoter_ids ? $map['promote_id'] = ['in', implode(',', array_column($promoter_ids, 'id'))] : null;
|
|
|
}
|
|
|
}
|
|
|
$xlsData = M('user_play_info', 'tab_')
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
break;
|
|
|
case 2:
|
|
|
$xlsName = $xlsName?$xlsName:"渠道注册";
|
|
|
$xlsCell = array(
|
|
|
array('account', "玩家账号"),
|
|
|
array('fgame_name', "注册游戏"),
|
|
|
array('promote_account', L('Subordinate_channel')),
|
|
|
array('register_time', L('Registration_time'), 'time_format', '*'),
|
|
|
array('register_ip', L('Register_iP')),
|
|
|
array('parent_id', "上级推广员"),
|
|
|
array('ba_id', '商务专员', 'get_business_affairs_account', '*'),
|
|
|
);
|
|
|
if (isset($_REQUEST['game_name'])) {
|
|
|
if ($_REQUEST['game_name'] == L('All')) {
|
|
|
unset($_REQUEST['game_name']);
|
|
|
} else {
|
|
|
$map['fgame_name'] = $_REQUEST['game_name'];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
}
|
|
|
$map['tab_user.promote_id'] = array("neq", 0);
|
|
|
if (isset($_REQUEST['promote_name'])) {
|
|
|
if ($_REQUEST['promote_name'] == L('All')) {
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
} else if ($_REQUEST['promote_name'] == "官方渠道") {
|
|
|
$map['tab_user.promote_id'] = array("elt", 0);
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
} else {
|
|
|
$map['tab_user.promote_id'] = get_promote_id($_REQUEST['promote_name']);
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
}
|
|
|
}
|
|
|
if (isset($_REQUEST['is_check']) && $_REQUEST['is_check'] != L('All')) {
|
|
|
$map['is_check'] = check_status($_REQUEST['is_check']);
|
|
|
unset($_REQUEST['is_check']);
|
|
|
}
|
|
|
if (isset($_REQUEST['account'])) {
|
|
|
$map['tab_user.account'] = array('like', '%' . $_REQUEST['account'] . '%');
|
|
|
unset($_REQUEST['account']);
|
|
|
}
|
|
|
|
|
|
if(isset($_REQUEST['ba_id'])){
|
|
|
$map['ba_id'] = $_REQUEST['ba_id'];
|
|
|
unset($_REQUEST['ba_id']);
|
|
|
}
|
|
|
if (isset($_REQUEST['time-start']) && isset($_REQUEST['time-end'])) {
|
|
|
$map['register_time'] = array('BETWEEN', array(strtotime($_REQUEST['time-start']), strtotime($_REQUEST['time-end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['time-start']);
|
|
|
unset($_REQUEST['time_end']);
|
|
|
}
|
|
|
if (isset($_REQUEST['start']) && isset($_REQUEST['end'])) {
|
|
|
$map['register_time'] = array('BETWEEN', array(strtotime($_REQUEST['start']), strtotime($_REQUEST['end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['start']);
|
|
|
unset($_REQUEST['end']);
|
|
|
}
|
|
|
$model = array(
|
|
|
'm_name' => 'User',
|
|
|
'join' => 'tab_promote ON tab_user.promote_id = tab_promote.id',
|
|
|
'fields' => array(
|
|
|
'tab_user.id',
|
|
|
'tab_user.account',
|
|
|
'tab_user.fgame_name',
|
|
|
'tab_user.nickname',
|
|
|
'tab_user.email',
|
|
|
'tab_user.phone',
|
|
|
'promote_id',
|
|
|
'tab_user.parent_id',
|
|
|
'tab_user.register_time',
|
|
|
'tab_user.register_way',
|
|
|
'tab_user.register_ip',
|
|
|
'promote_account',
|
|
|
'tab_user.parent_name',
|
|
|
'is_check',
|
|
|
'tab_promote.ba_id'
|
|
|
),
|
|
|
'key' => array('tab_user.account', 'tab_game.fgame_name'),
|
|
|
'map' => $map,
|
|
|
'order' => 'id desc',
|
|
|
'title' => "渠道注册",
|
|
|
'template_list' => 'ch_reg_list',
|
|
|
);
|
|
|
$name = $model['m_name'];
|
|
|
$xlsData = M($name, "tab_")
|
|
|
->field($model['fields'])
|
|
|
->join($model['join'])
|
|
|
->join($model['joins'])
|
|
|
->join($model['joinss'])
|
|
|
->where($model['map'])
|
|
|
->order($model['order'])
|
|
|
->group($model['group'])
|
|
|
->select();
|
|
|
foreach ($xlsData as $key => &$value) {
|
|
|
$xlsData[$key]['parent_id'] = get_top_promote($value['promote_id'], $value['parent_id']);
|
|
|
}
|
|
|
break;
|
|
|
case 3:
|
|
|
if($_REQUEST['type']==2){
|
|
|
$xlsCell = array(
|
|
|
array('id', L('Account_number_ID')),
|
|
|
array('register_type', L('Third_party_source'), "get_registertype", '*'),
|
|
|
array('account', "玩家账号"),
|
|
|
array('promote_account', L('Subordinate_channel')),
|
|
|
array('balance', "账户平台币"),
|
|
|
array('recharge_total', "累计充值"),
|
|
|
array('gold_coin', "金币"),
|
|
|
array('alipay', "绑定支付宝"),
|
|
|
array('small_count', "小号"),
|
|
|
array('vip_level', "VIP等级"),
|
|
|
array('register_time', L('Registration_time'), 'time_format', '*'),
|
|
|
array('login_time', "最后登录时间", 'time_format', '*'),
|
|
|
array('register_ip', L('Register_iP')),
|
|
|
array('lock_status', L('Account_status'), 'get_info_status', '*', '4'),
|
|
|
);
|
|
|
$map['tab_user.register_type']= ['in','3,4,5,6'];
|
|
|
}else{
|
|
|
$xlsCell = array(
|
|
|
array('id', L('Account_number_ID')),
|
|
|
array('account', "玩家账号"),
|
|
|
array('promote_account', L('Subordinate_channel')),
|
|
|
array('balance', "账户平台币"),
|
|
|
array('recharge_total', "累计充值"),
|
|
|
array('gold_coin', "金币"),
|
|
|
array('alipay', "绑定支付宝"),
|
|
|
array('small_count', "小号"),
|
|
|
array('vip_level', "VIP等级"),
|
|
|
array('register_type', "注册方式"),
|
|
|
array('register_time', L('Registration_time'), 'time_format', '*'),
|
|
|
array('login_time', "最后登录时间", 'time_format', '*'),
|
|
|
array('register_ip', L('Register_iP')),
|
|
|
array('lock_status', L('Account_status'), 'get_info_status', '*', '4'),
|
|
|
);
|
|
|
$map['tab_user.register_type']=['in','1,2'];
|
|
|
$map['tab_user.register_type']=['in','0,1,2,7'];
|
|
|
|
|
|
}
|
|
|
|
|
|
if (isset($_REQUEST['user_id'])) {
|
|
|
$map['tab_user.id'] = $_REQUEST['user_id'];
|
|
|
unset($_REQUEST['user_id']);
|
|
|
}
|
|
|
|
|
|
if (isset($_REQUEST['device_number'])) {
|
|
|
$map['tab_user.device_number'] = $_REQUEST['device_number'];
|
|
|
unset($_REQUEST['device_number']);
|
|
|
}
|
|
|
if ($_REQUEST['promote_id'] != '') {
|
|
|
if($_REQUEST['promote_id']=='UC'){
|
|
|
$map['tab_user.promote_account'] = 'UC用户';
|
|
|
} else if ($_REQUEST['promote_id']==0) {
|
|
|
$map['tab_user.promote_id'] = 0;
|
|
|
} else{
|
|
|
$promoter_ids = D("Promote")->where("chain like '%/{$_REQUEST['promote_id']}/%' or id={$_REQUEST['promote_id']}")->field('id')->select();
|
|
|
if ($promoter_ids) {
|
|
|
$map['tab_user.promote_id'] = ['in', implode(',', array_column($promoter_ids, 'id'))];
|
|
|
$spendprom = " AND ss.promote_id IN (" . implode(',', array_column($promoter_ids, 'id')) . ") ";
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
$game_map = "";
|
|
|
if (isset($_REQUEST['game_name'])) {
|
|
|
$game_map .= " and tab_user_play.game_id in (".implode(',', array_column(getGameByName($_REQUEST['game_name'], $_REQUEST['game_type']), 'id')).")";
|
|
|
}
|
|
|
$game_play_map = '';
|
|
|
if (isset($_REQUEST['server_name'])) {
|
|
|
$game_play_map .= " and tab_user_play_info.server_name = '{$_REQUEST['server_name']}' ";
|
|
|
}
|
|
|
// if (isset($_REQUEST['promote_account'])) {
|
|
|
// $map['promote_id'] = get_promote_id(trim(I('promote_account')));
|
|
|
// unset($_REQUEST['promote_account']);
|
|
|
// }
|
|
|
if (isset($_REQUEST['register_way'])) {
|
|
|
if($_REQUEST['type']==1) {
|
|
|
if ($_GET['register_way'] == 1) {
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
$hav .= ' tab_user.register_type in (0,1)';
|
|
|
$maps['tab_user.register_type'] = ['in',[0,1]];
|
|
|
} elseif($_GET['register_way'] == 7){
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
$hav .= ' tab_user.register_type in(7)';
|
|
|
$maps['tab_user.register_type'] = 7;
|
|
|
}else {
|
|
|
empty($hav) || $hav .= ' AND ';
|
|
|
$hav .= ' tab_user.register_type in(2)';
|
|
|
$maps['tab_user.register_type'] = 2;
|
|
|
}
|
|
|
} else {
|
|
|
$map['register_way'] = I('register_way');
|
|
|
unset($_REQUEST['register_way']);
|
|
|
}
|
|
|
}
|
|
|
if (isset($_REQUEST['register_type'])) {
|
|
|
$map['register_type'] = I('register_type');
|
|
|
unset($_REQUEST['register_type']);
|
|
|
}
|
|
|
if (isset($_REQUEST['status'])) {
|
|
|
$map['lock_status'] = I('status');
|
|
|
unset($_REQUEST['status']);
|
|
|
}
|
|
|
if (!empty(I('time_start')) && !empty(I('time_end'))) {
|
|
|
$map['register_time'] = array('BETWEEN', array(strtotime(I('get.time_start')), strtotime(I('time_end')) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['time_start']);
|
|
|
unset($_REQUEST['time_end']);
|
|
|
}
|
|
|
empty(I('account')) || $map['account'] = ['like', '%' . I('account') . '%'];
|
|
|
//排序
|
|
|
if (I('total_status') == 1) {
|
|
|
$order = 'cumulative asc';
|
|
|
} elseif (I('total_status') == 2) {
|
|
|
$order = 'cumulative desc';
|
|
|
} else {
|
|
|
$order = 'id desc';
|
|
|
}
|
|
|
|
|
|
if (isset($_REQUEST['viplevel'])) {
|
|
|
|
|
|
$havs = get_vip_level_limit('recharge_total',$_REQUEST['viplevel']);
|
|
|
}
|
|
|
|
|
|
$map['puid'] = array('eq',0);
|
|
|
$map['is_platform'] = 0;
|
|
|
if($_REQUEST['promote_id'] && $_REQUEST['promote_id'] > -1){
|
|
|
$xlsData = M('user', 'tab_')->field('tab_user.id,tab_user.age_status,tab_user.account,tab_user.gold_coin,tab_user.alipay,tab_user.balance,tab_user.promote_account,register_time,tab_user.lock_status,tab_user.register_way,tab_user.register_type,tab_user.register_ip,tab_user.login_time,IFNULL(sum(ss.pay_amount),0) AS recharge_total')
|
|
|
->join('left join tab_spend as ss on ss.user_id=tab_user.id AND ss.pay_status = 1'.$spendprom)
|
|
|
->join($game_map ? "tab_user_play on tab_user_play.user_id = tab_user.id $game_map" : false)
|
|
|
->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = tab_user.id $game_play_map" : false)
|
|
|
->where($map)
|
|
|
->group('tab_user.id')
|
|
|
->order($order)
|
|
|
->having($havs)
|
|
|
->select();
|
|
|
}else{
|
|
|
$xlsData = M('user', 'tab_')->field('tab_user.id,tab_user.age_status,tab_user.account,tab_user.gold_coin,tab_user.alipay,tab_user.balance,tab_user.promote_account,register_time,tab_user.lock_status,tab_user.register_way,tab_user.register_type,tab_user.register_ip,tab_user.login_time,IFNULL(sum(ss.pay_amount),0) AS recharge_total')
|
|
|
->join('left join tab_spend as ss on ss.user_id=tab_user.id AND ss.pay_status = 1')
|
|
|
->join($game_map ? "tab_user_play on tab_user_play.user_id = tab_user.id $game_map" : false)
|
|
|
->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = tab_user.id $game_play_map" : false)
|
|
|
->where($map)
|
|
|
->group('tab_user.id')
|
|
|
->order($order)
|
|
|
->having($havs)
|
|
|
->select();
|
|
|
}
|
|
|
//数据
|
|
|
|
|
|
|
|
|
if($xlsData) {
|
|
|
$ids = array_column($xlsData,'id');
|
|
|
/* 在手里 */
|
|
|
$small = M('user','tab_')->field('count(id) as count,puid')->where(['puid'=>array('in',$ids)])->group('puid')->select();
|
|
|
/* 出售中 */
|
|
|
$small2 = M('user','tab_')->field('count(id) as count,source_puid')->where(['source_puid'=>array('in',$ids),'source_time'=>0])->group('source_puid')->select();
|
|
|
|
|
|
foreach($xlsData as $k => $v) {
|
|
|
|
|
|
|
|
|
$xlsData[$k]['vip_level'] = get_vip_level($v['recharge_total']);
|
|
|
if(empty($v['alipay'])){
|
|
|
$xlsData[$k]['alipay'] = '--';
|
|
|
}
|
|
|
|
|
|
$xlsData[$k]['register_type'] = $v['register_type'] == 2?'手机号':($v['register_type']==7?'邮箱':'账号');
|
|
|
|
|
|
$xlsData[$k]['small_count'] = 0;
|
|
|
foreach($small as $s) {
|
|
|
if($s['puid'] == $v['id']) {
|
|
|
$xlsData[$k]['small_count'] += $s['count'];break;
|
|
|
}
|
|
|
}
|
|
|
foreach($small2 as $s) {
|
|
|
if($s['source_puid'] == $v['id']) {
|
|
|
$xlsData[$k]['small_count'] += $s['count'];break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
case 4:
|
|
|
$xlsName = $xlsName?$xlsName:"渠道充值";
|
|
|
|
|
|
/* if (isset($_REQUEST['game_name'])) {
|
|
|
if ($_REQUEST['game_name'] == L('All')) {
|
|
|
unset($_REQUEST['game_name']);
|
|
|
} else {
|
|
|
$map['game_name'] = $_REQUEST['game_name'];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
}
|
|
|
if (!empty($_REQUEST['server_id'])) {
|
|
|
$map['server_id'] = $_REQUEST['server_id'];
|
|
|
unset($_REQUEST['server_id']);
|
|
|
}
|
|
|
if (isset($_REQUEST['promote_name'])) {
|
|
|
if ($_REQUEST['promote_name'] == L('All')) {
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
} else if ($_REQUEST['promote_name'] == "官方渠道") {
|
|
|
$map['promote_id'] = array("lte", 0);
|
|
|
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
} else {
|
|
|
$map['promote_id'] = get_promote_id($_REQUEST['promote_name']);
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
}
|
|
|
} else {
|
|
|
$map['promote_id'] = array("gt", 0);
|
|
|
}
|
|
|
|
|
|
if (isset($_REQUEST['pay_way'])) {
|
|
|
$map['pay_way'] = $_REQUEST['pay_way'];
|
|
|
unset($_REQUEST['pay_way']);
|
|
|
}
|
|
|
if (isset($_REQUEST['user_account'])) {
|
|
|
$map['user_account'] = array('like', '%' . $_REQUEST['user_account'] . '%');
|
|
|
unset($_REQUEST['user_account']);
|
|
|
}
|
|
|
if (isset($_REQUEST['spend_ip'])) {
|
|
|
$map['spend_ip'] = array('like', '%' . $_REQUEST['spend_ip'] . '%');
|
|
|
unset($_REQUEST['spend_ip']);
|
|
|
}
|
|
|
if (isset($_REQUEST['promote_name'])) {
|
|
|
$map['promote_account'] = $_REQUEST['promote_name'];
|
|
|
unset($_REQUEST['user_account']);
|
|
|
}
|
|
|
if (isset($_REQUEST['time-start']) && isset($_REQUEST['time-end'])) {
|
|
|
$map['pay_time'] = array('BETWEEN', array(strtotime($_REQUEST['time-start']), strtotime($_REQUEST['time-end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['time-start']);
|
|
|
unset($_REQUEST['time_end']);
|
|
|
}
|
|
|
if (isset($_REQUEST['start']) && isset($_REQUEST['end'])) {
|
|
|
$map['pay_time'] = array('BETWEEN', array(strtotime($_REQUEST['start']), strtotime($_REQUEST['end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['start']);
|
|
|
unset($_REQUEST['end']);
|
|
|
} */
|
|
|
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
if($_REQUEST['game_name']=='全部'){
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}else{
|
|
|
$map['game_name']=$_REQUEST['game_name'];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
}
|
|
|
if(!empty($_REQUEST['server_id'])){
|
|
|
$map['server_name']=$_REQUEST['server_id'];
|
|
|
unset($_REQUEST['server_id']);
|
|
|
}
|
|
|
if(!empty($_REQUEST['pay_order_number'])){
|
|
|
$map['pay_order_number']=array('like','%'.$_REQUEST['pay_order_number'].'%');
|
|
|
unset($_REQUEST['pay_order_number']);
|
|
|
}
|
|
|
if(isset($_REQUEST['promote_name'])){
|
|
|
if($_REQUEST['promote_name']=='全部'){
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
}else if($_REQUEST['promote_name']=='自然注册'){
|
|
|
$map['promote_id']=array("lte",0);
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
}else{
|
|
|
$map['promote_id']=get_promote_id($_REQUEST['promote_name']);
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
}
|
|
|
}else{
|
|
|
$map['promote_id']=array("gt",0);
|
|
|
}
|
|
|
|
|
|
if(isset($_REQUEST['pay_way'])){
|
|
|
$map['pay_way']=$_REQUEST['pay_way'];
|
|
|
unset($_REQUEST['pay_way']);
|
|
|
}
|
|
|
if(isset($_REQUEST['user_account'])){
|
|
|
$map['user_account']=array('like','%'.$_REQUEST['user_account'].'%');
|
|
|
unset($_REQUEST['user_account']);
|
|
|
}
|
|
|
if(isset($_REQUEST['spend_ip'])){
|
|
|
$map['spend_ip']=array('like','%'.$_REQUEST['spend_ip'].'%');
|
|
|
unset($_REQUEST['spend_ip']);
|
|
|
}
|
|
|
if(isset($_REQUEST['promote_name'])){
|
|
|
$map['promote_account']=$_REQUEST['promote_name'];
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
}
|
|
|
if(isset($_REQUEST['time-start'])&&isset($_REQUEST['time-end'])){
|
|
|
$map['pay_time']=array('BETWEEN',array(strtotime($_REQUEST['time-start']),strtotime($_REQUEST['time-end'])+24*60*60-1));
|
|
|
unset($_REQUEST['time-start']);unset($_REQUEST['time_end']);
|
|
|
}elseif(isset($_REQUEST['time-start'])){
|
|
|
$map['pay_time'] = ['GT',strtotime(I('time-start'))];
|
|
|
unset($_REQUEST['time-start']);
|
|
|
}elseif(isset($_REQUEST['time-end'])){
|
|
|
$map['pay_time'] = ['LT',strtotime(I('time-end'))+86399];
|
|
|
unset($_REQUEST['time-end']);
|
|
|
}
|
|
|
if(isset($_REQUEST['start'])&&isset($_REQUEST['end'])){
|
|
|
$map['pay_time']=array('BETWEEN',array(strtotime($_REQUEST['start']),strtotime($_REQUEST['end'])+24*60*60-1));
|
|
|
unset($_REQUEST['start']);unset($_REQUEST['end']);
|
|
|
}elseif(isset($_REQUEST['start'])){
|
|
|
$map['pay_time'] = ['GT',strtotime(I('start'))];
|
|
|
unset($_REQUEST['start']);
|
|
|
}elseif(isset($_REQUEST['end'])){
|
|
|
$map['pay_time'] = ['LT',strtotime(I('end'))+86399];
|
|
|
unset($_REQUEST['end']);
|
|
|
}
|
|
|
if(!empty(I('parent_id'))){
|
|
|
$parent_id = I('parent_id');
|
|
|
$pro = M('promote','tab_')->field('id')->where("chain like '%/{$parent_id}/%'")->select();
|
|
|
$pro_ids = array_column($pro,'id');
|
|
|
$pro_ids[] = I('parent_id');
|
|
|
if (!empty($pro_ids)){
|
|
|
$map['promote_id'] = ['in',$pro_ids];
|
|
|
}else{
|
|
|
$map['promote_id'] = array('eq',999999999);
|
|
|
}
|
|
|
}
|
|
|
if(isset($_REQUEST['ba_id'])){
|
|
|
$all_promote_id = array_column(get_admin_promotes($_REQUEST['ba_id'],'ba_id'),'id');
|
|
|
if(empty($all_promote_id)){
|
|
|
$all_promote_id[]=-1;
|
|
|
}
|
|
|
|
|
|
$map['promote_id']=array($map['promote_id'],array('in',implode(',',$all_promote_id)),'and');
|
|
|
}
|
|
|
|
|
|
|
|
|
$model = array(
|
|
|
'm_name' => 'Spend',
|
|
|
'map' => $map,
|
|
|
'order' => 'id desc',
|
|
|
'title' => '渠道充值',
|
|
|
'template_list' => 'spend_list',
|
|
|
);
|
|
|
$map1 = $map;
|
|
|
$map1['pay_status'] = 1;
|
|
|
$total = M('Spend', 'tab_')->where($map1)->sum('pay_amount');
|
|
|
$total = sprintf("%.2f", $total);
|
|
|
$xlsCell = array(
|
|
|
array('pay_order_number', "订单号"),
|
|
|
array('pay_time', "充值时间", 'time_format', '*'),
|
|
|
array('promote_account', L('Subordinate_channel')),
|
|
|
array('parent_id', "上级推广员"),
|
|
|
array('user_account', "玩家账号"),
|
|
|
array('game_name', "游戏名称"),
|
|
|
array('server_name', L('Game_area_clothing')),
|
|
|
array('game_player_name', "角色名"),
|
|
|
array('spend_ip', "充值ip"),
|
|
|
array('pay_amount', "应付金额"),
|
|
|
array('cost', "实付金额"),
|
|
|
array('pay_way', "充值方式", 'get_info_status', '*', 18),
|
|
|
array('promote_id', '商务专员', 'get_promote_business_account', '*'),
|
|
|
array('is_check','对账状态','get_info_status','*','37')
|
|
|
//array("", "共计充值{$total}"),
|
|
|
);
|
|
|
$name = $model['m_name'];
|
|
|
$xlsData = $data = D($name)
|
|
|
->where($map)
|
|
|
->order($model['order'])
|
|
|
->group($model['group'])
|
|
|
->select();
|
|
|
foreach ($xlsData as $key => &$value) {
|
|
|
$xlsData[$key]['parent_id'] = get_top_promote($value['promote_id'], $value['parent_id']);
|
|
|
}
|
|
|
break;
|
|
|
case 5:
|
|
|
$map['promote_id'] = array("neq", 0);
|
|
|
if (isset($_REQUEST['user_account'])) {
|
|
|
$map['user_account'] = array('like', '%' . $_REQUEST['user_account'] . '%');
|
|
|
unset($_REQUEST['user_account']);
|
|
|
}
|
|
|
if (!empty($_REQUEST['pay_way'])) {
|
|
|
$map['pay_way'] = $_REQUEST['pay_way'];
|
|
|
unset($_REQUEST['pay_way']);
|
|
|
}
|
|
|
if (isset($_REQUEST['promote_name'])) {
|
|
|
if ($_REQUEST['promote_name'] == L('All')) {
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
} else if ($_REQUEST['promote_name'] == "官方渠道") {
|
|
|
$map['promote_id'] = array("elt", 0);
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
} else {
|
|
|
$map['promote_id'] = get_promote_id($_REQUEST['promote_name']);
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
unset($_REQUEST['promote_id']);
|
|
|
}
|
|
|
}
|
|
|
if (isset($_REQUEST['time-start']) && isset($_REQUEST['time-end'])) {
|
|
|
$map['create_time'] = array('BETWEEN', array(strtotime($_REQUEST['time-start']), strtotime($_REQUEST['time-end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['time-start']);
|
|
|
unset($_REQUEST['time_end']);
|
|
|
}
|
|
|
if (isset($_REQUEST['start']) && isset($_REQUEST['end'])) {
|
|
|
$map['create_time'] = array('BETWEEN', array(strtotime($_REQUEST['start']), strtotime($_REQUEST['end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['start']);
|
|
|
unset($_REQUEST['end']);
|
|
|
}
|
|
|
if (isset($_REQUEST['game_name'])) {
|
|
|
if ($_REQUEST['game_name'] == L('All')) {
|
|
|
unset($_REQUEST['game_name']);
|
|
|
} else {
|
|
|
$map['game_name'] = $_REQUEST['game_name'];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
}
|
|
|
$map1 = $map;
|
|
|
$map1['pay_status'] = 1;
|
|
|
$total = M('Agent', 'tab_')->where($map1)->sum('amount');
|
|
|
$total = sprintf("%.2f", $total);
|
|
|
$xlsName = $xlsName?$xlsName:"代充记录";
|
|
|
$xlsCell = array(
|
|
|
array('promote_account', L('Subordinate_channel')),
|
|
|
array('user_account', "玩家账号"),
|
|
|
array('game_name', "游戏名称"),
|
|
|
array('amount', '代充金额'),
|
|
|
array('zhekou', '折扣比例'),
|
|
|
array('real_amount', '实付金额'),
|
|
|
array('pay_status', '充值状态', 'get_info_status', '*', '7'),
|
|
|
array('pay_way', '支付方式'),
|
|
|
array('create_time', '代充时间', 'time_format', '*'),
|
|
|
array("", "共计代充{$total}"),
|
|
|
);
|
|
|
|
|
|
$xlsData = D('Agent')
|
|
|
->where($map)
|
|
|
->order('id DESC')
|
|
|
->select();
|
|
|
foreach ($xlsData as $key=>$v){
|
|
|
$xlsData[$key]['pay_way'] = get_info_status($v['pay_way'],21);
|
|
|
}
|
|
|
break;
|
|
|
case 6:
|
|
|
if (isset($_REQUEST['account'])) {
|
|
|
if ($_REQUEST['account'] == L('All')) {
|
|
|
unset($_REQUEST['account']);
|
|
|
}
|
|
|
$map['account'] = array('like', '%' . $_REQUEST['account'] . '%');
|
|
|
unset($_REQUEST['account']);
|
|
|
}
|
|
|
$map['pay_limit'] = array('gt', '0');
|
|
|
$model = D('Promote');
|
|
|
$xlsData = $model
|
|
|
->where($map)
|
|
|
->select();
|
|
|
$xlsName = $xlsName?$xlsName:"代充额度";
|
|
|
$xlsCell = array(
|
|
|
array('id', 'ID'),
|
|
|
array('account', '推广员账号'),
|
|
|
array('pay_limit_game', "游戏名称", 'get_game_limit_name', '*'),
|
|
|
array('pay_limit', '代充额度'),
|
|
|
array('set_pay_time', '更新时间', 'time_format', '*'),
|
|
|
);
|
|
|
break;
|
|
|
case 7:
|
|
|
|
|
|
if (isset($_REQUEST['user_account'])) {
|
|
|
$map['user_account'] = array('like', '%' . trim($_REQUEST['user_account']) . '%');
|
|
|
unset($_REQUEST['user_account']);
|
|
|
}
|
|
|
if (isset($_REQUEST['spend_ip'])) {
|
|
|
$map['spend_ip'] = array('like', '%' . trim($_REQUEST['spend_ip']) . '%');
|
|
|
unset($_REQUEST['spend_ip']);
|
|
|
}
|
|
|
if (isset($_REQUEST['time-start']) && isset($_REQUEST['time-end'])) {
|
|
|
$map['pay_time'] = array('BETWEEN', array(strtotime($_REQUEST['time-start']), strtotime($_REQUEST['time-end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['time-start']);
|
|
|
unset($_REQUEST['time-end']);
|
|
|
}
|
|
|
if (isset($_REQUEST['start']) && isset($_REQUEST['end'])) {
|
|
|
$map['pay_time'] = array('BETWEEN', array(strtotime($_REQUEST['start']), strtotime($_REQUEST['end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['start']);
|
|
|
unset($_REQUEST['end']);
|
|
|
}
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
if($_REQUEST['game_name']=='全部'){
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}else{
|
|
|
$map['tab_spend.game_id']= ['in', array_column(getGameByName($_REQUEST['game_name'], $_REQUEST['game_type']), 'id')];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
}
|
|
|
if(isset($_REQUEST['server_name'])){
|
|
|
$map['tab_spend.server_name']=$_REQUEST['server_name'];
|
|
|
unset($_REQUEST['server_name']);
|
|
|
}
|
|
|
if (isset($_REQUEST['pay_order_number'])) {
|
|
|
$map['pay_order_number'] = array('like', '%' . trim($_REQUEST['pay_order_number']) . '%');
|
|
|
unset($_REQUEST['pay_order_number']);
|
|
|
}
|
|
|
if (isset($_REQUEST['pay_status'])) {
|
|
|
$map['pay_status'] = $_REQUEST['pay_status'];
|
|
|
unset($_REQUEST['pay_status']);
|
|
|
}
|
|
|
if (isset($_REQUEST['pay_way'])) {
|
|
|
$map['pay_way'] = $_REQUEST['pay_way'];
|
|
|
unset($_REQUEST['pay_status']);
|
|
|
}
|
|
|
if (isset($_REQUEST['pay_game_status'])) {
|
|
|
$map['pay_game_status'] = $_REQUEST['pay_game_status'];
|
|
|
unset($_REQUEST['pay_game_status']);
|
|
|
}
|
|
|
if(isset($_REQUEST['promote_id'])) {
|
|
|
if ($_REQUEST['promote_id'] == 0) {
|
|
|
$map['promote_id'] = 0;
|
|
|
} else {
|
|
|
$map['_complex'] = ['tp.chain'=>['like', "%/{$_REQUEST['promote_id']}/%"], 'tp.id'=>$_REQUEST['promote_id'], '_logic' => 'or'];
|
|
|
}
|
|
|
$tab_promote_join = "left join tab_promote as tp on tp.id = tab_spend.promote_id";
|
|
|
//unset($_REQUEST['promote_id']);
|
|
|
} else {
|
|
|
$tab_promote_join = false;
|
|
|
}
|
|
|
$map1 = $map;
|
|
|
$map1['pay_status'] = 1;
|
|
|
$total = D('Spend')->where($map1)->join($tab_promote_join)->sum('pay_amount');
|
|
|
if (isset($map['pay_status']) && $map['pay_status'] == 0) {
|
|
|
$total = sprintf("%.2f", 0);
|
|
|
} else {
|
|
|
$total = sprintf("%.2f", $total);
|
|
|
}
|
|
|
$xlsData = D('Spend')
|
|
|
->field('pay_order_number,pay_time,user_account,game_name,promote_account,spend_ip,pay_amount,pay_amount,pay_status,pay_game_status,pay_way,server_name,game_player_name,cost')
|
|
|
->where($map)
|
|
|
->join($tab_promote_join)
|
|
|
->order('pay_time DESC')
|
|
|
->select();
|
|
|
$xlsCell = array(
|
|
|
array('pay_order_number', "订单号"),
|
|
|
array('pay_time', "充值时间", 'time_format', '*'),
|
|
|
array('user_account', "玩家账号"),
|
|
|
array('game_name', "游戏名称"),
|
|
|
array('promote_account', L('Subordinate_channel')),
|
|
|
array('spend_ip', "充值ip"),
|
|
|
array('server_name', "游戏区服"),
|
|
|
array('game_player_name', "角色名称"),
|
|
|
array('cost', "订单金额"),
|
|
|
array('pay_amount', "实付金额"),
|
|
|
array('pay_way', "充值方式", 'get_pay_way', '*'),
|
|
|
array('pay_status', L('Order_status'), 'get_info_status', '*', '9'),
|
|
|
array('pay_game_status', "游戏通知状态", 'get_info_status', '*', '14'),
|
|
|
array('', "消费"."{$total}")
|
|
|
);
|
|
|
break;
|
|
|
case 8:
|
|
|
$xlsName = $xlsName?$xlsName:L('Platform_currency_recharge');
|
|
|
if (isset($_REQUEST['user_account'])) {
|
|
|
$map['user_account'] = array('like', '%' . trim($_REQUEST['user_account']) . '%');
|
|
|
unset($_REQUEST['user_account']);
|
|
|
}
|
|
|
if (isset($_REQUEST['pay_order_number'])) {
|
|
|
$map['pay_order_number'] = array('like', '%' . trim($_REQUEST['pay_order_number']) . '%');
|
|
|
unset($_REQUEST['pay_order_number']);
|
|
|
}
|
|
|
if (isset($_REQUEST['pay_ip'])) {
|
|
|
$map['pay_ip'] = array('like', '%' . trim($_REQUEST['pay_ip']) . '%');
|
|
|
unset($_REQUEST['pay_ip']);
|
|
|
}
|
|
|
if (!isset($_REQUEST['promote_id'])) {
|
|
|
|
|
|
} else if (isset($_REQUEST['promote_id']) && $_REQUEST['promote_id'] == 0) {
|
|
|
$map['promote_id'] = array('elt', 0);
|
|
|
unset($_REQUEST['promote_id']);
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
} elseif (isset($_REQUEST['promote_name']) && $_REQUEST['promote_id'] == -1) {
|
|
|
$map['promote_id'] = get_promote_id($_REQUEST['promote_name']);
|
|
|
unset($_REQUEST['promote_id']);
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
} else {
|
|
|
$map['promote_id'] = $_REQUEST['promote_id'];
|
|
|
unset($_REQUEST['promote_id']);
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
}
|
|
|
if (isset($_REQUEST['time-start']) && isset($_REQUEST['time-end'])) {
|
|
|
$map['create_time'] = array('BETWEEN', array(strtotime($_REQUEST['time-start']), strtotime($_REQUEST['time-end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['time-start']);
|
|
|
unset($_REQUEST['time-end']);
|
|
|
}
|
|
|
if (isset($_REQUEST['start']) && isset($_REQUEST['end'])) {
|
|
|
$map['create_time'] = array('BETWEEN', array(strtotime($_REQUEST['start']), strtotime($_REQUEST['end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['start']);
|
|
|
unset($_REQUEST['end']);
|
|
|
}
|
|
|
if (isset($_REQUEST['pay_way'])) {
|
|
|
$map['pay_way'] = $_REQUEST['pay_way'];
|
|
|
unset($_REQUEST['pay_way']);
|
|
|
}
|
|
|
if (isset($_REQUEST['pay_status'])) {
|
|
|
$map['pay_status'] = $_REQUEST['pay_status'];
|
|
|
unset($_REQUEST['pay_status']);
|
|
|
}
|
|
|
$map1 = $map;
|
|
|
$map1['pay_status'] = 1;
|
|
|
$total = D('Deposit')->where($map1)->sum('pay_amount');
|
|
|
if (isset($map['pay_status']) && $map['pay_status'] == 0) {
|
|
|
$total = sprintf("%.2f", 0);
|
|
|
} else {
|
|
|
$total = sprintf("%.2f", $total);
|
|
|
}
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('pay_order_number', "订单号"),
|
|
|
array('user_account', "玩家账号"),
|
|
|
array('promote_account', L('Subordinate_channel')),
|
|
|
array('pay_amount', "充值平台币"),
|
|
|
array('pay_way', "充值方式", 'get_pay_way', '*'),
|
|
|
array('pay_ip', "充值ip"),
|
|
|
array('create_time', "充值时间", 'time_format'),
|
|
|
array('pay_status', L('Order_status'), 'get_info_status', '*', '9'),
|
|
|
array('', "共计充值{$total}"),
|
|
|
);
|
|
|
$xlsData = D('Deposit')
|
|
|
->where($map)
|
|
|
->order('id DESC')
|
|
|
->select();
|
|
|
break;
|
|
|
case 9:
|
|
|
$xlsName = $xlsName?$xlsName:"平台币发放";
|
|
|
if (isset($_REQUEST['user_account'])) {
|
|
|
$map['user_account'] = array('like', '%' . trim($_REQUEST['user_account']) . '%');
|
|
|
unset($_REQUEST['user_account']);
|
|
|
}
|
|
|
if (isset($_REQUEST['time-start']) && isset($_REQUEST['time-end'])) {
|
|
|
$map['create_time'] = array('BETWEEN', array(strtotime($_REQUEST['time-start']), strtotime($_REQUEST['time-end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['time-start']);
|
|
|
unset($_REQUEST['time-end']);
|
|
|
}
|
|
|
if (isset($_REQUEST['start']) && isset($_REQUEST['end'])) {
|
|
|
$map['create_time'] = array('BETWEEN', array(strtotime($_REQUEST['start']), strtotime($_REQUEST['end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['start']);
|
|
|
unset($_REQUEST['end']);
|
|
|
}
|
|
|
if (isset($_REQUEST['game_name'])) {
|
|
|
if ($_REQUEST['game_name'] == L('All')) {
|
|
|
unset($_REQUEST['game_name']);
|
|
|
} else {
|
|
|
$map['game_name'] = $_REQUEST['game_name'];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
}
|
|
|
if (isset($_REQUEST['op_account'])) {
|
|
|
if ($_REQUEST['op_account'] == L('All')) {
|
|
|
unset($_REQUEST['op_account']);
|
|
|
} else {
|
|
|
$map['op_account'] = $_REQUEST['op_account'];
|
|
|
unset($_REQUEST['op_account']);
|
|
|
}
|
|
|
}
|
|
|
$map1 = $map;
|
|
|
$map1['status'] = 1;
|
|
|
$total = M('provide', 'tab_')->where($map1)->sum('amount');
|
|
|
$total = sprintf("%.2f", $total);
|
|
|
$xlsData = M('provide', 'tab_')
|
|
|
->where($map)
|
|
|
->order('id DESC')
|
|
|
->select();
|
|
|
$xlsCell = array(
|
|
|
array('pay_order_number', "订单号"),
|
|
|
array('user_account', "玩家账号"),
|
|
|
array('game_name', "游戏名称"),
|
|
|
array('amount', "发放数量"),
|
|
|
array('status', "状态", 'get_info_status', '*', '15'),
|
|
|
array('op_account', L('Operator')),
|
|
|
array('create_time', "发放时间", 'time_format', '*'),
|
|
|
array('', "共计发放{$total}"),
|
|
|
);
|
|
|
break;
|
|
|
case 10:
|
|
|
$xlsName = $xlsName?$xlsName:"绑定平台币消费";
|
|
|
if (isset($_REQUEST['user_account'])) {
|
|
|
$map['user_account'] = array('like', '%' . trim($_REQUEST['user_account']) . '%');
|
|
|
unset($_REQUEST['user_account']);
|
|
|
}
|
|
|
if (isset($_REQUEST['pay_order_number'])) {
|
|
|
$map['pay_order_number'] = array('like', '%' . trim($_REQUEST['pay_order_number']) . '%');
|
|
|
unset($_REQUEST['pay_order_number']);
|
|
|
}
|
|
|
if (isset($_REQUEST['time-start']) && isset($_REQUEST['time-end'])) {
|
|
|
$map['pay_time'] = array('BETWEEN', array(strtotime($_REQUEST['time-start']), strtotime($_REQUEST['time-end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['time-start']);
|
|
|
unset($_REQUEST['time-end']);
|
|
|
}
|
|
|
if (isset($_REQUEST['start']) && isset($_REQUEST['end'])) {
|
|
|
$map['pay_time'] = array('BETWEEN', array(strtotime($_REQUEST['start']), strtotime($_REQUEST['end']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['start']);
|
|
|
unset($_REQUEST['end']);
|
|
|
}
|
|
|
if (isset($_REQUEST['game_name'])) {
|
|
|
if ($_REQUEST['game_name'] == L('All')) {
|
|
|
unset($_REQUEST['game_name']);
|
|
|
} else {
|
|
|
$map['game_name'] = $_REQUEST['game_name'];
|
|
|
}
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
if (isset($_REQUEST['server_name'])) {
|
|
|
if ($_REQUEST['server_name'] == L('All')) {
|
|
|
unset($_REQUEST['server_name']);
|
|
|
} else {
|
|
|
$map['server_name'] = $_REQUEST['server_name'];
|
|
|
unset($_REQUEST['server_name']);
|
|
|
}
|
|
|
}
|
|
|
$map1 = $map;
|
|
|
$map1['pay_status'] = 1;
|
|
|
$total = D('BindSpend')->where($map1)->sum('pay_amount');
|
|
|
$total = sprintf("%.2f", $total);
|
|
|
$xlsCell = array(
|
|
|
array('pay_order_number', "订单号"),
|
|
|
array('pay_time', "充值时间", 'time_format', '*'),
|
|
|
array('user_account', "玩家账号"),
|
|
|
array('game_name', "游戏名称"),
|
|
|
array('server_name', L('Game_area_clothing')),
|
|
|
array('game_player_name', "角色名"),
|
|
|
array('spend_ip', "充值ip"),
|
|
|
array('pay_amount', "充值金额"),
|
|
|
array('pay_status', L('Order_status'), 'get_info_status', '*', '9'),
|
|
|
array('pay_game_status', '游戏通知状态', 'get_info_status', '*', '14'),
|
|
|
array('', "共计使用{$total}")
|
|
|
);
|
|
|
$xlsData = D('BindSpend')
|
|
|
->where($map)
|
|
|
->order('pay_time DESC,id DESC')
|
|
|
->select();
|
|
|
break;
|
|
|
case 11:
|
|
|
$xlsName = $xlsName?$xlsName:"礼包领取";
|
|
|
$xlsCell = array(
|
|
|
array('user_account', "玩家账号"),
|
|
|
array('game_name', "游戏名称"),
|
|
|
array('gift_name', '礼包名称'),
|
|
|
array('novice', '礼包卡号'),
|
|
|
array('gift_id', '运营平台', 'get_operation_platform', '*', 'giftbag'),
|
|
|
array('create_time', '领取时间', 'time_format', '*'),
|
|
|
);
|
|
|
if (isset($_REQUEST['game_name'])) {
|
|
|
$extend['game_name'] = trim($_REQUEST['game_name']);
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
if (isset($_REQUEST['user_account'])) {
|
|
|
$extend['user_account'] = trim($_REQUEST['user_account']);
|
|
|
unset($_REQUEST['user_account']);
|
|
|
}
|
|
|
if (isset($_REQUEST['sdk_version'])) {
|
|
|
if ($_REQUEST['sdk_version'] == '') {
|
|
|
unset($_REQUEST['sdk_version']);
|
|
|
} else {
|
|
|
$map['sdk_version'] = $_REQUEST['sdk_version'];
|
|
|
$game_ids = M('game', 'tab_')->field('id')->where($map)->select();
|
|
|
$game_ids = array_column($game_ids, 'id');
|
|
|
$extend['sdk_version'] = ['in', $game_ids];
|
|
|
unset($_REQUEST['sdk_version']);
|
|
|
}
|
|
|
}
|
|
|
$xlsData = M('gift_record', 'tab_')
|
|
|
->where($extend)
|
|
|
->order("id DESC")
|
|
|
->select();
|
|
|
break;
|
|
|
case 12:
|
|
|
get_info_status();
|
|
|
$xlsName = $xlsName?$xlsName:"推广员提现";
|
|
|
$xlsCell = array(
|
|
|
array('settlement_number', '提现单号'),
|
|
|
array('sum_money', '提现金额'),
|
|
|
array('promote_id', '推广员账号'),
|
|
|
array('create_time', '申请时间', 'time_format', '*'),
|
|
|
array('status', '提现状态', 'get_info_status', '*', 19),
|
|
|
array('end_time', '审核时间', 'time_format', '*'),
|
|
|
array('withdraw_type', '打款方式' ,'get_info_status', '*', 36),
|
|
|
);
|
|
|
if (isset($_REQUEST['settlement_number'])) {
|
|
|
$map['settlement_number'] = $_REQUEST['settlement_number'];
|
|
|
}
|
|
|
if (isset($_REQUEST['status'])) {
|
|
|
$map['status'] = $_REQUEST['status'];
|
|
|
}
|
|
|
if (isset($_REQUEST['promote_account'])) {
|
|
|
if ($_REQUEST['promote_account'] == L('All')) {
|
|
|
unset($_REQUEST['promote_account']);
|
|
|
} else {
|
|
|
$map['promote_account'] = $_REQUEST['promote_account'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if ($_REQUEST['create_time'] == 2) {
|
|
|
$order = 'create_time desc';
|
|
|
} elseif ($_REQUEST['create_time'] == 1) {
|
|
|
$order = 'create_time asc';
|
|
|
}
|
|
|
if ($_REQUEST['sum_money'] == 2) {
|
|
|
$order = 'sum_money desc';
|
|
|
} elseif ($_REQUEST['sum_money'] == 1) {
|
|
|
$order = 'sum_money asc';
|
|
|
}
|
|
|
$model = array(
|
|
|
'm_name' => 'withdraw',
|
|
|
'order' => $order,
|
|
|
'title' => '推广员提现',
|
|
|
'template_list' => 'withdraw',
|
|
|
);
|
|
|
$name = $model['m_name'];
|
|
|
$xlsData = D($name)
|
|
|
->where($map)
|
|
|
->order($model['order'])
|
|
|
->select();
|
|
|
break;
|
|
|
|
|
|
case 14:
|
|
|
$xlsName = $xlsName?$xlsName:"游戏返利";
|
|
|
$xlsCell = array(
|
|
|
array('pay_order_number', "订单号"),
|
|
|
array('create_time', '返利时间', 'time_foramt', '*'),
|
|
|
array('user_id', "玩家账号", 'get_user_account', '*'),
|
|
|
array('promote_id', "所属推广员", 'get_promote_name', '*'),
|
|
|
array('game_name', "游戏名称"),
|
|
|
array('pay_amount', "充值金额"),
|
|
|
array('ratio', '返利比例', 'ratio_stytl', '*'),
|
|
|
array('ratio_amount', '返利绑币'),
|
|
|
);
|
|
|
if (isset($_REQUEST['user_account'])) {
|
|
|
$map['user_name'] = array('like', '%' . trim($_REQUEST['user_account']) . '%');
|
|
|
unset($_REQUEST['user_account']);
|
|
|
}
|
|
|
if (isset($_REQUEST['game_name'])) {
|
|
|
if ($_REQUEST['game_name'] == L('All')) {
|
|
|
unset($_REQUEST['game_name']);
|
|
|
} else {
|
|
|
$map['game_name'] = $_REQUEST['game_name'];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$xlsData = M('RebateList', 'tab_')
|
|
|
->where($map)
|
|
|
->order('id DESC')
|
|
|
->select();
|
|
|
break;
|
|
|
case 15:
|
|
|
$xlsName = $xlsName?$xlsName:"推广结算";
|
|
|
$xlsCell = array(
|
|
|
array('promote_account', '推广员账号'),
|
|
|
array('settlement_cycle', '结算周期',),
|
|
|
array('settlement_number', "结算单号"),
|
|
|
array('total_money', '总充值'),
|
|
|
array('total_number', '总注册'),
|
|
|
array('sum_money', '结算金额'),
|
|
|
array('bind_coin_status','结算范畴','get_bind_coin_status','*'),
|
|
|
array('create_time', '结算时间', 'time_format', '*'),
|
|
|
);
|
|
|
if (isset($_REQUEST['promote_account'])) {
|
|
|
$map['promote_account'] = array('like', '%' . trim($_REQUEST['promote_account']) . '%');
|
|
|
unset($_REQUEST['promote_account']);
|
|
|
}
|
|
|
if (isset($_REQUEST['game_name'])) {
|
|
|
if ($_REQUEST['game_name'] == L('All')) {
|
|
|
unset($_REQUEST['game_name']);
|
|
|
} else {
|
|
|
$map['game_name'] = $_REQUEST['game_name'];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$xlsData = M('settlement', 'tab_')
|
|
|
->field(array(
|
|
|
'settlement_number',
|
|
|
'starttime','endtime',
|
|
|
'promote_id','promote_account',
|
|
|
'sum(total_money) as total_money',
|
|
|
'sum(total_number) as total_number',
|
|
|
'sum(sum_money) as sum_money',
|
|
|
'bind_coin_status',
|
|
|
'create_time'))
|
|
|
->where($map)
|
|
|
->group('promote_id,starttime,endtime,create_time,bind_coin_status')
|
|
|
->order('create_time DESC')
|
|
|
->select();
|
|
|
foreach ($xlsData as $key=>$v){
|
|
|
$xlsData[$key]['settlement_cycle'] = date('Y-m-d',$v['starttime'])."-".$v['endtime'];
|
|
|
}
|
|
|
break;
|
|
|
case 16:
|
|
|
$xlsName = $xlsName?$xlsName:"给玩家发放";
|
|
|
$xlsCell = array(
|
|
|
array('pay_order_number', "订单号"),
|
|
|
array('user_account', "玩家账号"),
|
|
|
array('type', "发放类型"),
|
|
|
array('amount', "发放数量"),
|
|
|
array('status', "状态", 'get_info_status', '*', '15'),
|
|
|
array('op_account', '操作人员'),
|
|
|
array('create_time', '发放时间', 'time_format', '*'),
|
|
|
);
|
|
|
|
|
|
if (isset($_REQUEST['user_account'])) {
|
|
|
$map['user_account'] = array('like', '%' . trim($_REQUEST['user_account']) . '%');
|
|
|
}
|
|
|
if (isset($_REQUEST['op_id'])) {
|
|
|
$map['op_id'] = $_REQUEST['op_id'];
|
|
|
}
|
|
|
|
|
|
if (isset($_REQUEST['start']) && isset($_REQUEST['end'])) {
|
|
|
$map['create_time'] = array('BETWEEN', array(strtotime($_REQUEST['start']), strtotime($_REQUEST['end']) + 24 * 60 * 60 - 1));
|
|
|
}
|
|
|
|
|
|
$xlsData = M('provide_user', 'tab_')->field('*,"平台币" as type')
|
|
|
->where($map)
|
|
|
->order('id DESC')
|
|
|
->select();
|
|
|
break;
|
|
|
case 17:
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id', "ID"),
|
|
|
array('account', "开发者账号"),
|
|
|
array('nickname', "开发者名称"),
|
|
|
array('xingzhi', "账号性质"),
|
|
|
array('nature', '属性','get_developer_type', '*'),
|
|
|
array('link_man', '联系人'),
|
|
|
array('mobile_phone', '手机号码'),
|
|
|
array('create_time', '注册时间', 'time_format', '*'),
|
|
|
array('last_login_time', '最后登录时间'),
|
|
|
array('status', '状态','get_info_status', '*', '35'),
|
|
|
);
|
|
|
|
|
|
if(isset($_GET['account'])){
|
|
|
$map['account']=I('get.account');
|
|
|
}
|
|
|
if(isset($_GET['status'])){
|
|
|
$map['status']=I('get.status');
|
|
|
}
|
|
|
|
|
|
if (isset($_REQUEST['timestart']) && isset($_REQUEST['timeend'])) {
|
|
|
$map['create_time'] = array('BETWEEN', array(strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 24 * 60 * 60 - 1));
|
|
|
unset($_REQUEST['timestart']);
|
|
|
unset($_REQUEST['timeend']);
|
|
|
}
|
|
|
$xlsData = M('Developers', 'tab_')
|
|
|
->field('id,account,nickname,nature,link_man,mobile_phone,create_time,last_login_time,status,"开发者" as "xingzhi"')
|
|
|
->where($map)
|
|
|
->order('id DESC')
|
|
|
->select();
|
|
|
|
|
|
foreach($xlsData as $k => $v) {
|
|
|
$xlsData[$k]['last_login_time'] = $v['last_login_time']>0?date('Y-m-d H:i',$v['last_login_time']):'暂无登录';
|
|
|
$xlsData[$k]['mobile_phone'] = $v['mobile_phone']?$v['mobile_phone']:'空';
|
|
|
$xlsData[$k]['link_man'] = $v['link_man']?$v['link_man']:'空';
|
|
|
$xlsData[$k]['nickname'] = $v['nickname']?$v['nickname']:'空';
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
case 18:
|
|
|
$xlsName = $xlsName?$xlsName:"开发者结算";
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id', "ID"),
|
|
|
array('timestart', "月份"),
|
|
|
array('developers', "CP方"),
|
|
|
array('game_name', "游戏名称"),
|
|
|
array('total', '总充值'),
|
|
|
array('selle_ratio', '分成比例'),
|
|
|
array('ratio_money', '结算金额'),
|
|
|
array('selle_status', '状态'),
|
|
|
);
|
|
|
|
|
|
if($_REQUEST['sum_money']==2){
|
|
|
$order='pay_amount desc';
|
|
|
}else if($_REQUEST['sum_money']==1){
|
|
|
$order='pay_amount asc';
|
|
|
}
|
|
|
if(isset($_REQUEST['timestart'])&&$_REQUEST['timestart']!=''&&$_REQUEST['group']==1){
|
|
|
$starttime = strtotime($_REQUEST['timestart']);
|
|
|
$endtime = strtotime($_REQUEST['timeend'])+24*3600-1;
|
|
|
|
|
|
if(isset($_REQUEST['developers_id'])){
|
|
|
$map['g.developers'] = $_REQUEST['developers_id'];
|
|
|
}else{
|
|
|
$this->error('请选择开发者');
|
|
|
}
|
|
|
|
|
|
if(isset($_REQUEST['selle_status'])){
|
|
|
if($_REQUEST['selle_status']=="未结算"){
|
|
|
$map['s.selle_status']=0;
|
|
|
}else if($_REQUEST['selle_status']=="已结算"){
|
|
|
$map['s.selle_status']=1;
|
|
|
}
|
|
|
}
|
|
|
//判断是否结算绑币
|
|
|
if($_REQUEST['bind_coin'] == 0){
|
|
|
$map['s.pay_way'] = array('neq',-1);
|
|
|
}
|
|
|
$map['s.pay_status']=1;
|
|
|
$map['pay_time']=array('BETWEEN',array($starttime,$endtime));
|
|
|
$model = array(
|
|
|
'm_name' => 'Spend as s',
|
|
|
'order' => $order,
|
|
|
'title' => '渠道结算',
|
|
|
'group' => 'g.developers,g.id',
|
|
|
'fields' => 'sum(s.pay_amount) as total,s.selle_ratio,s.id,g.developers,s.selle_status,g.id as gid,g.game_name,s.pay_status,s.pay_amount',
|
|
|
'template_list' =>'cpsettlement',
|
|
|
);
|
|
|
|
|
|
|
|
|
$fields = $model['fields'];
|
|
|
//读取模型数据列表
|
|
|
$name = $model['m_name'];
|
|
|
// var_dump($fields);exit;
|
|
|
$new_model = M($name,'tab_');
|
|
|
$data = $new_model
|
|
|
->field($fields.",g.developers")
|
|
|
// 查询条件
|
|
|
->where($map)
|
|
|
/* 默认通过id逆序排列 */
|
|
|
->order($model['order'])
|
|
|
->join('tab_game as g on g.id=s.game_id','LEFT')
|
|
|
//根据字段分组
|
|
|
->group($model['group'])
|
|
|
/* 数据分页 */
|
|
|
->order($model['order'])
|
|
|
/* 执行查询 */
|
|
|
->select();
|
|
|
|
|
|
foreach ($data as $key => $value){
|
|
|
$data[$key]['timestart'] = I('timestart');
|
|
|
$data[$key]['developers'] = get_developers_account($data[$key]['developers'],'account');
|
|
|
$data[$key]['ratio_money'] = $data[$key]['total']*$data[$key]['selle_ratio']/100;
|
|
|
$data[$key]['selle_status'] = $data[$key]['selle_status'] == 0 ? "未结算" : "已结算";
|
|
|
}
|
|
|
|
|
|
$xlsData = $data;
|
|
|
}
|
|
|
|
|
|
|
|
|
break;
|
|
|
case 19:
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('developers', "开发者账号"),
|
|
|
array('settlement_number', "结算单号"),
|
|
|
array('starttime', "周期开始时间",'time_format','*'),
|
|
|
array('endtime', "周期结束时间",'time_format','*'),
|
|
|
array('total_money', '总充值(元)'),
|
|
|
array('sum_money', '结算金额(元)'),
|
|
|
array('bind_coin_status','结算范围','get_bind_coin_status','*'),
|
|
|
array('create_time', "结算时间",'time_format','*'),
|
|
|
);
|
|
|
if(isset($_REQUEST['timestart']) && $_REQUEST['timeend']!=''){
|
|
|
$starttime = strtotime($_REQUEST['timestart']);
|
|
|
$endtime = strtotime($_REQUEST['timeend'])+24*3600-1;
|
|
|
$map['starttime'] = array('egt',$starttime);
|
|
|
$map['endtime'] = array('elt',$endtime);
|
|
|
}elseif(isset($_REQUEST['timestart'])){
|
|
|
$starttime = strtotime($_REQUEST['timestart']);
|
|
|
$map['starttime'] = array('egt',$starttime);
|
|
|
}elseif(isset($_REQUEST['timeend'])){
|
|
|
$endtime = strtotime($_REQUEST['timeend'])+24*3600-1;
|
|
|
$map['endtime'] = array('elt',$endtime);
|
|
|
|
|
|
}
|
|
|
|
|
|
if(isset($_REQUEST['start']) && $_REQUEST['end']!=''){
|
|
|
$starttime = strtotime($_REQUEST['start']);
|
|
|
$endtime = strtotime($_REQUEST['end'])+24*3600-1;
|
|
|
$map['create_time'] = array('BETWEEN',array($starttime,$endtime));
|
|
|
}elseif(isset($_REQUEST['start'])){
|
|
|
$starttime = strtotime($_REQUEST['start']);
|
|
|
$map['create_time'] = array('BETWEEN',array($starttime,time()));
|
|
|
}elseif(isset($_REQUEST['end'])){
|
|
|
$endtime = strtotime($_REQUEST['end'])+24*3600-1;
|
|
|
$map['create_time'] = array('LT',$endtime);
|
|
|
}
|
|
|
|
|
|
if(isset($_REQUEST['developers_id'])){
|
|
|
$map['developers']=$_REQUEST['developers_id'];
|
|
|
}else{
|
|
|
$map['developers'] = array('neq',0);
|
|
|
}
|
|
|
$data = M('TotalSettlement','tab_')->where($map)->select();
|
|
|
foreach ($data as $key => $value){
|
|
|
$data[$key]['developers'] = get_developers_account($data[$key]['developers'],'account');
|
|
|
}
|
|
|
$xlsData = $data;
|
|
|
break;
|
|
|
case 20:
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('settlement_number', '提现单号'),
|
|
|
array('sum_money', '提现金额'),
|
|
|
array('developers', '开发者账号'),
|
|
|
array('create_time', '申请时间', 'time_format', '*'),
|
|
|
array('status', '提现状态', 'get_info_status', '*', 19),
|
|
|
array('end_time', '审核时间', 'time_format', '*'),
|
|
|
);
|
|
|
if(isset($_REQUEST['settlement_number'])){
|
|
|
$map['settlement_number']=array('like','%'.$_REQUEST['settlement_number'].'%');
|
|
|
}
|
|
|
if(isset($_REQUEST['status'])){
|
|
|
$map['status']=$_REQUEST['status'];
|
|
|
}
|
|
|
if(isset($_REQUEST['developers'])){
|
|
|
if($_REQUEST['developers']=='全部'){
|
|
|
unset($_REQUEST['developers']);
|
|
|
}else{
|
|
|
$map['developers'] = $_REQUEST['developers'];
|
|
|
}
|
|
|
}else{
|
|
|
$map['developers'] = array('neq',0);
|
|
|
|
|
|
}
|
|
|
if(isset($_REQUEST['timestart']) && isset($_REQUEST['timeend'])){
|
|
|
$starttime = strtotime($_REQUEST['timestart']);
|
|
|
$endtime = strtotime($_REQUEST['timeend'])+24*3600-1;
|
|
|
$map['audit_time'] = array('BETWEEN',array($starttime,$endtime));
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
}elseif(isset($_REQUEST['timestart'])){
|
|
|
$map['audit_time'] = ['GT',strtotime(I('timestart'))];
|
|
|
unset($_REQUEST['timestart']);
|
|
|
}elseif(isset($_REQUEST['timeend'])){
|
|
|
$map['audit_time'] = ['LT',strtotime(I('timeend'))+86399];
|
|
|
unset($_REQUEST['timeend']);
|
|
|
}
|
|
|
|
|
|
if($_REQUEST['create_time']==2){
|
|
|
$order='create_time desc';
|
|
|
}elseif($_REQUEST['create_time']==1){
|
|
|
$order='create_time asc';
|
|
|
}else{
|
|
|
$order='create_time desc';
|
|
|
}
|
|
|
if($_REQUEST['data_order']==3){
|
|
|
$order='sum_money desc';
|
|
|
}elseif($_REQUEST['data_order']==4){
|
|
|
$order='sum_money asc';
|
|
|
}
|
|
|
$xlsData = D('withdraw')
|
|
|
->where($map)
|
|
|
->order($order)
|
|
|
->select();
|
|
|
foreach ($xlsData as $key => $value){
|
|
|
$xlsData[$key]['developers'] = get_developers_account($value['developers'],'account');
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
$xlsName = $xlsCell = $xlsData = [];
|
|
|
|
|
|
}
|
|
|
//数据处理
|
|
|
foreach ($xlsData as $key => $val) {
|
|
|
foreach ($xlsCell as $k => $v) {
|
|
|
if (isset($v[2])) {
|
|
|
$ar_k = array_search('*', $v);
|
|
|
if ($ar_k !== false) {
|
|
|
$v[$ar_k] = $val[$v[0]];
|
|
|
}
|
|
|
$fun = $v[2];
|
|
|
$param = $v;
|
|
|
unset($param[0], $param[1], $param[2]);
|
|
|
$xlsData[$key][$v[0]] = call_user_func_array($fun, $param);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
public function userarpuExport($p=1){
|
|
|
$request=$_REQUEST;
|
|
|
$dataKey = array('time','register_num','act_user','keep_num','spend','spend_people','new_pop','spend_rate','ARPU','ARPPU','pop_num');
|
|
|
if(!empty($request['game_id'])){
|
|
|
array_splice($dataKey,1,0,"game_id");
|
|
|
}
|
|
|
if(!empty($request['promote_id'])){
|
|
|
$key = empty($request['game_id'])?1:2;
|
|
|
array_splice($dataKey,$key,0,"promote_id");
|
|
|
}
|
|
|
$xlsName = $_REQUEST['xlsname']?$_REQUEST['xlsname']:"ARPU分析";
|
|
|
foreach ($dataKey as $key => $value) {
|
|
|
switch ($value) {
|
|
|
case 'time':
|
|
|
$xlsCell[$key] = array('time', "日期");
|
|
|
break;
|
|
|
case 'game_id':
|
|
|
$xlsCell[$key] = array('game_id', "游戏名称");
|
|
|
break;
|
|
|
case 'promote_id':
|
|
|
$xlsCell[$key] = array('promote_id', "推广员账号");
|
|
|
break;
|
|
|
case 'register_num':
|
|
|
$xlsCell[$key] = array('register_num', '新增玩家', 'time_format', '*');
|
|
|
break;
|
|
|
case 'act_user':
|
|
|
$xlsCell[$key] = array('act_user', '活跃玩家', 'time_format', '*');
|
|
|
break;
|
|
|
case 'keep_num':
|
|
|
$xlsCell[$key] = array('keep_num', '1日留存');
|
|
|
break;
|
|
|
case 'spend':
|
|
|
$xlsCell[$key] = array('spend', "充值");
|
|
|
break;
|
|
|
case 'spend_people':
|
|
|
$xlsCell[$key] = array('spend_people', '付费玩家');
|
|
|
break;
|
|
|
case 'spend_people':
|
|
|
$xlsCell[$key] = array('spend_people', '付费玩家');
|
|
|
break;
|
|
|
case 'new_pop':
|
|
|
$xlsCell[$key] = array('new_pop', '新付费玩家');
|
|
|
break;
|
|
|
case 'spend_rate':
|
|
|
$xlsCell[$key] = array('spend_rate', '付费率');
|
|
|
break;
|
|
|
case 'ARPU':
|
|
|
$xlsCell[$key] = array('ARPU', 'ARPU');
|
|
|
break;
|
|
|
case 'ARPPU':
|
|
|
$xlsCell[$key] = array('ARPPU', 'ARPPU');
|
|
|
break;
|
|
|
case 'pop_num':
|
|
|
$xlsCell[$key] = array('pop_num', '累计付费玩家');
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据arraypage
|
|
|
$arraypage = $page ? $page : 1; //默认显示第一页数据
|
|
|
$row = 10;
|
|
|
$start = I('start');
|
|
|
$end = empty(I('end')) ? time_format(time(),'Y-m-d') : I('end');
|
|
|
$game_id = I('game_id');
|
|
|
$promote_id = I('promote_id');
|
|
|
$map_list = array();
|
|
|
if(I('game_id') !=0){
|
|
|
$this->assign('game_name',get_game_name(I('game_id')));
|
|
|
}
|
|
|
if(I('promote_id') !=0){
|
|
|
$this->assign('promote_name',get_promote_account(I('promote_id')));
|
|
|
}
|
|
|
if(I('game_id') != '') $map_list['game_id'] = I('game_id');
|
|
|
if(I('promote_id') != '') $map_list['promote_id'] = I('promote_id');
|
|
|
if(!empty($start)) {
|
|
|
//新增玩家
|
|
|
$data = A('Stat')->count_register($start, $end, $game_id, $promote_id);
|
|
|
foreach ($data as $key => $value) {
|
|
|
$time = $value['time'];
|
|
|
//活跃玩家
|
|
|
$data[$key]['act_user'] = A('Stat')->count_act_user($time,$game_id,$promote_id);
|
|
|
//1日留存
|
|
|
$map = $map_list;
|
|
|
if($map_list['promote_id']!=''){
|
|
|
$map['tab_user.promote_id']=$map_list['promote_id'];
|
|
|
}
|
|
|
unset($map['promote_id']);
|
|
|
$map["FROM_UNIXTIME(register_time,'%Y-%m-%d')"] = $time;
|
|
|
$login_time = date('Y-m-d', strtotime("+1 day",strtotime($time)));
|
|
|
$num = M('user','tab_')
|
|
|
->field('count(DISTINCT tab_user.id) as num')
|
|
|
->join("right join tab_user_login_record as ur on ur.user_id = tab_user.id and FROM_UNIXTIME(ur.login_time,'%Y-%m-%d') = '{$login_time}'")
|
|
|
->where($map)
|
|
|
->group('user_id')
|
|
|
->find();
|
|
|
$data[$key]['keep_num'] = (round($num['num']/$data[$key]['register_num'],4)*100) . '%';
|
|
|
//充值
|
|
|
$map = $map_list;
|
|
|
empty($game_name ) || $map['game_name'] = array('like','%'.$game_name.'%');
|
|
|
empty($promote_id) || $map['promote_id'] = $promote_id;
|
|
|
$map['pay_status'] = 1;
|
|
|
$map["FROM_UNIXTIME(pay_time,'%Y-%m-%d')"] = $time;
|
|
|
$spend = M('spend','tab_')->field("IFNULL(sum(pay_amount),0) as money,IFNULL(count(distinct user_id),0) as people")->where($map)->find();
|
|
|
$data[$key]['spend'] = $spend['money'];
|
|
|
//付费玩家数
|
|
|
$data[$key]['spend_people'] = $spend['people'];
|
|
|
//新付费玩家
|
|
|
$map = $map_list;
|
|
|
$map['pay_status'] = 1;
|
|
|
$sql = M('spend','tab_')->field("user_id,min(pay_time) as time")->group('user_id')->where($map)->select(false);
|
|
|
$sql = "select IFNULL(count(user_id),0) as num from ({$sql}) as t WHERE FROM_UNIXTIME(t.time,'%Y-%m-%d') = '{$time}'";
|
|
|
$query = M()->query($sql);
|
|
|
$data[$key]['new_pop'] = $query[0]['num'];
|
|
|
//付费率
|
|
|
$data[$key]['spend_rate'] = (round($data[$key]['spend_people']/$data[$key]['act_user'],4)*100) . '%';
|
|
|
//ARPU
|
|
|
$data[$key]['ARPU'] = round($data[$key]['spend']/$data[$key]['act_user'],2);
|
|
|
//ARPPU
|
|
|
$data[$key]['ARPPU'] = round($data[$key]['spend']/$data[$key]['spend_people'],2);
|
|
|
|
|
|
//累计付费玩家
|
|
|
$map = $map_list;
|
|
|
$map['pay_status'] = 1;
|
|
|
$map["FROM_UNIXTIME(pay_time,'%Y-%m-%d')"] = array('elt',$time);
|
|
|
$pop_num = M('spend','tab_')->field('count(distinct user_id) as num')->where($map)->find();
|
|
|
$data[$key]['pop_num'] = $pop_num['num'];
|
|
|
}
|
|
|
}else{
|
|
|
unset($_REQUEST['data_order']);
|
|
|
if(count(I('get.'))!=0){
|
|
|
$this->error('时间选择错误,请重新选择!');
|
|
|
}
|
|
|
}
|
|
|
if($request['data_order']!=''){
|
|
|
$data_order=reset(explode(',',$request['data_order']));
|
|
|
$data_order_type=end(explode(',',$request['data_order']));
|
|
|
$this->assign('userarpu_order',$data_order);
|
|
|
$this->assign('userarpu_order_type',$data_order_type);
|
|
|
}
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order,SORT_STRING);
|
|
|
$size=10;//每页显示的记录数
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
foreach ($data as $key => $value) {
|
|
|
$data[$key]['game_id'] = get_game_name($request['game_id']);
|
|
|
$data[$key]['promote_id'] = get_promote_account($request['promote_id']);
|
|
|
}
|
|
|
$xlsData = $data;
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 统计-平台统计
|
|
|
*
|
|
|
* @param int $type 1: 游戏充值统计,2:注册方式统计,3:充值方式统计,其他:游戏注册统计
|
|
|
* @param int $p
|
|
|
*
|
|
|
* @author: 鹿文学[lwx]<fyj301415926@126.com>
|
|
|
* @since: 2019\5\7 0007 10:52
|
|
|
*/
|
|
|
public function platform_statistics($type=0, $p=1) {
|
|
|
switch($type) {
|
|
|
case 1:
|
|
|
$this->gamepay_statistics_export($p);
|
|
|
break;
|
|
|
case 2:
|
|
|
$this->resway_statistics_export($p);
|
|
|
break;
|
|
|
case 3:
|
|
|
$this->payway_statistics_export($p);
|
|
|
break;
|
|
|
default:
|
|
|
$this->game_statistics_export($p);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private function game_statistics_export($p = 1){
|
|
|
$xlsName = $_REQUEST['xlsname']?$_REQUEST['xlsname']:"游戏注册统计";
|
|
|
$xlsCell = array(
|
|
|
array('fgame_name', "游戏名称"),
|
|
|
array('count', "累计注册"),
|
|
|
array('rand', "排行榜"),
|
|
|
array('today', "今日注册"),
|
|
|
array('week', "本周注册"),
|
|
|
array('mounth', "本月注册"),
|
|
|
);
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
$arraypage=$page;
|
|
|
$row = 10;
|
|
|
$user=M('User','tab_');
|
|
|
$map['fgame_id']=array('gt',0);$map['puid'] = 0;
|
|
|
if(isset($_REQUEST['timestart'])&&isset($_REQUEST['timeend'])){
|
|
|
$map['register_time'] =array('BETWEEN',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+24*60*60-1));
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
}
|
|
|
if(isset($_REQUEST['start'])&&isset($_REQUEST['end'])){
|
|
|
$map['register_time'] =array('BETWEEN',array(strtotime($_REQUEST['start']),strtotime($_REQUEST['end'])+24*60*60-1));
|
|
|
unset($_REQUEST['start']);unset($_REQUEST['end']);
|
|
|
}
|
|
|
if(isset($_REQUEST['game_name'])&&$_REQUEST['game_name']!=''){
|
|
|
$map['fgame_name'] =$_REQUEST['game_name'];
|
|
|
unset($_REQUEST['fgame_name']);
|
|
|
}
|
|
|
$today=total(1);
|
|
|
$week=total(2);
|
|
|
$mounth=total(3);
|
|
|
$data=$user
|
|
|
->field('fgame_name,fgame_id,date_format(FROM_UNIXTIME( register_time),"%Y-%m-%d") AS time, count(id) as count,
|
|
|
count(IF(register_time '.$today.',1,null)) as today,
|
|
|
count(IF(register_time '.$week.',1,null)) as week,
|
|
|
count(IF(register_time '.$mounth.',1,null)) as mounth')
|
|
|
->where($map)
|
|
|
->group('fgame_id')
|
|
|
->order('count desc')
|
|
|
->select();
|
|
|
$count=count($data);
|
|
|
foreach ($data as $key => $value) {
|
|
|
static $i=0;
|
|
|
$i++;
|
|
|
$data[$key]['rand']=$i;
|
|
|
}
|
|
|
$total=A('Platform')->data_total($data);
|
|
|
if($_REQUEST['data_order']!=''){
|
|
|
$data_order=reset(explode(',',$_REQUEST['data_order']));
|
|
|
$data_order_type=end(explode(',',$_REQUEST['data_order']));
|
|
|
$this->assign('userarpu_order',$data_order);
|
|
|
$this->assign('userarpu_order_type',$data_order_type);
|
|
|
}
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order);
|
|
|
$size=$row;//每页显示的记录数
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
$length = count($data);
|
|
|
$data[$length] = array(
|
|
|
'fgame_name'=>'汇总',
|
|
|
'count'=>$total['sum_count'],
|
|
|
'rand'=>'---',
|
|
|
'today'=>$total['sum_today'],
|
|
|
'week'=>$total['sum_week'],
|
|
|
'mounth'=>$total['sum_mounth']
|
|
|
);
|
|
|
$xlsData = $data;
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
private function gamepay_statistics_export($p=1){
|
|
|
$xlsName = $_REQUEST['xlsname']?$_REQUEST['xlsname']:"游戏充值统计";
|
|
|
$xlsCell = array(
|
|
|
array('game_name', "游戏名称"),
|
|
|
array('count', "累计充值"),
|
|
|
array('rand', "排行榜"),
|
|
|
array('today', "今日充值"),
|
|
|
array('week', "本周充值"),
|
|
|
array('mounth', "本月充值"),
|
|
|
);
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
$arraypage=$page;
|
|
|
$row = 10;
|
|
|
$spend=M('Spend','tab_');
|
|
|
$deposit = M('Deposit',"tab_");
|
|
|
$map['game_id']=array('gt',0);
|
|
|
if(isset($_REQUEST['timestart'])&&isset($_REQUEST['timeend'])){
|
|
|
$map['pay_time'] =array('BETWEEN',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+24*60*60-1));
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
}
|
|
|
if(isset($_REQUEST['start'])&&isset($_REQUEST['end'])){
|
|
|
$map['pay_time'] =array('BETWEEN',array(strtotime($_REQUEST['start']),strtotime($_REQUEST['end'])+24*60*60-1));
|
|
|
unset($_REQUEST['start']);unset($_REQUEST['end']);
|
|
|
}
|
|
|
if(isset($_REQUEST['game_name'])&&$_REQUEST['game_name']!=''){
|
|
|
$map['game_id'] =$_REQUEST['game_name'];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
$map['pay_status']=1;
|
|
|
$today=total(1);
|
|
|
$week=total(2);
|
|
|
$mounth=total(3);
|
|
|
$data=$spend
|
|
|
->field('game_name,game_id,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count,
|
|
|
sum(IF(pay_time '.$today.',pay_amount,0)) as today,
|
|
|
sum(IF(pay_time '.$week.',pay_amount,0)) as week,
|
|
|
sum(IF(pay_time '.$mounth.',pay_amount,0)) as mounth')
|
|
|
->where($map)
|
|
|
->group('game_id')
|
|
|
->order('count desc')
|
|
|
->select();
|
|
|
$count=count($data);
|
|
|
foreach ($data as $key => $value) {
|
|
|
static $i=0;
|
|
|
$i++;
|
|
|
$data[$key]['rand']=$i;
|
|
|
}
|
|
|
$total=A('Platform')->data_total($data);
|
|
|
$this->assign('total',$total);
|
|
|
if($_REQUEST['data_order']!=''){
|
|
|
$data_order=reset(explode(',',$_REQUEST['data_order']));
|
|
|
$data_order_type=end(explode(',',$_REQUEST['data_order']));
|
|
|
$this->assign('userarpu_order',$data_order);
|
|
|
$this->assign('userarpu_order_type',$data_order_type);
|
|
|
}
|
|
|
if($count > $row){
|
|
|
$page = new \Think\Page($count, $row);
|
|
|
$page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
|
|
|
$this->assign('_page', $page->show());
|
|
|
}
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order);
|
|
|
$size=$row;//每页显示的记录数
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
$length = count($data);
|
|
|
$data[$length] = array(
|
|
|
'game_name'=>'汇总',
|
|
|
'count'=>$total['sum_count'],
|
|
|
'rand'=>'---',
|
|
|
'today'=>$total['sum_today'],
|
|
|
'week'=>$total['sum_week'],
|
|
|
'mounth'=>$total['sum_mounth']
|
|
|
);
|
|
|
$xlsData = $data;
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
private function resway_statistics_export($p=0){
|
|
|
$xlsName = $_REQUEST['xlsname']?$_REQUEST['xlsname']:"注册方式统计";
|
|
|
$xlsCell = array(
|
|
|
array('register_way', "注册方式"),
|
|
|
array('count', "累计注册"),
|
|
|
array('rand', "排行榜"),
|
|
|
array('today', "今日注册"),
|
|
|
array('week', "本周注册"),
|
|
|
array('mounth', "本月注册"),
|
|
|
);
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
$arraypage=$page;
|
|
|
$row = 10;
|
|
|
$user=M('User','tab_');$map['puid'] = 0;
|
|
|
if(isset($_REQUEST['timestart'])&&isset($_REQUEST['timeend'])){
|
|
|
$map['register_time'] =array('BETWEEN',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+24*60*60-1));
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
}
|
|
|
if(isset($_REQUEST['start'])&&isset($_REQUEST['end'])){
|
|
|
$map['register_time'] =array('BETWEEN',array(strtotime($_REQUEST['start']),strtotime($_REQUEST['end'])+24*60*60-1));
|
|
|
unset($_REQUEST['start']);unset($_REQUEST['end']);
|
|
|
}
|
|
|
if(isset($_REQUEST['register_way'])&&$_REQUEST['register_way']!=''){
|
|
|
$map['register_way'] =$_REQUEST['register_way'];
|
|
|
unset($_REQUEST['register_way']);
|
|
|
}
|
|
|
$today=total(1);
|
|
|
$week=total(2);
|
|
|
$mounth=total(3);
|
|
|
$data=$user
|
|
|
->field('register_way,date_format(FROM_UNIXTIME(register_time),"%Y-%m-%d") AS time, count(id) as count,
|
|
|
count(IF(register_time '.$today.',1,null)) as today,
|
|
|
count(IF(register_time '.$week.',1,null)) as week,
|
|
|
count(IF(register_time '.$mounth.',1,null)) as mounth')
|
|
|
->where($map)
|
|
|
->group('register_way')
|
|
|
->order('count desc')
|
|
|
->select();
|
|
|
$count=count($data);
|
|
|
foreach ($data as $key => $value) {
|
|
|
static $i=0;
|
|
|
$i++;
|
|
|
$data[$key]['rand']=$i;
|
|
|
}
|
|
|
$total=A('Platform')->data_total($data);
|
|
|
if($_REQUEST['data_order']!=''){
|
|
|
$data_order=reset(explode(',',$_REQUEST['data_order']));
|
|
|
$data_order_type=end(explode(',',$_REQUEST['data_order']));
|
|
|
$this->assign('userarpu_order',$data_order);
|
|
|
$this->assign('userarpu_order_type',$data_order_type);
|
|
|
}
|
|
|
if($count > $row){
|
|
|
$page = new \Think\Page($count, $row);
|
|
|
$page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
|
|
|
$this->assign('_page', $page->show());
|
|
|
}
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order);
|
|
|
$size=$row;//每页显示的记录数
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
foreach ($data as $key => $value) {
|
|
|
$data[$key]['register_way'] = get_register_way($data[$key]['register_way']);
|
|
|
}
|
|
|
$length = count($data);
|
|
|
$data[$length] = array(
|
|
|
'register_way'=>'汇总',
|
|
|
'count'=>$total['sum_count'],
|
|
|
'rand'=>'---',
|
|
|
'today'=>$total['sum_today'],
|
|
|
'week'=>$total['sum_week'],
|
|
|
'mounth'=>$total['sum_mounth']
|
|
|
);
|
|
|
$xlsData = $data;
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
private function payway_statistics_export($p=0){
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
$arraypage=$page;
|
|
|
$row = 10;
|
|
|
$deposit = M('Deposit',"tab_");
|
|
|
$user=M('User','tab_');
|
|
|
$spend=M('Spend','tab_');
|
|
|
if(isset($_REQUEST['timestart'])&&isset($_REQUEST['timeend'])){
|
|
|
$map['pay_time'] =array('BETWEEN',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+24*60*60-1));
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
}
|
|
|
if(isset($_REQUEST['start'])&&isset($_REQUEST['end'])){
|
|
|
$map['pay_time'] =array('BETWEEN',array(strtotime($_REQUEST['start']),strtotime($_REQUEST['end'])+24*60*60-1));
|
|
|
unset($_REQUEST['start']);unset($_REQUEST['end']);
|
|
|
}
|
|
|
if(isset($_REQUEST['pay_way'])&&$_REQUEST['pay_way']!=''){
|
|
|
$map['pay_way'] = array('in',$_REQUEST['pay_way']) ;
|
|
|
unset($_REQUEST['pay_way']);
|
|
|
}
|
|
|
$map['pay_status']=1;
|
|
|
$today=total(1);
|
|
|
$week=total(2);
|
|
|
$mounth=total(3);
|
|
|
$data=$spend
|
|
|
->field('pay_way,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count,
|
|
|
sum(IF(pay_time '.$today.',pay_amount,0)) as today,
|
|
|
sum(IF(pay_time '.$week.',pay_amount,0)) as week,
|
|
|
sum(IF(pay_time '.$mounth.',pay_amount,0)) as mounth')
|
|
|
->where($map)
|
|
|
->group('pay_way')
|
|
|
->order('count desc')
|
|
|
->select();
|
|
|
$count=count($data);
|
|
|
foreach ($data as $key => $value) {
|
|
|
static $i=0;
|
|
|
$i++;
|
|
|
$data[$key]['rand']=$i;
|
|
|
}
|
|
|
$total = A('Platform')->data_total($data);
|
|
|
$this->assign('total',$total);
|
|
|
if($_REQUEST['data_order']!=''){
|
|
|
$data_order=reset(explode(',',$_REQUEST['data_order']));
|
|
|
$data_order_type=end(explode(',',$_REQUEST['data_order']));
|
|
|
$this->assign('userarpu_order',$data_order);
|
|
|
$this->assign('userarpu_order_type',$data_order_type);
|
|
|
}
|
|
|
if($count > $row){
|
|
|
$page = new \Think\Page($count, $row);
|
|
|
$page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
|
|
|
$this->assign('_page', $page->show());
|
|
|
}
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order);
|
|
|
$size=$row;//每页显示的记录数
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
$xlsName = $_REQUEST['xlsname']?$_REQUEST['xlsname']:'充值方式统计';
|
|
|
$xlsCell = array(
|
|
|
array('pay_way', "充值方式"),
|
|
|
array('count' , "累计充值"),
|
|
|
array('rand' , "排行榜"),
|
|
|
array('today' , "今日充值"),
|
|
|
array('week' , "本周充值"),
|
|
|
array('mounth' , "本月充值"),
|
|
|
);
|
|
|
foreach ($data as $key => $value) {
|
|
|
$data[$key]['pay_way'] = get_pay_way($data[$key]['pay_way']);
|
|
|
}
|
|
|
$length = count($data);
|
|
|
$data[$length] = array(
|
|
|
'pay_way'=>'汇总',
|
|
|
'count'=>$total['sum_count'],
|
|
|
'rand'=>'---',
|
|
|
'today'=>$total['sum_today'],
|
|
|
'week'=>$total['sum_week'],
|
|
|
'mounth'=>$total['sum_mounth']
|
|
|
);
|
|
|
$xlsData = $data;
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 统计-推广员统计
|
|
|
*
|
|
|
* @param int $type 1 推广员充值统计,其他 推广员注册统计
|
|
|
* @param int $p
|
|
|
*
|
|
|
* @author: 鹿文学[lwx]<fyj301415926@126.com>
|
|
|
* @since: 2019\5\7 0007 10:48
|
|
|
*/
|
|
|
public function promote_statistics($type=0,$p=0) {
|
|
|
if($type == 1) {
|
|
|
$this->promotepay_statistics_export($p);
|
|
|
} else {
|
|
|
$this->promote_statistics_export($p);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private function promote_statistics_export($p=0){
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
$arraypage=$page;
|
|
|
$row = 10;
|
|
|
$user=M('User','tab_');
|
|
|
if(isset($_REQUEST['timestart'])&&isset($_REQUEST['timeend'])){
|
|
|
$map['register_time'] =array('BETWEEN',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+24*60*60-1));
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
}
|
|
|
if(isset($_REQUEST['start'])&&isset($_REQUEST['end'])){
|
|
|
$map['register_time'] =array('BETWEEN',array(strtotime($_REQUEST['start']),strtotime($_REQUEST['end'])+24*60*60-1));
|
|
|
unset($_REQUEST['start']);unset($_REQUEST['end']);
|
|
|
}
|
|
|
$play_info_map = '';
|
|
|
|
|
|
if (isset($_REQUEST['game_name'])) {
|
|
|
$map['fgame_name'] = $_REQUEST['game_name'];
|
|
|
$play_info_map .= " and upi.game_name = '{$_REQUEST['game_name']}' ";
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
if (isset($_REQUEST['server_id'])) {
|
|
|
$play_info_map .= " and upi.server_name = '{$_REQUEST['server_id']}' ";
|
|
|
}
|
|
|
$today=total(1);
|
|
|
$week=total(2);
|
|
|
$mounth=total(3);
|
|
|
if (isset($_REQUEST['promote_id'])) {
|
|
|
$map['tp1.id'] = $_REQUEST['promote_id'];
|
|
|
} else {
|
|
|
$map['tp1.chain'] = '/';
|
|
|
}
|
|
|
|
|
|
$data = M('promote', 'tab_')->alias('tp1')->field('tp1.account as promote_account,tp1.id as promote_id, date_format(FROM_UNIXTIME(register_time),"%Y-%m-%d") AS time, count(u.id) as count,
|
|
|
count(IF(register_time ' . $today . ',1,null)) as today,
|
|
|
count(IF(register_time ' . $week . ',1,null)) as week,
|
|
|
count(IF(register_time ' . $mounth . ',1,null)) as mounth')
|
|
|
->join("tab_promote AS tp2 ON tp2.`chain` LIKE CONCAT('%/', tp1.id, '/%')", 'left')
|
|
|
->join("tab_user as u on tp2.id = u.promote_id", 'left')
|
|
|
->join($play_info_map ? "tab_user_play_info as upi on upi.user_id = u.id " . $play_info_map : false)
|
|
|
->where($map)
|
|
|
->group('tp1.id')
|
|
|
->order('count desc, register_time')
|
|
|
->select();
|
|
|
$count=count($data);
|
|
|
foreach ($data as $key => $value) {
|
|
|
static $i=0;
|
|
|
$i++;
|
|
|
$data[$key]['rand']=$i;
|
|
|
}
|
|
|
foreach ($data as $key => $value) {
|
|
|
if($data[$key]['promote_id']==0){
|
|
|
unset($data[$key]);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$total=A('Platform')->data_total($data);
|
|
|
if($_REQUEST['data_order']!=''){
|
|
|
$data_order=reset(explode(',',$_REQUEST['data_order']));
|
|
|
$data_order_type=end(explode(',',$_REQUEST['data_order']));
|
|
|
$this->assign('userarpu_order',$data_order);
|
|
|
$this->assign('userarpu_order_type',$data_order_type);
|
|
|
}
|
|
|
if($count > $row){
|
|
|
$page = new \Think\Page($count, $row);
|
|
|
$page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
|
|
|
$this->assign('_page', $page->show());
|
|
|
}
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order);
|
|
|
$size=$row;//每页显示的记录数
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
$xlsName = $_REQUEST['xlsname']?$_REQUEST['xlsname']:'推广员注册统计';
|
|
|
$xlsCell = array(
|
|
|
array('promote_id', "推广员账号"),
|
|
|
array('count' , "累计注册"),
|
|
|
array('rand' , "排行榜"),
|
|
|
array('today' , "今日注册"),
|
|
|
array('week' , "本周注册"),
|
|
|
array('mounth' , "本月注册"),
|
|
|
);
|
|
|
foreach ($data as $key => $value) {
|
|
|
$data[$key]['promote_id'] = get_promote_account($data[$key]['promote_id']);
|
|
|
}
|
|
|
$length = count($data);
|
|
|
$data[$length] = array(
|
|
|
'promote_id'=>'汇总',
|
|
|
'count'=>$total['sum_count'],
|
|
|
'rand'=>'---',
|
|
|
'today'=>$total['sum_today'],
|
|
|
'week'=>$total['sum_week'],
|
|
|
'mounth'=>$total['sum_mounth']
|
|
|
);
|
|
|
$xlsData = $data;
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
private function promotepay_statistics_export($p=0){
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
$arraypage=$page;
|
|
|
$row = 10;
|
|
|
$map1['promote_id'] = $map['promote_id'] = array('egt', 0);
|
|
|
$spend=M('Spend','tab_');
|
|
|
if(isset($_REQUEST['timestart'])&&isset($_REQUEST['timeend'])){
|
|
|
$map['pay_time'] =array('BETWEEN',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+24*60*60-1));
|
|
|
unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
|
|
|
}
|
|
|
if(isset($_REQUEST['start'])&&isset($_REQUEST['end'])){
|
|
|
$map['pay_time'] =array('BETWEEN',array(strtotime($_REQUEST['start']),strtotime($_REQUEST['end'])+24*60*60-1));
|
|
|
unset($_REQUEST['start']);unset($_REQUEST['end']);
|
|
|
}
|
|
|
// if(isset($_REQUEST['promote_id'])){
|
|
|
// $map['promote_id'] =$_REQUEST['promote_id'];
|
|
|
// unset($_REQUEST['promote_id']);
|
|
|
// }
|
|
|
$map1['pay_status'] = $map['pay_status']=1;
|
|
|
$map1['pay_way'] = $map['pay_way'] = array('gt', 0);
|
|
|
$today=total(1);
|
|
|
$week=total(2);
|
|
|
$mounth=total(3);
|
|
|
$map1['pay_way'] = $map['pay_way'] = array('gt',0);
|
|
|
$bindrecharge_data = M('bind_recharge','tab_')
|
|
|
->field('max(id) as id,promote_account,promote_id,create_time as ordertime,date_format(FROM_UNIXTIME(create_time),"%Y-%m-%d") AS time, sum(real_amount) as count,
|
|
|
sum(IF(create_time '.$today.',real_amount,0)) as today,
|
|
|
sum(IF(create_time '.$week.',real_amount,0)) as week,
|
|
|
sum(IF(create_time '.$mounth.',real_amount,0)) as mounth')
|
|
|
->where($map1)
|
|
|
->group('promote_id')
|
|
|
->select(false);
|
|
|
|
|
|
$deposit_data = M('deposit','tab_')
|
|
|
->field('max(id) as id,promote_account,promote_id,create_time as ordertime,date_format(FROM_UNIXTIME(create_time),"%Y-%m-%d") AS time, sum(pay_amount) as count,
|
|
|
sum(IF(create_time '.$today.',pay_amount,0)) as today,
|
|
|
sum(IF(create_time '.$week.',pay_amount,0)) as week,
|
|
|
sum(IF(create_time '.$mounth.',pay_amount,0)) as mounth')
|
|
|
->where($map1)
|
|
|
->group('promote_id')
|
|
|
->select(false);
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
$map['game_name'] = $_REQUEST['game_name'];
|
|
|
if(isset($_REQUEST['server_id'])){
|
|
|
$map['server_name'] = $_REQUEST['server_id'];
|
|
|
unset($_REQUEST['server_id']);
|
|
|
}
|
|
|
$data=$spend
|
|
|
->field('max(id) as id,promote_account,promote_id,pay_time as ordertime,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count,
|
|
|
sum(IF(pay_time '.$today.',pay_amount,0)) as today,
|
|
|
sum(IF(pay_time '.$week.',pay_amount,0)) as week,
|
|
|
sum(IF(pay_time '.$mounth.',pay_amount,0)) as mounth')
|
|
|
->where($map)
|
|
|
->group('promote_id')
|
|
|
->select(false);
|
|
|
}else{
|
|
|
$data=$spend
|
|
|
->field('max(id) as id,promote_account,promote_id,pay_time as ordertime,date_format(FROM_UNIXTIME(pay_time),"%Y-%m-%d") AS time, sum(pay_amount) as count,
|
|
|
sum(IF(pay_time '.$today.',pay_amount,0)) as today,
|
|
|
sum(IF(pay_time '.$week.',pay_amount,0)) as week,
|
|
|
sum(IF(pay_time '.$mounth.',pay_amount,0)) as mounth')
|
|
|
->where($map)
|
|
|
->union(' ('.$bindrecharge_data.') ')
|
|
|
->union(' ('.$deposit_data.') ')
|
|
|
->group('promote_id')
|
|
|
->select(false);
|
|
|
}
|
|
|
$promote_map = "tp1.`chain` = '/'";
|
|
|
if (isset($_REQUEST['promote_id'])) {
|
|
|
$promote_map = "tp1.`id` = {$_REQUEST['promote_id']}";
|
|
|
unset($_REQUEST['promote_id']);
|
|
|
}
|
|
|
$data = $spend->field('t.pid as promote_id,t.promote_account,sum(a.count) AS count,sum(a.today) AS today,sum(a. WEEK) AS WEEK,sum(a.mounth) AS mounth')
|
|
|
->join("INNER JOIN (SELECT tp2.*, tp1.id AS pid, tp1.account as promote_account FROM tab_promote tp1 LEFT JOIN tab_promote tp2 ON tp2.`chain` LIKE CONCAT('%/', tp1.id, '/%') where $promote_map ) AS t ON promote_id = t.id")
|
|
|
->where($condition)->table('(' . $data . ') as a')->group('t.pid')->order('count desc,a.ordertime')->select();
|
|
|
$count=count($data);
|
|
|
foreach ($data as $key => $value) {
|
|
|
static $i=0;
|
|
|
$i++;
|
|
|
$data[$key]['rand']=$i;
|
|
|
if($data[$key]['promote_id']=='0'){
|
|
|
unset($data[$key]);
|
|
|
}
|
|
|
}
|
|
|
$total=A('Platform')->data_total($data);
|
|
|
if($_REQUEST['data_order']!=''){
|
|
|
$data_order=reset(explode(',',$_REQUEST['data_order']));
|
|
|
$data_order_type=end(explode(',',$_REQUEST['data_order']));
|
|
|
}
|
|
|
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order);
|
|
|
$size=$row;//每页显示的记录数
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
//用array_slice(array,offset,length) 函数在数组中根据条件取出一段值;array(数组),offset(元素的开始位置),length(组的长度)
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
$xlsName = $_REQUEST['xlsname']?$_REQUEST['xlsname']:'推广员充值统计';
|
|
|
$xlsCell = array(
|
|
|
array('promote_id', "推广员账号"),
|
|
|
array('count' , "累计充值"),
|
|
|
array('rand' , "排行榜"),
|
|
|
array('today' , "今日充值"),
|
|
|
array('week' , "本周充值"),
|
|
|
array('mounth' , "本月充值"),
|
|
|
);
|
|
|
foreach ($data as $key => $value) {
|
|
|
$data[$key]['promote_id'] = get_promote_account($data[$key]['promote_id']);
|
|
|
}
|
|
|
$length = count($data);
|
|
|
$data[$length] = array(
|
|
|
'promote_id'=>'汇总',
|
|
|
'count'=>$total['sum_count'],
|
|
|
'rand'=>'---',
|
|
|
'today'=>$total['sum_today'],
|
|
|
'week'=>$total['sum_week'],
|
|
|
'mounth'=>$total['sum_mounth']
|
|
|
);
|
|
|
$xlsData = $data;
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
public function userretention_export($p = 0)
|
|
|
{
|
|
|
$request=$_REQUEST;
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
$arraypage=$page;
|
|
|
$row = 10;
|
|
|
$start = I('start');
|
|
|
$end = empty(I('end')) ? time_format(time(),'Y-m-d') : I('end');
|
|
|
if(!empty($start)){
|
|
|
$game_id = I('game_id');
|
|
|
$promote_id = I('promote_id');
|
|
|
$map_list = array();
|
|
|
//统计每日注册数
|
|
|
$data = A('Stat')->count_register($start,$end,$game_id,$promote_id,$page);
|
|
|
|
|
|
$day = array(1,2,3,4,5,6,7,15,30,60);
|
|
|
foreach ($data as $k=>$v) {
|
|
|
//当日注册人账号
|
|
|
$map = $map_list;
|
|
|
$time = $v['time'];
|
|
|
$map["FROM_UNIXTIME(register_time,'%Y-%m-%d')"] = $time;
|
|
|
//每日留存
|
|
|
foreach ($day as $key => $value) {
|
|
|
$map = $map_list;
|
|
|
$map["FROM_UNIXTIME(register_time,'%Y-%m-%d')"] = $time;
|
|
|
$login_time = date('Y-m-d', strtotime("+{$value} day",strtotime($time)));
|
|
|
$num = M('user','tab_')
|
|
|
->field('count(DISTINCT tab_user.id) as num')
|
|
|
->join("right join tab_user_login_record as ur on ur.user_id = tab_user.id and FROM_UNIXTIME(ur.login_time,'%Y-%m-%d') = '{$login_time}'")
|
|
|
->where($map)
|
|
|
->group('user_id')
|
|
|
->find();
|
|
|
$data[$k][$value] = $num['num'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//分页
|
|
|
$time_map['time'] = array('between',array($start,$end));
|
|
|
$count = M('date_list')->where($time_map)->count();
|
|
|
if($count > $row){
|
|
|
$page = new \Think\Page($count, $row);
|
|
|
$page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
|
|
|
$this->assign('_page', $page->show());
|
|
|
}
|
|
|
}else{
|
|
|
unset($_REQUEST['data_order']);
|
|
|
if(count(I('get.'))!=0){
|
|
|
$this->error('时间选择错误,请重新选择!');
|
|
|
}
|
|
|
}
|
|
|
if($request['data_order']!=''){
|
|
|
$data_order=reset(explode(',',$request['data_order']));
|
|
|
$data_order_type=end(explode(',',$request['data_order']));
|
|
|
}
|
|
|
$data=my_sort($data,$data_order_type,(int)$data_order,SORT_STRING);
|
|
|
$size=10;//每页显示的记录数
|
|
|
$pnum = ceil(count($data) / $size); //总页数,ceil()函数用于求大于数字的最小整数
|
|
|
$data = array_slice($data, ($arraypage-1)*$size, $size);
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname']?$_REQUEST['xlsname']:'留存分析';
|
|
|
$dataKey = array('time','register_num','1','2','3','4','5','6','7','15','30');
|
|
|
if(!empty($request['game_id'])){
|
|
|
array_splice($dataKey,1,0,"game_id");
|
|
|
}
|
|
|
if(!empty($request['promote_id'])){
|
|
|
$key = empty($request['game_id'])?1:2;
|
|
|
array_splice($dataKey,$key,0,"promote_id");
|
|
|
}
|
|
|
|
|
|
foreach ($dataKey as $key => $value) {
|
|
|
switch ($value) {
|
|
|
case 'time':
|
|
|
$xlsCell[$key] = array('time', "日期");
|
|
|
break;
|
|
|
case 'game_id':
|
|
|
$xlsCell[$key] = array('game_id', "游戏名称");
|
|
|
break;
|
|
|
case 'promote_id':
|
|
|
$xlsCell[$key] = array('promote_id', "推广员账号");
|
|
|
break;
|
|
|
case 'register_num':
|
|
|
$xlsCell[$key] = array('register_num', '新增玩家', 'time_format', '*');
|
|
|
break;
|
|
|
case '1':
|
|
|
$xlsCell[$key] = array('1', '1日留存', 'time_format', '*');
|
|
|
break;
|
|
|
case '2':
|
|
|
$xlsCell[$key] = array('2', '2日留存');
|
|
|
break;
|
|
|
case '3':
|
|
|
$xlsCell[$key] = array('3', "3日留存");
|
|
|
break;
|
|
|
case '4':
|
|
|
$xlsCell[$key] = array('4', '4日留存');
|
|
|
break;
|
|
|
case '5':
|
|
|
$xlsCell[$key] = array('5', '5日留存');
|
|
|
break;
|
|
|
case '6':
|
|
|
$xlsCell[$key] = array('6', '6日留存');
|
|
|
break;
|
|
|
case '7':
|
|
|
$xlsCell[$key] = array('7', '7日留存');
|
|
|
break;
|
|
|
case '15':
|
|
|
$xlsCell[$key] = array('15', '15日留存');
|
|
|
break;
|
|
|
case '30':
|
|
|
$xlsCell[$key] = array('30', '30日留存');
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
foreach ($data as $key => $value) {
|
|
|
$data[$key]['game_id'] = get_game_name($request['game_id']);
|
|
|
$data[$key]['promote_id'] = get_promote_account($request['promote_id']);
|
|
|
$data[$key]['1'] = (round($data[$key]['1']/$data[$key]['register_num'],4)*100).'%';
|
|
|
$data[$key]['2'] = (round($data[$key]['2']/$data[$key]['register_num'],4)*100).'%';
|
|
|
$data[$key]['3'] = (round($data[$key]['3']/$data[$key]['register_num'],4)*100).'%';
|
|
|
$data[$key]['4'] = (round($data[$key]['4']/$data[$key]['register_num'],4)*100).'%';
|
|
|
$data[$key]['5'] = (round($data[$key]['5']/$data[$key]['register_num'],4)*100).'%';
|
|
|
$data[$key]['6'] = (round($data[$key]['6']/$data[$key]['register_num'],4)*100).'%';
|
|
|
$data[$key]['7'] = (round($data[$key]['7']/$data[$key]['register_num'],4)*100).'%';
|
|
|
$data[$key]['15'] = (round($data[$key]['15']/$data[$key]['register_num'],4)*100).'%';
|
|
|
$data[$key]['30'] = (round($data[$key]['30']/$data[$key]['register_num'],4)*100).'%';
|
|
|
}
|
|
|
$xlsData = $data;
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
public function summaryQueryExport($p=1){
|
|
|
$xlsCell = array(
|
|
|
array('cycle', "查询时间"),
|
|
|
array('ba_account' , "商务专员账号"),
|
|
|
array('pro_count' , "旗下推广员数"),
|
|
|
array('pro_reg_count' , "总注册(个)"),
|
|
|
array('pro_reg_sum' , "总充值(元)"),
|
|
|
);
|
|
|
$xlsName = $_REQUEST['xlsname']?$_REQUEST['xlsname']:'汇总查询';
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据arraypage
|
|
|
$arraypage = $page ? $page : 1; //默认显示第一页数据
|
|
|
$size = 10;
|
|
|
|
|
|
if (isset($_REQUEST['timestart']) && isset($_REQUEST['timeend'])) {
|
|
|
if (isset($_GET['ba_id'])) {
|
|
|
$map['id'] = $_GET['ba_id'];
|
|
|
}
|
|
|
$ba = M('business_affairs', 'tab_')->field('id,account,promote_id')->where($map)->select();
|
|
|
|
|
|
foreach ($ba as $key => $value) {
|
|
|
$lists[$key]['ba_account'] = $value['account'];
|
|
|
$pro_map['ba_id'] = $value['id'];
|
|
|
$pro_count = M('promote', 'tab_')->field('id')->where($pro_map)->count();
|
|
|
$lists[$key]['pro_count'] = $pro_count;
|
|
|
$pro_reg_map['promote_id'] = ['in', $value['promote_id']];
|
|
|
$pro_reg_map_time['register_time'] = array('BETWEEN', array(strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 24 * 60 * 60 - 1));
|
|
|
$pro_reg_map_paytime['pay_time'] = array('BETWEEN', array(strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 24 * 60 * 60 - 1));
|
|
|
$pro_reg = M('user', 'tab_')->field('id')->where($pro_reg_map)->where($pro_reg_map_time)->count();
|
|
|
$lists[$key]['pro_reg_count'] = $pro_reg;
|
|
|
$pro_reg_map['pay_status'] = 1;
|
|
|
$pro_spend = M('spend', 'tab_')->where($pro_reg_map)->where($pro_reg_map_paytime)->sum('pay_amount');
|
|
|
$lists[$key]['pro_reg_sum'] = empty($pro_spend) ? 0 : $pro_spend;
|
|
|
}
|
|
|
|
|
|
$count = count($lists);
|
|
|
$lists = array_slice($lists, ($arraypage - 1) * $size, $size);
|
|
|
|
|
|
foreach ($lists as $key => $value) {
|
|
|
$lists[$key]["cycle"] = $_REQUEST['timestart']."到".$_REQUEST['timeend'];
|
|
|
}
|
|
|
$xlsData = $lists;
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}else{
|
|
|
$xlsCell = array(
|
|
|
array('cycle', "查询时间"),
|
|
|
array('ba_account' , "商务专员账号"),
|
|
|
array('pro_count' , "旗下推广员数"),
|
|
|
array('pro_reg_count' , "总注册(个)"),
|
|
|
array('pro_reg_sum' , "总充值(元)"),
|
|
|
);
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, "");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public function BindRechargeRecordExport($p=1){
|
|
|
$model = new \Admin\Model\BindRechargeModel();
|
|
|
empty(I('game_id')) || $map['game_id'] = I('game_id');
|
|
|
empty(I("pay_way")) || $map['pay_way'] = I("pay_way");
|
|
|
empty(I('pay_status')) || $map['pay_status'] = I('pay_status');
|
|
|
empty(I("account")) || $map['user_account'] = ["like","%".I("account")."%"];
|
|
|
empty(I("time_start")) || $map['create_time'] = ["between",[strtotime(I("time_start")),empty(I("time_end"))?time():strtotime(I("time_end"))+86400-1]];
|
|
|
$data = $model->getLists($map,"create_time desc",$p);
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('pay_order_number', "订单号"),
|
|
|
array('user_account' , "玩家账号"),
|
|
|
array('promote_account' , "所属推广员"),
|
|
|
array('game_name' , "游戏名称"),
|
|
|
array('amount' , "充值绑币"),
|
|
|
array('real_amount' , "实付金额"),
|
|
|
array('pay_way' , "充值方式"),
|
|
|
array('recharge_ip' , "充值IP"),
|
|
|
array('create_time' , "充值时间"),
|
|
|
array('pay_status' , "订单状态"),
|
|
|
);
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
$data = $data['data'];
|
|
|
foreach ($data as $key => $value) {
|
|
|
$data[$key]['pay_way'] = get_pay_way($value['pay_way']);
|
|
|
$data[$key]['create_time'] = date('Y-m-d H:i:s',$value['create_time']);
|
|
|
$data[$key]['pay_status'] = get_info_status($value['pay_status'],9);
|
|
|
}
|
|
|
$xlsData = $data;
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 用户分析
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function user($p=1) {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
if(is_numeric($_REQUEST['game_id']) && $_REQUEST['game_id']>0) {
|
|
|
$game_id = I('game_id','');
|
|
|
$gamesource = get_source_from_game($game_id);
|
|
|
} else {
|
|
|
$gamesource = '全部';
|
|
|
}
|
|
|
|
|
|
if(is_numeric($_REQUEST['promote_id'])) {
|
|
|
$promote_id = I('promote_id',0);
|
|
|
$promoteaccount = get_promote_name($promote_id);
|
|
|
} else {
|
|
|
$promoteaccount = '全部';
|
|
|
}
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('time','日期'),
|
|
|
array('source','来源游戏'),
|
|
|
array('promote','推广员'),
|
|
|
array('news','新增用户'),
|
|
|
array('old','老用户'),
|
|
|
array('dau','DAU'),
|
|
|
array('wau','WAU'),
|
|
|
array('mau','MAU'),
|
|
|
);
|
|
|
|
|
|
if (is_file(dirname(__FILE__).'/access_data_user.txt')) {
|
|
|
|
|
|
$filetxt = file_get_contents(dirname(__FILE__).'/access_data_user.txt');
|
|
|
|
|
|
$data = json_decode($filetxt,true);
|
|
|
|
|
|
} else {
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}//10;
|
|
|
|
|
|
$start = I('start',date('Y-m-d',strtotime('-7 day')));
|
|
|
|
|
|
$end = I('end',date('Y-m-d',strtotime('-1 day')));
|
|
|
|
|
|
$end = strtotime($end)>=strtotime(date('Y-m-d'))?date('Y-m-d',strtotime('-1 day')):$end;
|
|
|
|
|
|
$data = D('user')->user(strtotime($start),strtotime($end),$promote_id,$game_id);
|
|
|
|
|
|
$count = count($list);
|
|
|
|
|
|
$data = array_slice($list,($page-1)*$row,$row,true);
|
|
|
|
|
|
}
|
|
|
|
|
|
foreach ($data as $v) {
|
|
|
$v['source'] = $gamesource;
|
|
|
$v['promote'] = $promoteaccount;
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
}
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* ltv统计
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function ltv($p=1) {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('time','日期'),
|
|
|
array('amount','充值金额'),
|
|
|
array('active','活跃用户'),
|
|
|
array('ltv1','LTV1'),
|
|
|
array('ltv2','LTV2'),
|
|
|
array('ltv3','LTV3'),
|
|
|
array('ltv4','LTV4'),
|
|
|
array('ltv5','LTV5'),
|
|
|
array('ltv6','LTV6'),
|
|
|
array('ltv7','LTV7'),
|
|
|
array('ltv14','LTV14'),
|
|
|
array('ltv30','LTV30'),
|
|
|
);
|
|
|
|
|
|
if (is_file(dirname(__FILE__).'/access_data_ltv.txt')) {
|
|
|
|
|
|
$filetxt = file_get_contents(dirname(__FILE__).'/access_data_ltv.txt');
|
|
|
|
|
|
$data = json_decode($filetxt,true);
|
|
|
|
|
|
} else {
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}//10;
|
|
|
|
|
|
$start = I('start',date('Y-m-d',strtotime('-30 day')));
|
|
|
|
|
|
$end = I('end',date('Y-m-d',strtotime('-1 day')));
|
|
|
|
|
|
$end = strtotime($end)>=strtotime(date('Y-m-d'))?date('Y-m-d',strtotime('-1 day')):$end;
|
|
|
|
|
|
$data = D('user')->ltv(strtotime($start),strtotime($end));
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
foreach ($data as $v) {
|
|
|
$xlsData[] = $v;
|
|
|
}
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 统计总揽数据
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function overview() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'].'_'.$_REQUEST['name'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('time','日期'),
|
|
|
array('count',$_REQUEST['name']),
|
|
|
);
|
|
|
|
|
|
$num = I('num',2);
|
|
|
$key = $_REQUEST['key'];
|
|
|
|
|
|
if (is_file(dirname(__FILE__).'/access_data_foldline.txt')) {
|
|
|
|
|
|
$filetxt = file_get_contents(dirname(__FILE__).'/access_data_foldline.txt');
|
|
|
|
|
|
$data = json_decode($filetxt,true);
|
|
|
|
|
|
$xlsData = $data[$key];
|
|
|
$xlsSummary[] = $data['sum'][$key];
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$start = I('start',date('Y-m-d',strtotime('-1 day')));
|
|
|
|
|
|
$end = I('end',date('Y-m-d',strtotime('-1 day')));
|
|
|
|
|
|
$starttime = strtotime($start);
|
|
|
$endtime = strtotime($end)+86399;
|
|
|
|
|
|
$user = D('User');
|
|
|
$spend = D('Spend');
|
|
|
|
|
|
$flag = 1;
|
|
|
|
|
|
if ($start == $end) {
|
|
|
|
|
|
$hours = ['00~01','02~03','04~05','06~07','08~09','10~11','12~13','14~15','16~17','18~19','20~21','22~23'];
|
|
|
|
|
|
foreach($hours as $v) {
|
|
|
if ($key == 'news'){
|
|
|
$data['news'][$v] = 0;}
|
|
|
if ($key == 'active'){
|
|
|
$data['active'][$v] = 0;}
|
|
|
if ($key == 'player'){
|
|
|
$data['player'][$v] = 0;}
|
|
|
}
|
|
|
|
|
|
// 新增用户
|
|
|
if ($key == 'news'){
|
|
|
$hoursnews = $user->newsAdd(['register_time'=>['between',[$starttime,$endtime]]],'news','time',5);
|
|
|
}
|
|
|
if ($key == 'active'){
|
|
|
// 活跃用户
|
|
|
$hoursactive = $user->totalPlayerByGroup(['tab_user_login_record.login_time'=>['between',[$starttime,$endtime]]],'active','time',true,5);
|
|
|
}if ($key == 'player'){
|
|
|
// 付费用户
|
|
|
$hoursplayer = $spend->totalPlayerByGroup(['pay_time'=>['between',[$starttime,$endtime]]],'player','time',5);
|
|
|
}
|
|
|
|
|
|
foreach($hours as $v) {
|
|
|
foreach($hoursnews as $h) {
|
|
|
$time = explode(' ',$h['time']);
|
|
|
if (strpos($v,$time[1]) !== false) {
|
|
|
$data['news'][$v] = (integer)$h['news'];break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
foreach($hoursactive as $h) {
|
|
|
$time = explode(' ',$h['time']);
|
|
|
if (strpos($v,$time[1]) !== false) {
|
|
|
$data['active'][$v] = (integer)$h['active'];break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
foreach($hoursplayer as $h) {
|
|
|
$time = explode(' ',$h['time']);
|
|
|
if (strpos($v,$time[1]) !== false) {
|
|
|
$data['player'][$v] = (integer)$h['player'];break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
|
|
|
$datelist = get_date_list($starttime,$endtime,$num==7?2:1);
|
|
|
|
|
|
$flag = 0;
|
|
|
|
|
|
foreach($datelist as $k => $v) {
|
|
|
if ($key == 'news'){
|
|
|
$data['news'][$v] = 0;}
|
|
|
if ($key == 'active'){
|
|
|
$data['active'][$v] = 0;}
|
|
|
if ($key == 'player'){
|
|
|
$data['player'][$v] = 0;}
|
|
|
|
|
|
}
|
|
|
if ($key == 'news'){
|
|
|
// 新增用户
|
|
|
$news = $user->newsAdd(['register_time'=>['between',[$starttime,$endtime]]],'news','time',$num==7?2:1);
|
|
|
}
|
|
|
if ($key == 'active'){
|
|
|
// 活跃用户
|
|
|
$active = $user->totalPlayerByGroup(['tab_user_login_record.login_time'=>['between',[$starttime,$endtime]]],'active','time',true,$num==7?2:1);
|
|
|
}
|
|
|
if ($key == 'player'){
|
|
|
// 付费用户
|
|
|
$player = $spend->totalPlayerByGroup(['pay_time'=>['between',[$starttime,$endtime]]],'player','time',$num==7?2:1);
|
|
|
}
|
|
|
foreach($datelist as $v) {
|
|
|
foreach($news as $h) {
|
|
|
if ($v == $h['time']) {
|
|
|
$data['news'][$v] = (integer)$h['news'];break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
foreach($active as $h) {
|
|
|
if ($v == $h['time']) {
|
|
|
$data['active'][$v] = (integer)$h['active'];break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
foreach($player as $h) {
|
|
|
if ($v == $h['time']) {
|
|
|
$data['player'][$v] = (integer)$h['player'];break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
foreach ($data as $k => $v) {
|
|
|
$sum = 0;$tempexport=[];
|
|
|
foreach($v as $t => $s){
|
|
|
$sum += $s;
|
|
|
if($flag==1){
|
|
|
$tempexport[]=['time'=>((integer)substr($t,0,2)).':00','count'=>$s];
|
|
|
}else{
|
|
|
$tempexport[]=['time'=>$t,'count'=>$s];
|
|
|
}
|
|
|
}
|
|
|
$export[$k]=$tempexport;
|
|
|
$export['sum'][$k]=$sum;
|
|
|
}
|
|
|
|
|
|
$xlsData = $export[$key];
|
|
|
$xlsSummary[] = $export['sum'][$key];
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 小号列表
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function small_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('account','小号'),
|
|
|
array('fgame_name','游戏名称'),
|
|
|
array('day','创建天数'),
|
|
|
array('cumulative','累计充值'),
|
|
|
array('register_time','创建时间'),
|
|
|
array('lock_status','状态'),
|
|
|
);
|
|
|
|
|
|
$pid = intval($_GET['id']);
|
|
|
$xlsData = [];
|
|
|
if(is_numeric($pid) && $pid>0) {
|
|
|
|
|
|
$map['u.puid'] = $pid;
|
|
|
|
|
|
if($_REQUEST['small']) {$map['u.account']=array('like','%'.$_REQUEST['small'].'%');}
|
|
|
|
|
|
$data = M('User', 'tab_')->alias('u')
|
|
|
->field('u.account,u.register_time,u.cumulative,fgame_id,fgame_name,u.lock_status,DATEDIFF(curdate(),FROM_UNIXTIME(u.register_time,"%Y-%m-%d")) as day')
|
|
|
->join('tab_merchandise as m on ((m.status = 3 or m.status=0 or m.status = 4) and m.small_id = u.id) ')
|
|
|
// 查询条件
|
|
|
->where($map)
|
|
|
/* 默认通过id逆序排列 */
|
|
|
->order('u.register_time desc')
|
|
|
/* 执行查询 */
|
|
|
->select();
|
|
|
foreach($data as $k=>$v) {
|
|
|
$data[$k]['register_time'] = date('Y-m-d H:i:s',$v['register_time']);
|
|
|
$data[$k]['lock_status'] = '已锁定';
|
|
|
}
|
|
|
|
|
|
$xlsData = $data;
|
|
|
}
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 商品列表
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function merchandise() {
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','商品ID'),
|
|
|
array('title','商品信息'),
|
|
|
array('user_account','卖家账号'),
|
|
|
array('day','创建天数'),
|
|
|
array('accumulation','累计充值'),
|
|
|
array('price','售价'),
|
|
|
array('status','状态'),
|
|
|
array('create_time','发布时间'),
|
|
|
);
|
|
|
|
|
|
if(!empty($_REQUEST['account'])) {$extend['user_account']=array('like','%'.$_REQUEST['account'].'%');}
|
|
|
if(!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {$extend['create_time'] = array('between',[strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+86399]);}
|
|
|
elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {$extend['create_time'] = array('between',[strtotime($_REQUEST['timestart']),time()]);}
|
|
|
elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {$extend['create_time'] = array('egt',strtotime($_REQUEST['timeend'])+86399);}
|
|
|
if(is_numeric($_REQUEST['game_id']) && $_REQUEST['game_id']>0) {$extend['game_id']=$_REQUEST['game_id'];}
|
|
|
if(is_numeric($_REQUEST['status'])) {$extend['status']=$_REQUEST['status'];}
|
|
|
if(!empty($_REQUEST['keyword'])) {$extend['game_name|title|server_name|small_account']=array('like','%'.$_REQUEST['keyword'].'%');}
|
|
|
|
|
|
if(!empty($_REQUEST['id'])) {$extend['id'] = $_REQUEST['id'];}
|
|
|
|
|
|
$merchandise = M('Merchandise','tab_');
|
|
|
|
|
|
$data = $merchandise->field('id,title,game_name,server_name,small_account,user_account,day,accumulation,price,status,create_time')
|
|
|
->where($extend)
|
|
|
->order('id desc')->select();
|
|
|
|
|
|
foreach($data as $k=>$v) {
|
|
|
$data[$k]['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
$data[$k]['status'] = get_info_status($v['status'],41);
|
|
|
}
|
|
|
|
|
|
$xlsData = $data;
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 订单列表
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function order_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
// array('id','编号'),
|
|
|
array('order_number','订单号'),
|
|
|
array('title','商品信息'),
|
|
|
// array('game_name','游戏名称'),
|
|
|
// array('server_name','区服名称'),
|
|
|
// array('small_account','小号账户'),
|
|
|
// array('seller_account','卖家账号'),
|
|
|
//// array('phone','卖家手机号'),
|
|
|
array('buyer_account','交易用户'),
|
|
|
array('order_price','售价'),
|
|
|
array('poundage','手续费'),
|
|
|
array('pay_status','状态'),
|
|
|
array('order_time','下单时间'),
|
|
|
// array('pay_time','付款时间'),
|
|
|
// array('send_time','发货时间'),
|
|
|
);
|
|
|
|
|
|
if(!empty($_REQUEST['order_number'])) {$extend['order_number']=array('like','%'.$_REQUEST['order_number'].'%');}
|
|
|
if(!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {$extend['order_time'] = array('between',[strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+86399]);}
|
|
|
elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {$extend['order_time'] = array('between',[strtotime($_REQUEST['timestart']),time()]);}
|
|
|
elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {$extend['order_time'] = array('egt',strtotime($_REQUEST['timeend'])+86399);}
|
|
|
if(is_numeric($_REQUEST['game_id']) && $_REQUEST['game_id']>0) {$extend['game_id']=$_REQUEST['game_id'];}
|
|
|
if(is_numeric($_REQUEST['pay_status'])) {$extend['pay_status']=$_REQUEST['pay_status'];}
|
|
|
if(!empty($_REQUEST['keyword'])) {$extend['game_name|title|server_name|small_account']=array('like','%'.$_REQUEST['keyword'].'%');}
|
|
|
|
|
|
$data = M('Order','tab_')->alias('o')->field('o.id,o.order_number,o.seller_account,o.buyer_account,o.order_price,o.poundage,o.pay_status,o.order_time,o.pay_time,o.send_time,m.game_name,m.server_name,m.small_account,m.title,m.phone')
|
|
|
->join('tab_merchandise as m on (m.id = o.merchandise_id)')
|
|
|
->where($extend)->order('id desc')->select();
|
|
|
|
|
|
foreach($data as $k=>$v) {
|
|
|
$data[$k]['order_time'] = $v['order_time']?date('Y-m-d H:i:s',$v['order_time']):'';
|
|
|
$data[$k]['pay_time'] = $v['pay_time']?date('Y-m-d H:i:s',$v['pay_time']):'';
|
|
|
$data[$k]['send_time'] = $v['send_time']?date('Y-m-d H:i:s',$v['send_time']):'';
|
|
|
$data[$k]['pay_status'] = get_info_status($v['pay_status'],38);
|
|
|
}
|
|
|
|
|
|
$xlsData = $data;
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 用户金币提现记录列表
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function user_withdraw() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','编号'),
|
|
|
array('order_number','提现单号'),
|
|
|
array('user_account','账号'),
|
|
|
array('coin','提现金币'),
|
|
|
array('poundage','手续费'),
|
|
|
array('money','实际到账'),
|
|
|
array('gold_coin_balance','金币余额'),
|
|
|
array('alipay','提现支付宝'),
|
|
|
array('create_time','提现时间'),
|
|
|
array('status','提现状态'),
|
|
|
);
|
|
|
|
|
|
if(!empty($_REQUEST['order_number'])) {$extend['order_number']=array('like','%'.$_REQUEST['order_number'].'%');}
|
|
|
if(!empty($_REQUEST['account'])) {$extend['user_account']=array('like','%'.$_REQUEST['account'].'%');}
|
|
|
if(!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {$extend['create_time'] = array('between',[strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+86399]);}
|
|
|
elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {$extend['create_time'] = array('between',[strtotime($_REQUEST['timestart']),time()]);}
|
|
|
elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {$extend['create_time'] = array('egt',strtotime($_REQUEST['timeend'])+86399);}
|
|
|
if(!empty($_REQUEST['alipay'])) {$extend['alipay']=array('like','%'.$_REQUEST['alipay'].'%');}
|
|
|
if(is_numeric($_REQUEST['status'])) {$extend['status']=$_REQUEST['status'];}
|
|
|
|
|
|
$wgc = M('WithdrawGoldCoin','tab_');
|
|
|
|
|
|
$data = $wgc->field('id,order_number,user_account,coin,poundage,money,gold_coin_balance,status,alipay,create_time')
|
|
|
->where($extend)
|
|
|
->order('id desc')->select();
|
|
|
|
|
|
foreach($data as $k=>$v) {
|
|
|
$data[$k]['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
$data[$k]['status'] = get_info_status($v['status'],39);
|
|
|
}
|
|
|
|
|
|
|
|
|
$xlsData = $data;
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 应用概况
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function device_survey() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'].'_'.$_REQUEST['name'];
|
|
|
|
|
|
$num = I('num',2);
|
|
|
$key = $_REQUEST['key'];
|
|
|
|
|
|
if($key=='model') {
|
|
|
$xlsCell = array(
|
|
|
array('model',$_REQUEST['name']),
|
|
|
array('version','系统版本'),
|
|
|
array('count','数量'),
|
|
|
);
|
|
|
} else {
|
|
|
$xlsCell = array(
|
|
|
array('time','日期'),
|
|
|
array('version','系统版本'),
|
|
|
array('count',$_REQUEST['name']),
|
|
|
);
|
|
|
}
|
|
|
|
|
|
if (is_file(dirname(__FILE__).'/device_data_foldline.txt')) {
|
|
|
|
|
|
$filetxt = file_get_contents(dirname(__FILE__).'/device_data_foldline.txt');
|
|
|
|
|
|
$data = json_decode($filetxt,true);
|
|
|
|
|
|
$xlsData = $data[$key];
|
|
|
|
|
|
$xlsSummary[] = $data['sum'][$key];
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$start = I('start',date('Y-m-d',strtotime('-1 day')));
|
|
|
|
|
|
$end = I('end',date('Y-m-d',strtotime('-1 day')));
|
|
|
|
|
|
$starttime = strtotime($start);
|
|
|
$endtime = strtotime($end)+86399;
|
|
|
|
|
|
$device = D('DeviceRecord');
|
|
|
|
|
|
$flag = 1;
|
|
|
|
|
|
if ($start == $end) {
|
|
|
|
|
|
$hours = ['00~01','02~03','04~05','06~07','08~09','10~11','12~13','14~15','16~17','18~19','20~21','22~23'];
|
|
|
|
|
|
foreach($hours as $v) {
|
|
|
if ($key == 'news'){
|
|
|
$data['news']['ios'][$v] = 0;
|
|
|
$data['news']['and'][$v] = 0;
|
|
|
}
|
|
|
if ($key == 'active'){
|
|
|
$data['active']['ios'][$v] = 0;
|
|
|
$data['active']['and'][$v] = 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 新增设备
|
|
|
if ($key == 'news'){
|
|
|
$hoursnews = $device->news_on_time(['create_time'=>['between',[$starttime,$endtime]]],'news',5,'time,version');
|
|
|
|
|
|
foreach($hours as $v) {
|
|
|
foreach($hoursnews as $h) {
|
|
|
$time = explode(' ',$h['time']);
|
|
|
if (strpos($v,$time[1]) !== false) {
|
|
|
$data['news'][$h['version']==1?'and':'ios'][$v] += (integer)$h['news'];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
if ($key == 'active'){
|
|
|
// 活跃设备
|
|
|
$hoursactive = $device->active_on_time(['create_time'=>['between',[$starttime,$endtime]]],'active',5,'time,version');
|
|
|
foreach($hours as $v) {
|
|
|
foreach($hoursactive as $h) {
|
|
|
$time = explode(' ',$h['time']);
|
|
|
if (strpos($v,$time[1]) !== false) {
|
|
|
$data['active'][$h['version']==1?'and':'ios'][$v] += (integer)$h['active'];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if ($key == 'model'){
|
|
|
// 启动机型
|
|
|
$hoursmodel = $device->model(['create_time'=>['between',[$starttime,$endtime]]]);
|
|
|
|
|
|
foreach($hoursmodel as $k=>$h) {
|
|
|
$data['model'][$h['version']==1?'and':'ios'][$h['model']] = (integer)$h['count'];
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$datelist = get_date_list($starttime,$endtime,$num==7?2:1);
|
|
|
|
|
|
$flag = 0;
|
|
|
|
|
|
foreach($datelist as $k => $v) {
|
|
|
if ($key == 'news'){
|
|
|
$data['news']['ios'][$v] = 0;
|
|
|
$data['news']['and'][$v] = 0;
|
|
|
}
|
|
|
if ($key == 'active'){
|
|
|
$data['active']['ios'][$v] = 0;
|
|
|
$data['active']['and'][$v] = 0;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
if ($key == 'news'){
|
|
|
// 新增设备
|
|
|
$news = $device->news_on_time(['create_time'=>['between',[$starttime,$endtime]]],'news',$num==7?2:1,'time,version');
|
|
|
foreach($datelist as $v) {
|
|
|
foreach($news as $h) {
|
|
|
if ($v == $h['time']) {
|
|
|
$data['news'][$h['version']==1?'and':'ios'][$v] += (integer)$h['news'];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if ($key == 'active'){
|
|
|
// 活跃设备
|
|
|
$active = $device->active_on_time(['create_time'=>['between',[$starttime,$endtime]]],'active',$num==7?2:1,'time,version');
|
|
|
foreach($datelist as $v) {
|
|
|
foreach($active as $h) {
|
|
|
if ($v == $h['time']) {
|
|
|
$data['active'][$h['version']==1?'and':'ios'][$v] += (integer)$h['active'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
if ($key == 'model'){
|
|
|
// 启动机型
|
|
|
$model = $device->model(['create_time'=>['between',[$starttime,$endtime]]]);
|
|
|
|
|
|
foreach($model as $k=>$h) {
|
|
|
$data['model'][$h['version']==1?'and':'ios'][$h['model']] = (integer)$h['count'];
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
foreach ($data as $k => $v) {
|
|
|
$sum = 0;$tempexport=[];
|
|
|
if($k == 'model') {
|
|
|
foreach($v['ios'] as $t => $s){
|
|
|
$tempexport[] = ['model'=>$t,'count'=>$s,'version'=>'ios'];
|
|
|
}
|
|
|
foreach($v['and'] as $t => $s){
|
|
|
$tempexport[] = ['model'=>$t,'count'=>$s,'version'=>'android'];
|
|
|
}
|
|
|
} else {
|
|
|
foreach($v['ios'] as $t => $s){
|
|
|
$sum += $s;
|
|
|
if($flag==1){
|
|
|
$tempexport[]=['time'=>$start.' '.(substr($t,0,2)).':00','count'=>$s,'version'=>'ios'];
|
|
|
}else{
|
|
|
$tempexport[]=['time'=>$t,'count'=>$s,'version'=>'ios'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
foreach($v['and'] as $t => $s){
|
|
|
$sum += $s;
|
|
|
if($flag==1){
|
|
|
$tempexport[]=['time'=>$start.' '.(substr($t,0,2)).':00','count'=>$s,'version'=>'android'];
|
|
|
}else{
|
|
|
$tempexport[]=['time'=>$t,'count'=>$s,'version'=>'android'];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
$export[$k]=$tempexport;
|
|
|
$export['sum'][$k]=$sum;
|
|
|
}
|
|
|
|
|
|
$xlsData = $export[$key];
|
|
|
$xlsSummary[] = $export['sum'][$key];
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 投放平台
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function platform() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$map['status'] = 1;
|
|
|
|
|
|
if($_REQUEST['group']==1) {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','编号'),
|
|
|
array('name','名称'),
|
|
|
array('promote_account','渠道'),
|
|
|
array('create_time','创建时间'),
|
|
|
array('update_time','最后更新时间'),
|
|
|
);
|
|
|
|
|
|
$map['mark'] = 1;
|
|
|
} else {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','编号'),
|
|
|
array('name','名称'),
|
|
|
array('create_time','创建时间'),
|
|
|
array('update_time','最后更新时间'),
|
|
|
);
|
|
|
|
|
|
$map['mark'] = 0;
|
|
|
}
|
|
|
|
|
|
if(!empty($_REQUEST['name'])) {$map['name']=array('like','%'.$_REQUEST['name'].'%');}
|
|
|
if(!empty($_REQUEST['promote_id'])) {$map['promote_id']=$_REQUEST['promote_id'];}
|
|
|
|
|
|
|
|
|
$platform = D('LaunchPlatform');
|
|
|
|
|
|
$data = $platform->all_lists($map);
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
$data[$k]['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
$data[$k]['update_time'] = date('Y-m-d H:i:s',$v['update_time']);
|
|
|
}
|
|
|
|
|
|
$xlsData = $data;
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 投放数据统计
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function launch_data($p=1) {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('duration','日期'),
|
|
|
array('platform_name','投放平台'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('new','新增用户数'),
|
|
|
array('new_device','新增设备'),
|
|
|
array('new_pay','新增付费数'),
|
|
|
array('new_rate','新增付费率'),
|
|
|
array('new_money','新增付费金额'),
|
|
|
array('active','活跃用户数'),
|
|
|
array('active_pay','活跃付费人数'),
|
|
|
array('active_money','活跃付费金额'),
|
|
|
array('active_rate','活跃付费率'),
|
|
|
array('active_arpu','活跃ARPU'),
|
|
|
array('pay_arpu','付费ARPU'),
|
|
|
);
|
|
|
|
|
|
if (is_file(dirname(__FILE__).'/access_data_launch.txt')) {
|
|
|
|
|
|
$filetxt = file_get_contents(dirname(__FILE__).'/access_data_launch.txt');
|
|
|
|
|
|
$data = json_decode($filetxt,true);
|
|
|
|
|
|
} else {
|
|
|
$page = intval($p);
|
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}//10;
|
|
|
|
|
|
$currentdate = mktime(0,0,0,date('m'),date('d'),date('Y'));
|
|
|
|
|
|
|
|
|
$map = array();
|
|
|
if(is_numeric($_REQUEST['game_id']) && $_REQUEST['game_id']>0) {$map['game_id']=$_REQUEST['game_id'];}
|
|
|
if(is_numeric($_REQUEST['promote_id']) && $_REQUEST['promote_id']>0) {$map['promote_id']=$_REQUEST['promote_id'];}
|
|
|
if(is_numeric($_REQUEST['platform_id']) && $_REQUEST['platform_id']>0) {$map['platform_id']=$_REQUEST['platform_id'];}
|
|
|
|
|
|
|
|
|
$launchrecord = D('LaunchRecord');
|
|
|
|
|
|
if(!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
|
|
|
$start = strtotime($_REQUEST['timestart']);
|
|
|
$end = strtotime($_REQUEST['timeend']);
|
|
|
if($start<=$end){
|
|
|
if($end>=$currentdate) {
|
|
|
|
|
|
$data = $launchrecord->lists($p,$map,$start,$currentdate+86399);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$data = $launchrecord->data($p,$map,array('duration'=>['between',[$start,$end+86399]]));
|
|
|
|
|
|
}
|
|
|
}
|
|
|
} elseif(!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
|
|
|
$start = strtotime($_REQUEST['timestart']);
|
|
|
|
|
|
$data = $launchrecord->lists($p,$map,$start,$currentdate+86399);
|
|
|
|
|
|
} elseif(empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
|
|
|
$end = strtotime($_REQUEST['timeend']);
|
|
|
if($end>=$currentdate) {
|
|
|
|
|
|
$data = $launchrecord->lists($p,$map,'',$currentdate+86399);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$data = $launchrecord->data($p,$map,array('duration'=>['lt',$end+86399]));
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
|
|
|
$data = $launchrecord->data($p,$map,array('duration'=>['lt',$currentdate]));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$current = $data['current'];
|
|
|
$total = $data['total'];
|
|
|
$current['duration'] = '当页汇总';
|
|
|
$total['duration'] = '全部汇总';
|
|
|
$data = $data['data'];
|
|
|
|
|
|
if($map['game_id']) {$total['game_id']=$current['game_id']=$map['game_id'];}
|
|
|
if($map['platform_id']) {$total['platform_id']=$current['platform_id']=$map['platform_id'];}
|
|
|
|
|
|
$data[] = $current;
|
|
|
$data[] = $total;
|
|
|
|
|
|
}
|
|
|
|
|
|
foreach ($data as $v) {
|
|
|
if(is_numeric($v['duration'])) {
|
|
|
$v['platform_name'] = get_launch_platform_name($v['platform_id'],'全部');
|
|
|
$v['game_name'] = get_game_name_by_id($v['game_id'],'全部');
|
|
|
$v['duration'] = date('Y-m-d',$v['duration']);
|
|
|
} else {
|
|
|
$v['platform_name'] = get_launch_platform_name($v['platform_id'],'--');
|
|
|
$v['game_name'] = get_game_name_by_id($v['game_id'],'--');
|
|
|
}
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
}
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 登录记录
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function login_record() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('user_account','玩家账号'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('server_name','游戏区服'),
|
|
|
array('user_nickname','角色名'),
|
|
|
array('login_time','登录时间'),
|
|
|
array('login_ip','最后登录ip'),
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
if (isset($_REQUEST['login_ip'])) {
|
|
|
$map['login_ip'] = $_REQUEST['login_ip'];
|
|
|
}
|
|
|
if (isset($_REQUEST['game_id'])) {
|
|
|
$map['game_id'] = $_REQUEST['game_id'];
|
|
|
}
|
|
|
if (isset($_REQUEST['game_name'])) {
|
|
|
$map['game_name'] = ['like', $_REQUEST['game_name']."%"];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
if (isset($_REQUEST['game_type'])) {
|
|
|
$map['sdk_version'] = $_REQUEST['game_type'];
|
|
|
unset($_REQUEST['game_type']);
|
|
|
}
|
|
|
if (isset($_REQUEST['server_name'])) {
|
|
|
$map['server_name'] = $_REQUEST['server_name'];
|
|
|
unset($_REQUEST['server_name']);
|
|
|
}
|
|
|
if (isset($_REQUEST['timestart']) && isset($_REQUEST['timeend'])) {
|
|
|
$map['login_time'] = array('BETWEEN', array(strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 24 * 60 * 60 - 1));
|
|
|
}elseif(isset($_REQUEST['timestart'])){
|
|
|
$map['login_time'] = array('GT',strtotime($_REQUEST['timestart']));
|
|
|
}elseif(isset($_REQUEST['timeend'])){
|
|
|
$map['login_time'] = array('lt',(strtotime($_REQUEST['timeend'])+ 24 * 60 * 60 - 1));
|
|
|
}
|
|
|
if (isset($_REQUEST['account'])) {
|
|
|
$map['user_account'] = array('like', '%' . trim($_REQUEST['account']) . '%');
|
|
|
}
|
|
|
|
|
|
$map['login_time'] = array('neq', 0);
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
$data = M('UserLoginRecord','tab_')
|
|
|
->where($map)->order('id desc')->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['login_time'] = date('Y-m-d H:i:s',$v['login_time']);
|
|
|
$v['server_name'] = empty($v['server_name'])?'空':$v['server_name'];
|
|
|
|
|
|
$gamename=trim(get_game_name($v['game_id'],'id'));
|
|
|
|
|
|
$v['game_name'] = empty($gamename)?($v['type']==2?'APP登录':'平台登录'):$gamename;
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 账户修改记录
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function account_updatelist() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('user_account','玩家账号'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('type','货币类型'),
|
|
|
array('prev_amount','修改前余额'),
|
|
|
array('amount','修改后余额'),
|
|
|
array('create_time','修改时间'),
|
|
|
array('op_account','操作人员'),
|
|
|
);
|
|
|
|
|
|
if (isset($_REQUEST['login_ip'])) {
|
|
|
$map['login_ip'] = $_REQUEST['login_ip'];
|
|
|
}
|
|
|
if (isset($_REQUEST['game_id'])) {
|
|
|
$map['game_id'] = $_REQUEST['game_id'];
|
|
|
}
|
|
|
if (isset($_REQUEST['timestart']) && isset($_REQUEST['timeend'])) {
|
|
|
$map['create_time'] = array('BETWEEN', array(strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 24 * 60 * 60 - 1));
|
|
|
}elseif(isset($_REQUEST['timestart'])){
|
|
|
$map['create_time'] = array('GT',strtotime($_REQUEST['timestart']));
|
|
|
}elseif(isset($_REQUEST['timeend'])){
|
|
|
$map['create_time'] = array('lt',(strtotime($_REQUEST['timeend'])+ 24 * 60 * 60 - 1));
|
|
|
}
|
|
|
if (isset($_REQUEST['account'])) {
|
|
|
$map['user_account'] = array('like', '%' . trim($_REQUEST['account']) . '%');
|
|
|
}
|
|
|
if(isset($_REQUEST['huobi'])){
|
|
|
$map['type'] = $_REQUEST['huobi'];
|
|
|
}
|
|
|
if(!empty($_REQUEST['op_account'])){
|
|
|
$map['op_account'] = trim($_REQUEST['op_account']);
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
$data=M('balance_edit','tab_')
|
|
|
->where($map)
|
|
|
->order('create_time desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
$v['game_name'] = empty($v['game_name'])?'空':$v['game_name'];
|
|
|
$v['op_account'] = empty($v['op_account'])?'空':$v['op_account'];
|
|
|
|
|
|
$v['type']=trim(get_info_status($v['type'],17));
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 管理员列表
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function manager_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('uid','账号ID'),
|
|
|
array('nickname','管理员账号'),
|
|
|
array('group_name','角色类型'),
|
|
|
array('login','登录次数'),
|
|
|
array('last_login_time','最后登录时间'),
|
|
|
array('last_login_ip','最后登录IP'),
|
|
|
array('status','状态'),
|
|
|
);
|
|
|
$nickname = I('nickname');
|
|
|
if(is_numeric($nickname)){
|
|
|
$map['uid|nickname']= array(intval($nickname),array('like','%'.$nickname.'%'),'_multi'=>true);
|
|
|
}else{
|
|
|
$map['nickname'] = array('like', '%'.(string)$nickname.'%');
|
|
|
}
|
|
|
if(isset($_REQUEST['status'])){
|
|
|
$map['status'] = $_REQUEST['status'];
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
$data=M('Member')
|
|
|
->where($map)
|
|
|
->order('uid desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['last_login_time'] = empty($v['last_login_time'])?'暂无登录':date('Y-m-d H:i:s',$v['last_login_time']);
|
|
|
|
|
|
$v['group_name']=trim(get_auth_group_name($v['uid']));
|
|
|
$v['last_login_ip']=trim(long2ip($v['last_login_ip']));
|
|
|
$v['status']=trim(get_status_title($v['status']));
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 系统检查
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function check_lists() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','序号'),
|
|
|
array('info','异常简介'),
|
|
|
array('url','异常简介'),
|
|
|
array('type','异常类型'),
|
|
|
array('create_time','异常时间'),
|
|
|
array('status','异常状态'),
|
|
|
);
|
|
|
|
|
|
|
|
|
if(!empty($_REQUEST['start']) && !empty($_REQUEST['end'])){
|
|
|
|
|
|
$map['create_time'] = array('BETWEEN',array(strtotime(I('start')),strtotime(I('end'))+24*60*60-1));
|
|
|
|
|
|
}elseif(!empty($_REQUEST['start'])){
|
|
|
|
|
|
$map['create_time'] =array('egt',strtotime(I('start')));
|
|
|
|
|
|
}elseif(!empty($_REQUEST['end'])){
|
|
|
|
|
|
$map['create_time'] = array('elt',strtotime(I('end'))+24*60*60-1);
|
|
|
|
|
|
}
|
|
|
|
|
|
if(isset($_REQUEST['type'])){
|
|
|
$map['type'] = $_REQUEST['type'];
|
|
|
}
|
|
|
if(is_numeric($_REQUEST['status']) && $_REQUEST['status']>=0 && $_REQUEST['status']<3) {$map['status'] = $_REQUEST['status'];}
|
|
|
else {$map['status']=array('egt',0);}
|
|
|
|
|
|
if(is_numeric($_REQUEST['t']) && $_REQUEST['t']>0 && $_REQUEST['t']<5) { $map['type'] = array('like',$_REQUEST['t'].'%'); }
|
|
|
|
|
|
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
$data=M('Check','tab_')
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
|
|
|
$v['status']=trim(get_info_status($v['status'],40));
|
|
|
$v['type']=trim(get_bug_name_by_id($v['type']));
|
|
|
|
|
|
$v['url']=!empty(trim($v['url']))?($_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].trim($v['url'])):'';
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 商务专员列表
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function business_affairs_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','编号'),
|
|
|
array('account','商务专员账号'),
|
|
|
array('sw_name','姓名'),
|
|
|
array('phone','联系电话'),
|
|
|
array('qq','QQ号'),
|
|
|
array('inferiors','旗下推广员数'),
|
|
|
array('create_time','创建时间'),
|
|
|
array('status','状态'),
|
|
|
);
|
|
|
|
|
|
if (isset($_REQUEST['account'])) {
|
|
|
$map['account'] = $_REQUEST['account'];
|
|
|
unset($_REQUEST['account']);
|
|
|
}
|
|
|
if (isset($_REQUEST['status'])) {
|
|
|
$map['status'] = $_REQUEST['status'];
|
|
|
unset($_REQUEST['status']);
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
$data=M('business_affairs','tab_')
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
|
|
|
|
|
|
$v['status']=trim(get_info_status($v['status'],30));
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 平台币发放
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function promote_coin_send_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('promote_account','推广员账号'),
|
|
|
array('promote_type','推广员等级'),
|
|
|
array('banlan_type','发放类型'),
|
|
|
array('num','发放数量'),
|
|
|
array('create_time','发放时间'),
|
|
|
array('op_account','发放人员'),
|
|
|
);
|
|
|
|
|
|
if(empty($_REQUEST['promote_id']&&$_REQUEST['promote_type'])){
|
|
|
$map['type'] = 1;
|
|
|
$map['source_id'] = 0;
|
|
|
}else{
|
|
|
$map['promote_id'] = $_REQUEST['promote_id'];
|
|
|
$map['promote_type'] = $_REQUEST['promote_type'];
|
|
|
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
$promotecoin = M('PromoteCoin','tab_');
|
|
|
|
|
|
$data=$promotecoin
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
|
|
|
|
|
|
$v['promote_account']=trim(get_promote_account($v['promote_id']));
|
|
|
$v['promote_type']=trim(get_info_status($v['promote_type'],20));
|
|
|
$v['banlan_type']=trim(get_banlan_type($v['banlan_type']));
|
|
|
$v['op_account']=trim(get_nickname($v['op_id']));
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 平台币收回
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function deduct_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
if($_REQUEST['type']==2) {
|
|
|
$xlsCell = array(
|
|
|
array('promote_account','所属推广员'),
|
|
|
array('promote_type','推广员等级'),
|
|
|
array('num','收回数量'),
|
|
|
array('create_time','收回时间'),
|
|
|
array('op_account','收回人员'),
|
|
|
);
|
|
|
$map['type'] = 2;
|
|
|
$map['source_id'] = 0;
|
|
|
if(isset($_REQUEST['promote_id'])) {
|
|
|
$map['promote_id'] = $_REQUEST['promote_id'];
|
|
|
}
|
|
|
if(isset($_REQUEST['promote_type'])) {
|
|
|
$map['promote_type'] = $_REQUEST['promote_type'];
|
|
|
}
|
|
|
|
|
|
$model = M('PromoteCoin','tab_');
|
|
|
}else {
|
|
|
$xlsCell = array(
|
|
|
array('user_account','玩家账号'),
|
|
|
array('coin_type','收回类型'),
|
|
|
array('num','收回数量'),
|
|
|
array('create_time','收回时间'),
|
|
|
array('op_account','收回人员'),
|
|
|
);
|
|
|
$model = M('user_coin','tab_');
|
|
|
if(isset($_GET['account'])){
|
|
|
$map['user_account']= array('like','%'.I('account').'%') ;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
if($_REQUEST['type']==2) {
|
|
|
foreach($data as $k => $v) {
|
|
|
$v['create_time'] = date('Y-m-d H:i',$v['create_time']);
|
|
|
$v['op_account']=trim(get_nickname($v['op_id']));
|
|
|
$v['promote_account']=trim(get_promote_account($v['promote_id']));
|
|
|
$v['promote_type']=trim(get_info_status($v['promote_type'],20));
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
foreach($data as $k => $v) {
|
|
|
$v['create_time'] = date('Y-m-d H:i',$v['create_time']);
|
|
|
$v['op_account']=trim(get_nickname($v['op_id']));
|
|
|
$v['coin_type'] = '平台币';
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 绑币收回
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function deduct_bind_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('user_account','玩家账号'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('coin_type','收回类型'),
|
|
|
array('quantity','收回数量'),
|
|
|
array('create_time','收回时间'),
|
|
|
array('execute_account','收回人员'),
|
|
|
);
|
|
|
|
|
|
$model = M('DeductBindRecord','tab_');
|
|
|
|
|
|
if(isset($_GET['account'])){
|
|
|
$map['user_account']= array('like','%'.I('account').'%') ;
|
|
|
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
$v['create_time'] = date('Y-m-d H:i',$v['create_time']);
|
|
|
|
|
|
$v['coin_type'] = '绑定平台币';
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 返利设置
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function rebate_set_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('promote_account','返利对象'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('status','金额限制状态'),
|
|
|
array('money','金额限制'),
|
|
|
array('ratio','返利比例'),
|
|
|
array('time','返利周期'),
|
|
|
array('create_time','添加时间'),
|
|
|
);
|
|
|
|
|
|
$model = M('rebate','tab_');
|
|
|
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
if($_REQUEST['game_name']=='全部'){
|
|
|
}else{
|
|
|
$map['game_name'] = $_REQUEST['game_name'];
|
|
|
}
|
|
|
}
|
|
|
if(isset($_REQUEST['status'])){
|
|
|
if($_REQUEST['status']=='全部'){
|
|
|
}else{
|
|
|
$map['status'] = $_REQUEST['status'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
$v['create_time'] = date('Y-m-d H:i',$v['create_time']);
|
|
|
|
|
|
$v['promote_account'] = ($v['promote_id']==1)?'推广渠道':(($v['promote_id']==0)?'官方渠道':'全站玩家');
|
|
|
|
|
|
$v['status'] = get_info_status($v['status']);
|
|
|
$v['ratio'] = ratio_stytl($v['ratio']);
|
|
|
|
|
|
$v['time'] = set_show_time($v['starttime'],'','forever') .'至'.set_show_time($v['endtime'],'','forever');
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 折扣设置
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function promote_welfare_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
$model = M('PromoteWelfare','tab_');
|
|
|
|
|
|
if(isset($_REQUEST['game_id']) ){
|
|
|
$map['game_id'] = $_REQUEST['game_id'];
|
|
|
}
|
|
|
if(isset($_REQUEST['promote_id']) ){
|
|
|
$map['promote_id'] = $_REQUEST['promote_id'];
|
|
|
}
|
|
|
|
|
|
if($_REQUEST['type']==2) {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('discount_obj_name','折扣对象'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('first_discount','首充折扣'),
|
|
|
array('continue_discount','续充折扣'),
|
|
|
array('create_time','设置时间'),
|
|
|
array('op_account','设置人员'),
|
|
|
array('promote_status','首充状态'),
|
|
|
array('cont_status','续充状态'),
|
|
|
);
|
|
|
|
|
|
|
|
|
$map['status'] = 2;
|
|
|
$show_status = 1;
|
|
|
if(isset($_REQUEST['promote_status']) ){
|
|
|
$map['promote_status'] = $_REQUEST['promote_status'];
|
|
|
}
|
|
|
if(isset($_REQUEST['cont_status']) ){
|
|
|
$map['cont_status'] = $_REQUEST['cont_status'];
|
|
|
}
|
|
|
} else {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('promote_account','推广员账号'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('game_discount','统一折扣'),
|
|
|
array('promote_discount','推广员折扣'),
|
|
|
array('create_time','设置时间'),
|
|
|
array('op_account','设置人员'),
|
|
|
array('recharge_status','折扣状态'),
|
|
|
);
|
|
|
|
|
|
|
|
|
$map['status'] = 1;
|
|
|
if(isset($_REQUEST['recharge_status']) ){
|
|
|
$map['recharge_status'] = $_REQUEST['recharge_status'];
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
if($_REQUEST['type']==2) {
|
|
|
foreach($data as $k => $v) {
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
|
|
|
$v['promote_status'] = get_info_status($v['promote_status']);
|
|
|
$v['cont_status'] = get_info_status($v['cont_status']);
|
|
|
$v['discount_obj_name'] = get_discount_obj_name($v['promote_id']);
|
|
|
$v['op_account'] = get_admin_name($v['op_id']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
foreach($data as $k => $v) {
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
|
|
|
$v['recharge_status'] = get_info_status($v['recharge_status']);
|
|
|
|
|
|
$v['promote_account'] = get_promote_name($v['promote_id']);
|
|
|
$v['op_account'] = get_admin_name($v['op_id']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 游戏列表
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function game_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
$model = M('game','tab_');
|
|
|
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
$extend['game_name'] = ['like', "{$_REQUEST['game_name']}%"];
|
|
|
}
|
|
|
if(isset($_REQUEST['sdk_version1'])){
|
|
|
$map['sdk_version']=$_REQUEST['sdk_version1'];
|
|
|
}
|
|
|
if(isset($_REQUEST['recommend_status'])){
|
|
|
$map['recommend_status']=$_REQUEST['recommend_status'];
|
|
|
}
|
|
|
if(isset($_REQUEST['game_status'])){
|
|
|
$map['game_status']=$_REQUEST['game_status'];
|
|
|
}
|
|
|
if(isset($_REQUEST['apply_status'])){
|
|
|
$map['apply_status']=$_REQUEST['apply_status'];
|
|
|
}
|
|
|
if(isset($_REQUEST['online_status'])){
|
|
|
$map['online_status']=$_REQUEST['online_status'];
|
|
|
}
|
|
|
|
|
|
if($_REQUEST['type']==2) {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','游戏ID'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('sdk_version','运营平台'),
|
|
|
array('game_type','游戏类型'),
|
|
|
array('developers','游戏来源'),
|
|
|
array('sort','排序'),
|
|
|
array('apply_status','审核状态'),
|
|
|
array('game_status','显示状态'),
|
|
|
array('online_status','上线状态'),
|
|
|
array('create_time','添加时间'),
|
|
|
);
|
|
|
|
|
|
|
|
|
$map['developers'] = array('GT',0);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','游戏ID'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('sdk_version','运营平台'),
|
|
|
array('game_type','游戏类型'),
|
|
|
array('game_appid','游戏Appid'),
|
|
|
array('recommend_status','推荐状态'),
|
|
|
array('game_status','显示状态'),
|
|
|
array('dow_num','下载次数'),
|
|
|
array('sort','排序'),
|
|
|
array('relation_game','关联'),
|
|
|
/* array('relation_game_id','关联游戏编号'), */
|
|
|
);
|
|
|
|
|
|
|
|
|
$map['developers'] = array('EQ',0);
|
|
|
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('sort desc, id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
if($_REQUEST['type']==2) {
|
|
|
foreach($data as $k => $v) {
|
|
|
$v['create_time'] = date('Y-m-d',$v['create_time']);
|
|
|
$v['sdk_version'] = get_systems_name($v['sdk_version']);
|
|
|
$v['game_type'] = get_game_type_name($v['game_type_id']);
|
|
|
$v['developers'] = get_developer_name($v['developers']);
|
|
|
$v['apply_status'] = get_info_status($v['apply_status'],5);
|
|
|
if($v['apply_status'] > 0) {
|
|
|
$v['online_status'] = empty($v['online_status'])?'已下线':'上线';
|
|
|
$v['game_status'] = empty($v['game_status'])?'已关闭':'已开启';
|
|
|
} else {
|
|
|
$v['online_status']='--';
|
|
|
$v['game_status']='--';
|
|
|
}
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['sdk_version'] = get_systems_name($v['sdk_version']);
|
|
|
|
|
|
$v['game_type'] = get_game_type_name($v['game_type_id']);
|
|
|
$v['recommend_status'] = get_info_status($v['recommend_status'],1);
|
|
|
$v['game_status'] = empty($v['game_status'])?'已关闭':'已开启';
|
|
|
|
|
|
$v['relation_game'] = get_relation_game($v['id'],$v['relation_game_id'])?'已关联':'未关联';
|
|
|
/* $v['relation_game_id'] = $v['relation_game_id']>0?$v['relation_game_id']:'--'; */
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 游戏类型
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function game_type_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
|
|
|
if($_REQUEST['type']==2) {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('open_name','类型名称'),
|
|
|
array('status','显示状态'),
|
|
|
array('op_nickname','添加人员'),
|
|
|
array('create_time','添加时间'),
|
|
|
);
|
|
|
|
|
|
$model = M('Opentype','tab_');
|
|
|
|
|
|
if(isset($_REQUEST['status_show'])){
|
|
|
if($_REQUEST['status_show']!='all'){
|
|
|
$map['status'] = $_REQUEST['status_show'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('type_name','游戏类型'),
|
|
|
array('status_show','显示状态'),
|
|
|
array('op_nickname','添加人员'),
|
|
|
array('create_time','添加时间'),
|
|
|
);
|
|
|
|
|
|
$model = M('GameType','tab_');
|
|
|
|
|
|
if(isset($_REQUEST['status_show'])){
|
|
|
if($_REQUEST['status_show']!='all'){
|
|
|
$map['status_show'] = $_REQUEST['status_show'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
if($_REQUEST['type']==2) {
|
|
|
foreach($data as $k => $v) {
|
|
|
$v['create_time'] = date('Y-m-d H:i',$v['create_time']);
|
|
|
|
|
|
$v['status'] = '已' . get_info_status($v['status']);
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['create_time'] = date('Y-m-d H:i',$v['create_time']);
|
|
|
|
|
|
$v['status_show'] = '已' . get_info_status($v['status_show']);
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 游戏原包
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function game_source_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
$map['game_name']=array('like','%'.$_REQUEST['game_name'].'%');
|
|
|
}
|
|
|
if(isset($_REQUEST['sdk_version1'])){
|
|
|
$map['file_type']=$_REQUEST['sdk_version1'];
|
|
|
}
|
|
|
|
|
|
$model = M('GameSource','tab_');
|
|
|
|
|
|
if($_REQUEST['type']==2) {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('developer_account','开发者账号'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('file_type','运营平台'),
|
|
|
array('file_name','游戏包名'),
|
|
|
array('version','游戏版本'),
|
|
|
array('file_size','原包大小'),
|
|
|
array('pay_notify_url','支付通知地址'),
|
|
|
array('create_time','上传时间'),
|
|
|
);
|
|
|
|
|
|
|
|
|
$map['develop_id'] = array('NEQ',0);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('game_name','游戏名称'),
|
|
|
array('file_name','原包名称'),
|
|
|
array('file_type','运营平台'),
|
|
|
array('file_size','原包大小'),
|
|
|
array('file_url','原包路径'),
|
|
|
array('version','原包版本'),
|
|
|
array('op_account','操作人员'),
|
|
|
array('create_time','操作时间'),
|
|
|
);
|
|
|
|
|
|
$map['develop_id'] = 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
if($_REQUEST['type']==2) {
|
|
|
foreach($data as $k => $v) {
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
|
|
|
$v['file_type'] = get_systems_name($v['file_type']);
|
|
|
$v['developer_account'] = get_developer_account($v['develop_id']);
|
|
|
$v['pay_notify_url'] = get_game_set_field($v['game_id'],'pay_notify_url');
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
|
|
|
$v['file_type'] = get_systems_name($v['file_type']);
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 自建官网
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function selfbuilt_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
$model = M('Selfbuilt');
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','编号'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('webname','官网名称'),
|
|
|
array('template','模板名称'),
|
|
|
array('weburl','域名'),
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['create_time'] = date('Y-m-d H:i',$v['create_time']);
|
|
|
|
|
|
$v['game_name'] = get_gamename($v['gameid']);
|
|
|
$v['template'] = get_tepname($v['templateid']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 区服列表
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function server_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
if(isset($_REQUEST['show_status'])){
|
|
|
$map['show_status']=$_REQUEST['show_status'];
|
|
|
}
|
|
|
if(isset($_REQUEST['server_version'])){
|
|
|
$map['server_version']=$_REQUEST['server_version'];
|
|
|
}
|
|
|
if(isset($_REQUEST['timestart']) && isset($_REQUEST['timeend'])){
|
|
|
$map['start_time'] = array('BETWEEN',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+24*60*60-1));
|
|
|
}elseif(isset($_REQUEST['timestart'])){
|
|
|
$map['start_time']=array('EGT',strtotime($_REQUEST['timestart']));
|
|
|
}elseif(isset($_REQUEST['timeend'])){
|
|
|
$map['start_time']=array('ELT',strtotime($_REQUEST['timeend']));
|
|
|
}
|
|
|
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
if($_REQUEST['game_name']=='全部'){
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}else{
|
|
|
$map['server_version']=$_REQUEST['server_version'];
|
|
|
$map['game_name']=['like', "{$_REQUEST['game_name']}%"];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(isset($_REQUEST['server_name'])){
|
|
|
$map['server_name']=$_REQUEST['server_name'];
|
|
|
unset($_REQUEST['server_name']);
|
|
|
}
|
|
|
$model = M('Server','tab_');
|
|
|
|
|
|
if($_REQUEST['type']==2) {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('developer_account','开发者账号'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('server_name','区服名称'),
|
|
|
array('server_version','运营平台'),
|
|
|
array('show_status','显示状态'),
|
|
|
array('start_time','开服时间'),
|
|
|
);
|
|
|
|
|
|
|
|
|
$map['developers'] = array('NEQ',0);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('game_name','游戏名称'),
|
|
|
array('server_name','区服名称'),
|
|
|
array('server_version','运营平台'),
|
|
|
array('show_status','显示状态'),
|
|
|
array('start_time','开服时间'),
|
|
|
);
|
|
|
|
|
|
$map['developers'] = 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
if($_REQUEST['type']==2) {
|
|
|
foreach($data as $k => $v) {
|
|
|
$v['start_time'] = date('Y-m-d H:i:s',$v['start_time']);
|
|
|
|
|
|
$v['show_status'] = $v['show_status']==1?'已开启':'已关闭';
|
|
|
$v['developer_account'] = get_developer_account($v['developers']);
|
|
|
$v['server_version'] = get_systems_name($v['server_version']);
|
|
|
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['start_time'] = date('Y-m-d H:i:s',$v['start_time']);
|
|
|
|
|
|
$v['show_status'] = $v['show_status']==1?'已开启':'已关闭';
|
|
|
$v['server_version'] = get_systems_name($v['server_version']);
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 礼包列表
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function giftbag_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
if(isset($_REQUEST['timestart'])&&isset($_REQUEST['timeend'])){
|
|
|
$map['create_time'] =array('BETWEEN',array(strtotime($_REQUEST['timestart']),strtotime($_REQUEST['timeend'])+24*60*60-1));
|
|
|
}elseif(isset($_REQUEST['timestart'])){
|
|
|
$map['create_time']=array('egt',strtotime($_REQUEST['timestart']));
|
|
|
}elseif(isset($_REQUEST['timeend'])){
|
|
|
$map['create_time']=array('elt',strtotime($_REQUEST['timeend'])+24*60*60-1);
|
|
|
}
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
if($_REQUEST['game_name']=='全部'){
|
|
|
}else{
|
|
|
$map['game_name']=$_REQUEST['game_name'];
|
|
|
}
|
|
|
}
|
|
|
if(isset($_REQUEST['giftbag_name'])){
|
|
|
$map['giftbag_name']=array('like','%'.$_REQUEST['giftbag_name'].'%');
|
|
|
}
|
|
|
if(isset($_REQUEST['status'])){
|
|
|
if($_REQUEST['status']=='全部'){
|
|
|
}else{
|
|
|
$map['status']=$_REQUEST['status'];
|
|
|
}
|
|
|
}
|
|
|
if(isset($_REQUEST['giftbag_version'])){
|
|
|
if($_REQUEST['giftbag_version']=='全部'){
|
|
|
}else{
|
|
|
$map['giftbag_version']=$_REQUEST['giftbag_version'];
|
|
|
}
|
|
|
}
|
|
|
if(isset($_REQUEST['developers'])){
|
|
|
$map['developers']=$_REQUEST['developers'];
|
|
|
}
|
|
|
|
|
|
|
|
|
$model = M('Giftbag','tab_');
|
|
|
|
|
|
if($_REQUEST['type']==2) {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('developer_account','开发者账号'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('giftbag_name','礼包名称'),
|
|
|
array('giftbag_version','运营平台'),
|
|
|
array('novice_num','礼包总数'),
|
|
|
array('surplus','剩余数量'),
|
|
|
array('status','显示状态'),
|
|
|
array('create_time','更新时间'),
|
|
|
array('time','有效时间'),
|
|
|
);
|
|
|
|
|
|
|
|
|
$map['developers'] = array('NEQ',0);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('game_name','游戏名称'),
|
|
|
array('giftbag_name','礼包名称'),
|
|
|
array('giftbag_version','运营平台'),
|
|
|
array('novice_num','礼包总数'),
|
|
|
array('surplus','剩余数量'),
|
|
|
array('status','显示状态'),
|
|
|
array('create_time','更新时间'),
|
|
|
array('time','有效时间'),
|
|
|
);
|
|
|
|
|
|
$map['developers'] = 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('create_time desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
if($_REQUEST['type']==2) {
|
|
|
foreach($data as $k => $v) {
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
|
|
|
$v['status'] = $v['status']==1?'已开启':'已关闭';
|
|
|
$v['developer_account'] = get_developer_account($v['developers']);
|
|
|
$v['giftbag_version'] = get_systems_name($v['giftbag_version']);
|
|
|
|
|
|
|
|
|
$v['time'] = set_show_time($v['start_time'],'date') .'至'.set_show_time($v['end_time'],'date','forever');
|
|
|
$v['surplus'] = arr_count($v['novice']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
|
|
|
$v['status'] = $v['status']==1?'已开启':'已关闭';
|
|
|
$v['giftbag_version'] = get_systems_name($v['giftbag_version']);
|
|
|
$v['time'] = set_show_time($v['start_time'],'date') .'至'.set_show_time($v['end_time'],'date','forever');
|
|
|
$v['surplus'] = arr_count($v['novice']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 推广员列表
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function promote_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
if($_REQUEST['type']==2) {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','编号'),
|
|
|
array('promote_account','推广员账号'),
|
|
|
array('url_type','站点来源'),
|
|
|
array('site_url','站点链接'),
|
|
|
array('status','审核状态'),
|
|
|
array('create_time','创建时间'),
|
|
|
);
|
|
|
|
|
|
$model = M('SiteApply','tab_');
|
|
|
|
|
|
if(isset($_REQUEST['promote_id'])){
|
|
|
$map['promote_id']=$_REQUEST['promote_id'];
|
|
|
}
|
|
|
if(isset($_REQUEST['url_type'])){
|
|
|
$map['url_type']=$_REQUEST['url_type'];
|
|
|
}
|
|
|
if(isset($_REQUEST['status'])){
|
|
|
$map['status']=$_REQUEST['status'];
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','推广员ID'),
|
|
|
array('account','推广员账号'),
|
|
|
array('mobile_phone','手机号码'),
|
|
|
array('balance_coin','平台币余额'),
|
|
|
array('total_money','总流水'),
|
|
|
array('create_time','注册时间'),
|
|
|
array('last_login_time','最后登录时间'),
|
|
|
array('promote_levels','渠道类型'),
|
|
|
array('grand_account','上线推广员'),
|
|
|
array('business_affairs','商务专员'),
|
|
|
array('status','状态'),
|
|
|
);
|
|
|
|
|
|
$model = M('Promote','tab_');
|
|
|
|
|
|
if(isset($_REQUEST['promote_id'])){
|
|
|
$map['id']=$_REQUEST['promote_id'];
|
|
|
}
|
|
|
if(isset($_REQUEST['admin_id'])){
|
|
|
if($_REQUEST['admin_id']=="全部"){
|
|
|
}else{
|
|
|
$map['ba_id']=$_REQUEST['admin_id'];
|
|
|
}
|
|
|
}
|
|
|
if (isset($_REQUEST['parent_id'])) {
|
|
|
if ($_REQUEST['parent_id']=='全部') {
|
|
|
unset($_REQUEST['parent_id']);
|
|
|
}
|
|
|
$zid=get_zi_promote_id($_REQUEST['parent_id']);
|
|
|
if($zid){
|
|
|
$zid=$zid.','.$_REQUEST['parent_id'];
|
|
|
}else{
|
|
|
$zid=$_REQUEST['parent_id'];
|
|
|
}
|
|
|
$map['id']=array('in',$zid);
|
|
|
}
|
|
|
$map['level'] = I('promote_level');
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('create_time desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
if($_REQUEST['type']==2) {
|
|
|
foreach($data as $k => $v) {
|
|
|
$v['create_time'] = date('Y-m-d H:i',$v['create_time']);
|
|
|
|
|
|
$v['status'] = $v['status']==1?'已审核':'未审核';
|
|
|
$v['url_type'] = get_info_status($v['url_type'],24);
|
|
|
$v['promote_account'] = get_promote_account($v['promote_id']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['create_time'] = date('Y-m-d H:i',$v['create_time']);
|
|
|
$v['last_login_time'] = date('Y-m-d H:i',$v['last_login_time']);
|
|
|
|
|
|
$v['status'] = get_info_status($v['status'],3);
|
|
|
$v['business_affairs'] = get_business_affairs_account($v['ba_id']);
|
|
|
$v['grand_account'] = getTopPromote($v['id'])['id'];
|
|
|
$v['promote_levels'] = get_promote_levels($v['id']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 游戏分包列表
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function game_subpackage_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
if($_REQUEST['game_name']=='全部'){
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}else{
|
|
|
$map['game_id']=get_game_id($_REQUEST['game_name']);
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
}
|
|
|
if (is_numeric($_REQUEST['game_id']) && $_REQUEST['game_id']>0) {
|
|
|
$map['game_id'] = $_REQUEST['game_id'];
|
|
|
unset($_REQUEST['game_id']);
|
|
|
}
|
|
|
if (is_numeric($_REQUEST['promote_id']) && $_REQUEST['promote_id']>0) {
|
|
|
$map['tab_apply.promote_id'] = $_REQUEST['promote_id'];
|
|
|
unset($_REQUEST['promote_id']);
|
|
|
}
|
|
|
if(isset($_REQUEST['promote_account'])){
|
|
|
$map['account']=get_promote_id($_REQUEST['promote_account']);
|
|
|
unset($_REQUEST['promote_account']);
|
|
|
}
|
|
|
if(isset($_REQUEST['status'])){
|
|
|
if($_REQUEST['status']=='全部'){
|
|
|
unset($_REQUEST['status']);
|
|
|
}else{
|
|
|
$map['status']=$_REQUEST['status'];
|
|
|
unset($_REQUEST['status']);
|
|
|
}
|
|
|
}
|
|
|
if(isset($_REQUEST['enable_status'])){
|
|
|
if($_REQUEST['enable_status']=='全部'){
|
|
|
unset($_REQUEST['enable_status']);
|
|
|
}elseif($_REQUEST['enable_status']==0){
|
|
|
//$map['dow_url'] = '';
|
|
|
$map['enable_status'] = $_REQUEST['enable_status'];
|
|
|
unset($_REQUEST['enable_status']);
|
|
|
}else{
|
|
|
//$map['dow_url']=array('neq','');
|
|
|
$map['enable_status'] = $_REQUEST['enable_status'];
|
|
|
unset($_REQUEST['enable_status']);
|
|
|
}
|
|
|
}
|
|
|
if(isset($_REQUEST['dow_status'])){
|
|
|
if($_REQUEST['dow_status']=='全部'){
|
|
|
unset($_REQUEST['dow_status']);
|
|
|
}else{
|
|
|
$map['tab_apply.dow_status']=$_REQUEST['dow_status'];
|
|
|
unset($_REQUEST['dow_status']);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$model = M('Apply','tab_');
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('promote_account','推广员账号'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('launch_count','投放平台'),
|
|
|
array('apply_time','申请时间'),
|
|
|
array('status','审核状态'),
|
|
|
array('enable_status','打包状态'),
|
|
|
array('dispose_time','审核时间'),
|
|
|
array('dow_status','下载状态'),
|
|
|
array('ratio','分成比例'),
|
|
|
array('money','注册单价'),
|
|
|
);
|
|
|
|
|
|
if($_REQUEST['type']==2) {
|
|
|
|
|
|
$map['tab_apply.sdk_version']= 2;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$map['tab_apply.sdk_version']= 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
$type = $_REQUEST['type'] || 1;
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->field('tab_apply.*,tab_game.ratio as game_ratio,tab_game.money as game_money')
|
|
|
->join('LEFT JOIN tab_game ON tab_apply.game_id = tab_game.id')
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
$launchmodel = M('apply_launch','tab_');
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['apply_time'] = date('Y-m-d H:i',$v['apply_time']);
|
|
|
$v['dispose_time'] = $v['dispose_time']>0?date('Y-m-d H:i:s',$v['dispose_time']):'--';
|
|
|
|
|
|
$v['status'] = get_info_status($v['status'],5);
|
|
|
$v['promote_account'] = get_promote_name($v['promote_id']);
|
|
|
$v['game_name'] = get_game_name($v['game_id']);
|
|
|
|
|
|
|
|
|
$ratio = is_null($v['promote_ratio'])?$v['game_ratio']:$v['promote_ratio'];
|
|
|
$ratio || $ratio = 0;
|
|
|
|
|
|
$money = is_null($v['promote_money'])?$v['game_money']:$v['promote_money'];
|
|
|
$money || $money = 0;
|
|
|
|
|
|
$v['ratio']=$ratio;
|
|
|
$v['money']=$money;
|
|
|
|
|
|
if($type==2) {
|
|
|
$v['dow_status'] = $v['dow_status']==1?'已开启':'已关闭';
|
|
|
}else{
|
|
|
$v['dow_status'] = empty($v['pack_url'])?'已关闭':($v['dow_status']==1?'已开启':'已关闭');
|
|
|
}
|
|
|
|
|
|
$v['enable_status'] = $v['enable_status']==1?'打包成功':($v['enable_status']==2?'准备打包':($v['enable_status']==3?'打包中':($v['enable_status']==-1?'打包失败':'未打包')));
|
|
|
|
|
|
$v['launch_count']=0;
|
|
|
|
|
|
$v['launch_count'] = $launchmodel->where(['apply_id'=>$v['id']])->count();
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 游戏盒子分包列表
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function app_subpackage_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
"" == I('status') || $map['status'] = I('status');
|
|
|
"" == I('promote_id') || $map['promote_id'] = I('promote_id');
|
|
|
"" == I('enable_status') || $map['enable_status'] = I('enable_status');
|
|
|
|
|
|
|
|
|
$model = M('app_apply','tab_');
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('promote_account','推广员账号'),
|
|
|
array('app_name','APP名称'),
|
|
|
array('apply_time','申请时间'),
|
|
|
array('status','审核状态'),
|
|
|
array('enable_status','打包状态'),
|
|
|
array('dispose_account','审核人员'),
|
|
|
array('dispose_time','审核时间'),
|
|
|
);
|
|
|
|
|
|
if($_REQUEST['type']==2) {
|
|
|
|
|
|
$map['app_version'] = 2;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$map['app_version'] = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
$type = $_REQUEST['type'] || 1;
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('apply_time desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
$launchmodel = M('apply_launch','tab_');
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['apply_time'] = date('Y-m-d H:i',$v['apply_time']);
|
|
|
$v['dispose_time'] = $v['dispose_time']>0?date('Y-m-d H:i:s',$v['dispose_time']):'--';
|
|
|
|
|
|
$v['status'] = get_info_status($v['status'],5);
|
|
|
$v['promote_account'] = get_promote_name($v['promote_id']);
|
|
|
$v['dispose_account'] = $v['dispose_id']>0?get_admin_nickname($v['dispose_id']):'--';
|
|
|
$v['app_name'] = $v['app_version']==1?$v['app_name'].'(安卓)':$v['app_name'].'(IOS)';
|
|
|
|
|
|
$v['enable_status'] = $v['enable_status']==1?'已打包':($v['enable_status']==2?'准备打包':($v['enable_status']==3?'打包中':($v['enable_status']==-1?'打包失败':'未打包')));
|
|
|
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 推广补链
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function mend_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
$model = M('user','tab_');
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('account','玩家账号'),
|
|
|
array('register_time','注册时间'),
|
|
|
array('login_time','最后登录时间'),
|
|
|
array('register_type','注册来源'),
|
|
|
array('register_ip','注册IP'),
|
|
|
array('login_time','上次登录'),
|
|
|
array('top_promote','所属推广员'),
|
|
|
);
|
|
|
|
|
|
if(isset($_REQUEST['account'])){
|
|
|
if ($_REQUEST['account']=='全部') {
|
|
|
unset($_REQUEST['account']);
|
|
|
}
|
|
|
$map['account']=array('like','%'.$_REQUEST['account'].'%');
|
|
|
unset($_REQUEST['account']);
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['register_time'] = date('Y-m-d H:i:s',$v['register_time']);
|
|
|
$v['login_time'] = $v['login_time']>0?date('Y-m-d H:i:s',$v['login_time']):'暂无登录';
|
|
|
|
|
|
$v['register_type'] = get_registertype($v['register_type']);
|
|
|
|
|
|
$promote = get_parent_promoteto($v['promote_id']);
|
|
|
|
|
|
$v['top_promote'] = $promote?($v['promote_account'] . get_parent_promoteto($v['promote_id'])):get_promote_name($v['promote_id']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 补链记录
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function mend_record_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
$model = M('Mend','tab_');
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('user_account','玩家账号'),
|
|
|
array('promote_account','补链前渠道'),
|
|
|
array('promote_account_to','补链后渠道'),
|
|
|
array('remark','备注'),
|
|
|
array('create_time','补链时间'),
|
|
|
array('op_account','操作人员'),
|
|
|
);
|
|
|
|
|
|
if(isset($_REQUEST['account'])){
|
|
|
if ($_REQUEST['account']=='全部') {
|
|
|
unset($_REQUEST['account']);
|
|
|
}
|
|
|
$map['user_account']=array('like','%'.$_REQUEST['account'].'%');
|
|
|
|
|
|
}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
|
|
|
|
$v['promote_account'] = get_promote_name($v['promote_id']);
|
|
|
$v['promote_account_to'] = get_promote_name($v['promote_id_to']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 平台币转移记录
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function promote_coin_transfer_record_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
$model = M('PromoteCoin','tab_');
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('promote_account','一级推广员'),
|
|
|
array('sub_promote_account','二级推广员'),
|
|
|
array('num','转移数量'),
|
|
|
array('create_time','转移时间'),
|
|
|
);
|
|
|
|
|
|
$map['type'] = 2;
|
|
|
$map['source_id'] = ['neq',0];
|
|
|
|
|
|
if(isset($_REQUEST['source_id'])) {$map['source_id'] = $_REQUEST['source_id'];}
|
|
|
if(isset($_REQUEST['promote_id'])) {$map['promote_id'] = $_REQUEST['promote_id'];}
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['create_time'] = date('Y-m-d H:i',$v['create_time']);
|
|
|
|
|
|
$v['promote_account'] = get_promote_name($v['promote_id']);
|
|
|
$v['sub_promote_account'] = get_promote_name($v['source_id']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 角色权限
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function auth_manager() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
$model = M('AuthGroup');
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('title','用户组'),
|
|
|
array('description','详情'),
|
|
|
array('status','状态'),
|
|
|
);
|
|
|
|
|
|
$map['module'] = 'admin';
|
|
|
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('id asc')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
if(is_array($data)){
|
|
|
|
|
|
foreach($data as $k => $v) {
|
|
|
|
|
|
$v['description'] = $v['description']?mb_strimwidth($v['description'],0,60,"...","utf-8"):'空';
|
|
|
|
|
|
$v['status']= get_status_title($v['status']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 行为日志
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function actionlog() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
$model = M('ActionLog');
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','编号'),
|
|
|
array('remark','行为'),
|
|
|
array('nickname','管理员账号'),
|
|
|
array('create_time','行为时间'),
|
|
|
array('action_ip','行为IP'),
|
|
|
);
|
|
|
|
|
|
$map['status'] = array('gt', -1);
|
|
|
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('id desc')
|
|
|
->select();
|
|
|
|
|
|
int_to_string($data);
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
foreach ($data as $k=>$v){
|
|
|
$model_id = get_document_field($v['model'],"name","id");
|
|
|
$v['model_id'] = $model_id ? $model_id : 0;
|
|
|
$v['nickname'] = get_nickname($v['user_id']);
|
|
|
$v['create_time'] = time_format($v['create_time']);
|
|
|
$v['action_ip'] = long2ip($v['action_ip']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 站内通知
|
|
|
* @author 鹿文学
|
|
|
*/
|
|
|
public function msg_lists() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
$model = M('Msg','tab_');
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('id','ID'),
|
|
|
array('content','通知内容'),
|
|
|
array('create_time','通知时间'),
|
|
|
array('status','状态'),
|
|
|
);
|
|
|
|
|
|
$map['user_id'] = session('user_auth.uid');
|
|
|
$map['status'] = array('neq','-1');
|
|
|
|
|
|
if(isset($_REQUEST['status'])){
|
|
|
if($_REQUEST['status']=='未读'){
|
|
|
$map['status']=2;
|
|
|
}elseif($_REQUEST['status']=='已读'){
|
|
|
$map['status']=1;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
$page = intval($_REQUEST['p']);
|
|
|
|
|
|
$page = $page?$page:1;
|
|
|
|
|
|
$row = $_REQUEST['row']?$_REQUEST['row']:10;
|
|
|
|
|
|
|
|
|
$data=$model
|
|
|
->where($map)
|
|
|
->order('status desc,id')
|
|
|
->select();
|
|
|
|
|
|
int_to_string($data);
|
|
|
|
|
|
$xlsData = [];
|
|
|
|
|
|
foreach ($data as $k=>$v){
|
|
|
$v['status'] = get_info_status($v['status'],13);
|
|
|
$v['create_time'] = set_show_time($v['create_time']);
|
|
|
|
|
|
$xlsData[] = $v;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function spend_list() {
|
|
|
|
|
|
$xlsName = $_REQUEST['xlsname'];
|
|
|
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('pay_order_number', "订单号"),
|
|
|
array('pay_time', "充值时间"),
|
|
|
array('promote_account', L('Subordinate_channel')),
|
|
|
array('parent_id', "上级推广员"),
|
|
|
array('user_account', "玩家账号"),
|
|
|
array('game_name', "游戏名称"),
|
|
|
array('server_name', L('Game_area_clothing')),
|
|
|
array('game_player_name', "角色名"),
|
|
|
array('spend_ip', "充值ip"),
|
|
|
array('pay_amount', "应付金额"),
|
|
|
array('cost', "实付金额"),
|
|
|
array('pay_way', "充值方式"),
|
|
|
array('promote_id', '商务专员'),
|
|
|
array('is_check','对账状态')
|
|
|
);
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['game_name'])){
|
|
|
if($_REQUEST['game_name']=='全部'){
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}else{
|
|
|
$map['game_name']=$_REQUEST['game_name'];
|
|
|
unset($_REQUEST['game_name']);
|
|
|
}
|
|
|
}
|
|
|
if(!empty($_REQUEST['server_id'])){
|
|
|
$map['server_name']=$_REQUEST['server_id'];
|
|
|
unset($_REQUEST['server_id']);
|
|
|
}
|
|
|
if(!empty($_REQUEST['pay_order_number'])){
|
|
|
$map['pay_order_number']=array('like','%'.$_REQUEST['pay_order_number'].'%');
|
|
|
unset($_REQUEST['pay_order_number']);
|
|
|
}
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['pay_way'])){
|
|
|
$map['pay_way'] = get_pay_way_map($_REQUEST['pay_way']);
|
|
|
unset($_REQUEST['pay_way']);
|
|
|
}
|
|
|
|
|
|
if(isset($_REQUEST['user_account'])){
|
|
|
$map['user_account']=array('like','%'.$_REQUEST['user_account'].'%');
|
|
|
unset($_REQUEST['user_account']);
|
|
|
}
|
|
|
if(isset($_REQUEST['spend_ip'])){
|
|
|
$map['spend_ip']=array('like','%'.$_REQUEST['spend_ip'].'%');
|
|
|
unset($_REQUEST['spend_ip']);
|
|
|
}
|
|
|
|
|
|
if(isset($_REQUEST['time-start'])&&isset($_REQUEST['time-end'])){
|
|
|
$map['pay_time']=array('BETWEEN',array(strtotime($_REQUEST['time-start']),strtotime($_REQUEST['time-end'])+24*60*60-1));
|
|
|
unset($_REQUEST['time-start']);unset($_REQUEST['time_end']);
|
|
|
}elseif(isset($_REQUEST['time-start'])){
|
|
|
$map['pay_time'] = ['GT',strtotime(I('time-start'))];
|
|
|
unset($_REQUEST['time-start']);
|
|
|
}elseif(isset($_REQUEST['time-end'])){
|
|
|
$map['pay_time'] = ['LT',strtotime(I('time-end'))+86399];
|
|
|
unset($_REQUEST['time-end']);
|
|
|
}
|
|
|
if(isset($_REQUEST['start'])&&isset($_REQUEST['end'])){
|
|
|
$map['pay_time']=array('BETWEEN',array(strtotime($_REQUEST['start']),strtotime($_REQUEST['end'])+24*60*60-1));
|
|
|
unset($_REQUEST['start']);unset($_REQUEST['end']);
|
|
|
}elseif(isset($_REQUEST['start'])){
|
|
|
$map['pay_time'] = ['GT',strtotime(I('start'))];
|
|
|
unset($_REQUEST['start']);
|
|
|
}elseif(isset($_REQUEST['end'])){
|
|
|
$map['pay_time'] = ['LT',strtotime(I('end'))+86399];
|
|
|
unset($_REQUEST['end']);
|
|
|
}
|
|
|
|
|
|
if(isset($_REQUEST['promote_name'])){
|
|
|
if($_REQUEST['promote_name']=='全部'){
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
}else if($_REQUEST['promote_name']=='自然注册'){
|
|
|
$map['promote_id']=array("lte",0);
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
}else{
|
|
|
$map['promote_id']=get_promote_id($_REQUEST['promote_name']);
|
|
|
unset($_REQUEST['promote_name']);
|
|
|
if(!empty(I('parent_id')) && $map['promote_id']){
|
|
|
|
|
|
if(I('parent_id') == $map['promote_id']) {
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
$parent_id = I('parent_id');
|
|
|
$pro = M('promote','tab_')->field('id')->where("id={$map['promote_id']} and chain like '%/{$parent_id}/%'")->select();
|
|
|
|
|
|
if(!$pro) {
|
|
|
$map['promote_id'] = array('eq',999999999);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
$pro = M('promote','tab_')->field('id')->where("chain like '%/{$map['promote_id']}/%'")->select();
|
|
|
$pro_ids = array_column($pro,'id');
|
|
|
$pro_ids[] = $map['promote_id'];
|
|
|
if (!empty($pro_ids)){
|
|
|
$map['promote_id'] = ['in',$pro_ids];
|
|
|
}else{
|
|
|
$map['promote_id'] = array('eq',999999999);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
if(!empty(I('parent_id'))){
|
|
|
$parent_id = I('parent_id');
|
|
|
$pro = M('promote','tab_')->field('id')->where("chain like '%/{$parent_id}/%'")->select();
|
|
|
$pro_ids = array_column($pro,'id');
|
|
|
$pro_ids[] = I('parent_id');
|
|
|
if (!empty($pro_ids)){
|
|
|
$map['promote_id'] = ['in',$pro_ids];
|
|
|
}else{
|
|
|
$map['promote_id'] = array('eq',999999999);
|
|
|
}
|
|
|
} else {
|
|
|
$map['promote_id']=array("gt",0);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
if(isset($_REQUEST['ba_id'])){
|
|
|
$all_promote_id = array_column(get_admin_promotes($_REQUEST['ba_id'],'ba_id'),'id');
|
|
|
if(empty($all_promote_id)){
|
|
|
$all_promote_id[]=-1;
|
|
|
}
|
|
|
|
|
|
$map['promote_id']=array($map['promote_id'],array('in',implode(',',$all_promote_id)),'and');
|
|
|
}
|
|
|
|
|
|
$map['tab_spend.pay_status'] = 1;
|
|
|
|
|
|
|
|
|
$xlsData = D('Spend')
|
|
|
// 查询条件
|
|
|
->where($map)
|
|
|
/* 默认通过id逆序排列 */
|
|
|
->order('id desc')
|
|
|
/* 执行查询 */
|
|
|
->select();
|
|
|
|
|
|
foreach ($xlsData as $key => &$value) {
|
|
|
$xlsData[$key]['parent_id'] = get_top_promote($value['promote_id'], $value['parent_id']);
|
|
|
$xlsData[$key]['pay_way'] = get_pay_way($value['pay_way']);
|
|
|
$xlsData[$key]['promote_id'] = get_promote_business_account($value['promote_id']);
|
|
|
$xlsData[$key]['is_check'] = get_info_status($value['is_check'],37);
|
|
|
$xlsData[$key]['pay_time'] = date('Y-m-d H:i:s',$value['pay_time']);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
function exportFinanceIndex() {
|
|
|
|
|
|
$xlsName = '月结统计导出';
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('count_date','月份'),
|
|
|
array('cash_count','游戏现金流水'),
|
|
|
array('balance_coin_deposit','平台币收入'),
|
|
|
array('inside_cash_count','内冲流水'),
|
|
|
array('bind_coin_count','内充支出'),
|
|
|
array('balance_coin_count','平台币支出'),
|
|
|
array('all_count','总流水'),
|
|
|
);
|
|
|
|
|
|
$map = [];
|
|
|
if(!empty(I('count_date'))){
|
|
|
$map['count_date']=I('count_date');
|
|
|
}
|
|
|
|
|
|
// if (!empty(I('game_id'))) {
|
|
|
// $map['game_id']=I('game_id');
|
|
|
// }
|
|
|
// if (!empty(I('collaborate_id'))) {
|
|
|
// $map['collaborate_id']=I('collaborate_id');
|
|
|
// }
|
|
|
//
|
|
|
// if (empty(I('game_id'))) {
|
|
|
// $field = "count_date,sum(cash_count) as cash_count,sum(balance_coin_count) as balance_coin_count,
|
|
|
// sum(inside_cash_count) as inside_cash_count,sum(cash_count+balance_coin_count+inside_cash_count) as all_cash_count";
|
|
|
// $allField = "cash_count+balance_coin_count+inside_cash_count";
|
|
|
// $InsideField = "inside_cash_count";
|
|
|
// } else {
|
|
|
// $field = "count_date,sum(cash_count) as cash_count,sum(balance_coin_count) as balance_coin_count,
|
|
|
// sum(bind_coin_count) as inside_cash_count,sum(cash_count+balance_coin_count+bind_coin_count) as all_cash_count";
|
|
|
// $allField = "cash_count+balance_coin_count+bind_coin_count";
|
|
|
// $InsideField = "bind_coin_count";
|
|
|
// }
|
|
|
// $group = "count_date";
|
|
|
// $order = "id DESC";
|
|
|
// $xlsData = D("spend_count")->getSpendCountData($map,$field,$group,$order);
|
|
|
//
|
|
|
// $sumCash = D("spend_count")->sumSpendCountField($map,"cash_count");
|
|
|
// $sumBalance = D("spend_count")->sumSpendCountField($map,"balance_coin_count");
|
|
|
// $sumInside = D("spend_count")->sumSpendCountField($map,$InsideField);
|
|
|
// $sumAll = D("spend_count")->sumSpendCountField($map,$allField);
|
|
|
$order = "id DESC";
|
|
|
$xlsData = M('spend_month_count','tab_')
|
|
|
->field("cash_count,balance_coin_count,inside_cash_count,all_count,count_date,balance_coin_deposit,bind_coin_count")
|
|
|
->where($map)
|
|
|
->order($order)
|
|
|
->select();
|
|
|
|
|
|
$sumData = M('spend_month_count','tab_')
|
|
|
->field("sum(cash_count) as cash_count,sum(balance_coin_count) as balance_coin_count,sum(inside_cash_count) as inside_cash_count,sum(all_count) as all_count,count_date,sum(balance_coin_deposit) as balance_coin_deposit,sum(bind_coin_count) as bind_coin_count")
|
|
|
->where($map)
|
|
|
->order($order)
|
|
|
->find();
|
|
|
|
|
|
$sumData = [['count_date'=>'总计',
|
|
|
'cash_count'=>$sumData['cash_count'],
|
|
|
'balance_coin_deposit'=>$sumData['balance_coin_deposit'],
|
|
|
'inside_cash_count'=>$sumData['inside_cash_count'],
|
|
|
'bind_coin_count'=>$sumData['bind_coin_count'],
|
|
|
'balance_coin_count'=>$sumData['balance_coin_count'],
|
|
|
'all_count'=>$sumData['all_count']]];
|
|
|
$xlsData = array_merge($xlsData,$sumData);
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
function exportGameFinance() {
|
|
|
|
|
|
|
|
|
$month = I("count_date");
|
|
|
$xlsName = $month.'月结统计导出';
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('game_name','游戏'),
|
|
|
array('partner_name','合作方'),
|
|
|
array('cash_count','游戏现金流水'),
|
|
|
array('balance_coin_count','平台币支出'),
|
|
|
array('inside_cash_count','公会内充支出'),
|
|
|
array('all_cash_count','总流水'),
|
|
|
);
|
|
|
|
|
|
$map = [];
|
|
|
if(!empty(I('count_date'))){
|
|
|
$map['count_date']=I('count_date');
|
|
|
}
|
|
|
|
|
|
if(!empty(I('root_id'))||I('root_id')=='0') {
|
|
|
$root_id = I('root_id');
|
|
|
if ($root_id == '0') {
|
|
|
$map['_string'] = "promote_id = {$root_id}";
|
|
|
} else if($root_id){
|
|
|
$map['_string'] = "promote_id = {$root_id} or chain like '%/{$root_id}/%'";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (!empty(I('root_name'))) {
|
|
|
$map['promote_account'] = array('like','%'.I("root_name").'%');
|
|
|
}
|
|
|
|
|
|
$game_ids = array_column(getGameByName(I("game_name"), I("sdk_type")), 'id');
|
|
|
if ($game_ids) {
|
|
|
$map['game_id'] = ['in', $game_ids];
|
|
|
}
|
|
|
|
|
|
if (!empty(I('partner_id'))) {
|
|
|
$map['partner_id']=I('partner_id');
|
|
|
}
|
|
|
|
|
|
if (I('sign') == 2&&empty(I('root_id'))) {
|
|
|
|
|
|
$map['_string'] = "parent_id >0 or root_id>0";
|
|
|
}
|
|
|
|
|
|
if (I('sign') == 3&&empty(I('root_id'))) {
|
|
|
$map['_string'] = "parent_id >0 and root_id>0";
|
|
|
}
|
|
|
// var_dump($map);die();
|
|
|
|
|
|
if(!empty(I('parent_id'))) {
|
|
|
$parent_id = I('parent_id');
|
|
|
$map['_string'] = "promote_id = {$parent_id} or chain like '%/{$parent_id}/%'";
|
|
|
}
|
|
|
|
|
|
if (!empty(I('promote_id'))) {
|
|
|
$promote_id = I('promote_id');
|
|
|
$map['_string'] = "promote_id = {$promote_id}";
|
|
|
}
|
|
|
|
|
|
|
|
|
$map['inside_cash_count'] = ['neq',0];
|
|
|
$insideData = D("spend_count")->getSpendCountData($map,"game_id,inside_cash_count as count","promote_id,count_date");
|
|
|
unset($map['inside_cash_count']);
|
|
|
//内充流水与绑定流水数据
|
|
|
$insideDataSum = [];
|
|
|
foreach ($insideData as $key => $value) {
|
|
|
if (isset($insideDataSum[$value['game_id']])) {
|
|
|
$insideDataSum[$value['game_id']] = $insideDataSum[$value['game_id']] + $value['count'];
|
|
|
} else {
|
|
|
$insideDataSum[$value['game_id']] = $value['count'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
$field = "count_date,sum(cash_count) as cash_count,sum(balance_coin_count) as balance_coin_count,
|
|
|
sum(inside_cash_count) as inside_cash_count,sum(cash_count+balance_coin_count) as all_cash_count,game_id,game_name,partner_name";
|
|
|
|
|
|
$group = "game_id";
|
|
|
$order = "id DESC";
|
|
|
$xlsData = D("spend_count")->getSpendCountData($map,$field,$group,$order);
|
|
|
|
|
|
foreach ($xlsData as $key => $value) {
|
|
|
$xlsData[$key]['inside_cash_count'] = number_format($insideDataSum[$value['game_id']],2,'.','');
|
|
|
$xlsData[$key]['all_cash_count'] = number_format($insideDataSum[$value['game_id']]+$xlsData[$key]['all_cash_count'],2,'.','');
|
|
|
|
|
|
}
|
|
|
|
|
|
$sumCash = D("spend_count")->sumSpendCountField($map,"cash_count");
|
|
|
$sumBalance = D("spend_count")->sumSpendCountField($map,"balance_coin_count");
|
|
|
$sumInside = number_format(array_sum($insideDataSum),2,'.','');
|
|
|
$sumAll = D("spend_count")->sumSpendCountField($map,"cash_count+balance_coin_count") + array_sum($insideDataSum);
|
|
|
|
|
|
$sumData = [['game_name'=>'总计',
|
|
|
'cash_count'=>$sumCash,
|
|
|
'balance_coin_count'=>$sumBalance,
|
|
|
'inside_cash_count'=>$sumInside,
|
|
|
'all_cash_count'=>$sumAll]];
|
|
|
$xlsData = array_merge($xlsData,$sumData);
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
function gameFinanceDetail() {
|
|
|
|
|
|
set_time_limit(0);
|
|
|
ini_set('memory_limit', '512M');
|
|
|
$month = I("game_name");
|
|
|
$xlsName = $month.'充值流水';
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('pay_order_number','支付订单号'),
|
|
|
array('extend','游戏订单号'),
|
|
|
array('pay_time','充值时间'),
|
|
|
array('user_account','玩家账号'),
|
|
|
array('game_name','游戏名称'),
|
|
|
array('promote_account','所属推广员'),
|
|
|
array('spend_ip','充值ip'),
|
|
|
array('server_name','游戏区服'),
|
|
|
array('game_player_name','角色名称'),
|
|
|
array('cost','订单金额'),
|
|
|
array('pay_amount','实付金额'),
|
|
|
array('pay_way','充值方式'),
|
|
|
);
|
|
|
|
|
|
|
|
|
if (!empty(I("promote_id"))) {
|
|
|
$promote_id[] = I("promote_id");
|
|
|
}
|
|
|
|
|
|
if (!empty(I("root_id"))) {
|
|
|
$root_id = I("root_id");
|
|
|
$promote_id = $this->getPromoteList($root_id);
|
|
|
array_push($promote_id,$root_id);
|
|
|
}
|
|
|
|
|
|
if ($_REQUEST['root_id']=='0') {
|
|
|
$map['promote_id'] = $_REQUEST['root_id'];
|
|
|
}
|
|
|
|
|
|
if (!empty(I("parent_id"))) {
|
|
|
$parent_id = I("parent_id");
|
|
|
$promote_id = $this->getPromoteList($parent_id);
|
|
|
array_push($promote_id,$parent_id);
|
|
|
}
|
|
|
|
|
|
$promote_id = implode(',',$promote_id);
|
|
|
if ($promote_id) {
|
|
|
$map['promote_id'] = ['in',$promote_id];
|
|
|
}
|
|
|
|
|
|
if (!empty(I('partner_id'))&&empty(I("game_id"))) {
|
|
|
$wherePartner = I('partner_id');
|
|
|
$gameId = M("game","tab_")->field("id")->where("partner_id={$wherePartner}")->select();
|
|
|
$gameId = implode(',',array_column($gameId,'id'));
|
|
|
$map['game_id'] = ['in',$gameId];
|
|
|
}
|
|
|
|
|
|
if (!empty(I("count_date"))) {
|
|
|
$month = I("count_date");
|
|
|
$tarry = explode('-',$month);
|
|
|
$startTime=mktime(0,0,0,$tarry[1],1,$tarry[0]);
|
|
|
$endTime =mktime(0,0,0,$tarry[1]-0+1,1,$tarry[0])-1;
|
|
|
$map['pay_time'] = array('between',array($startTime,$endTime));
|
|
|
}
|
|
|
$map['pay_status'] = 1;
|
|
|
if (!empty(I("game_id"))) {
|
|
|
$map['game_id'] = I("game_id");
|
|
|
}
|
|
|
if (!empty(I('user_account'))) {
|
|
|
$map['user_account'] = array('like','%'.I("user_account").'%');
|
|
|
}
|
|
|
if (!empty(I('user_nickname'))) {
|
|
|
$map['user_nickname'] = array('like',I("user_nickname").'%');
|
|
|
}
|
|
|
|
|
|
$field = "pay_order_number,FROM_UNIXTIME(pay_time) as pay_time,user_account,game_name,promote_account,spend_ip,server_name,game_player_name,pay_amount,cost,pay_way,extend";
|
|
|
$group = "";
|
|
|
$order = "pay_time DESC";
|
|
|
for($start = $startTime;$start<$endTime;$start=$start+86400) {
|
|
|
|
|
|
$map['pay_time'] = array('between',array($start,$start+86400));
|
|
|
|
|
|
$xlsData1 = D('spend')->getSpendData($map,$field,$group,$order);
|
|
|
|
|
|
if ($xlsData1) {
|
|
|
$xlsData[date('m-d',$start)] = $xlsData1;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
foreach($xlsData as $key => $value) {
|
|
|
foreach ($value as $k => $v) {
|
|
|
$xlsData[$key][$k]['pay_way'] = getPayType($v['pay_way']);
|
|
|
$xlsData[$key][$k]['extend'] = "'".$v['extend'];
|
|
|
}
|
|
|
}
|
|
|
// dump($xlsData);die();
|
|
|
|
|
|
|
|
|
$map['pay_time'] = array('between',array($startTime,$endTime));
|
|
|
|
|
|
$sum = D('spend')->sumSpend($map,'pay_amount');
|
|
|
|
|
|
$xlsData['10-'] = [['pay_order_number'=>'总计',
|
|
|
'pay_way'=>$sum]];
|
|
|
// $xlsData = array_merge($xlsData,$sumData);
|
|
|
// dump($xlsData);die();
|
|
|
|
|
|
$this->exportNewExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
public function exportNewExcel($expTitle, $expCellName, $expTableData)
|
|
|
{
|
|
|
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
|
|
|
// $fileName = session('user_auth.username').date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
|
|
|
$fileName = $expTitle;
|
|
|
$cellNum = count($expCellName);
|
|
|
$dataNum = count(current($expTableData));
|
|
|
Vendor("PHPExcel.PHPExcel");
|
|
|
$objPHPExcel = new \PHPExcel();
|
|
|
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
|
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1');//合并单元格
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle);
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->setTitle(key($expTableData));
|
|
|
for ($i = 0; $i < $cellNum; $i++) {
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i] . '2', $expCellName[$i][1]);
|
|
|
}
|
|
|
for ($i = 0; $i < $dataNum; $i++) {
|
|
|
for ($j = 0; $j < $cellNum; $j++) {
|
|
|
$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j] . ($i + 3), current($expTableData)[$i][$expCellName[$j][0]]);
|
|
|
}
|
|
|
}
|
|
|
// var_dump($expTableData);die();
|
|
|
unset($expTableData[key($expTableData)]);
|
|
|
|
|
|
$sheetNum = 1;
|
|
|
foreach($expTableData as $key => $value) {
|
|
|
$dataNum = count($value);
|
|
|
$objPHPExcel->createSheet();
|
|
|
|
|
|
if ($key==0) {
|
|
|
break;
|
|
|
}
|
|
|
if ($key == '10-') {
|
|
|
$objPHPExcel->setActiveSheetIndex($sheetNum)->setTitle('总计');
|
|
|
} else {
|
|
|
$objPHPExcel->setActiveSheetIndex($sheetNum)->setTitle($key);
|
|
|
}
|
|
|
|
|
|
$objPHPExcel->getActiveSheet($sheetNum)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1');//合并单元格
|
|
|
$objPHPExcel->setActiveSheetIndex($sheetNum)->setCellValue('A1', $expTitle);
|
|
|
$objPHPExcel->setActiveSheetIndex($sheetNum)->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
for ($i = 0; $i < $cellNum; $i++) {
|
|
|
$objPHPExcel->setActiveSheetIndex($sheetNum)->setCellValue($cellName[$i] . '2', $expCellName[$i][1]);
|
|
|
}
|
|
|
for ($i = 0; $i < $dataNum; $i++) {
|
|
|
for ($j = 0; $j < $cellNum; $j++) {
|
|
|
$objPHPExcel->getActiveSheet($sheetNum)->setCellValue($cellName[$j] . ($i + 3), $value[$i][$expCellName[$j][0]]);
|
|
|
}
|
|
|
}
|
|
|
$sheetNum++;
|
|
|
}
|
|
|
//die();
|
|
|
ob_end_clean();//清除缓冲区,避免乱码
|
|
|
header('pragma:public');
|
|
|
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');
|
|
|
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
|
|
|
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
|
|
$objWriter->save('php://output');
|
|
|
exit;
|
|
|
}
|
|
|
|
|
|
function getPromoteList($root_id = 0) {
|
|
|
|
|
|
$data = M('promote','tab_')
|
|
|
->field("id")
|
|
|
->where("chain like '%/{$root_id}/%'")
|
|
|
->select();
|
|
|
|
|
|
$handleData = [];
|
|
|
foreach ($data as $key => $value) {
|
|
|
array_push($handleData,$data[$key]['id']);
|
|
|
}
|
|
|
|
|
|
return $handleData;
|
|
|
|
|
|
}
|
|
|
|
|
|
function exportGetRootUser() {
|
|
|
|
|
|
//获取所有数据
|
|
|
if (!empty(I("count_date"))) {
|
|
|
$map['count_date'] = I("count_date");
|
|
|
}
|
|
|
|
|
|
|
|
|
$xlsName = '会长月结统计';
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('promote_account','会长渠道'),
|
|
|
array('cash_count','游戏现金流水'),
|
|
|
array('balance_coin_count','平台币支出'),
|
|
|
array('inside_cash_count','公会内充发放'),
|
|
|
array('bind_coin_count','公会内充支出'),
|
|
|
array('all_count','总流水'),
|
|
|
);
|
|
|
|
|
|
if (!empty(I("root_name"))) {
|
|
|
$map['promote_account']=['like','%'.I("root_name").'%'];
|
|
|
}
|
|
|
|
|
|
// $map['chain'] = "/";
|
|
|
$map['level'] = ['elt',1];
|
|
|
$xlsData = M('spend_user_count','tab_')
|
|
|
->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
|
|
|
->where($map)
|
|
|
->group('promote_id')
|
|
|
->select();
|
|
|
|
|
|
$sumData = M('spend_user_count','tab_')
|
|
|
->field('sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
|
|
|
->where($map)
|
|
|
->find();
|
|
|
|
|
|
|
|
|
$sumData = [['promote_account'=>'总计',
|
|
|
'cash_count'=>$sumData['cash_count'],
|
|
|
'balance_coin_count'=>$sumData['balance_coin_count'],
|
|
|
'inside_cash_count'=>$sumData['inside_cash_count'],
|
|
|
'bind_coin_count'=>$sumData['bind_coin_count'],
|
|
|
'all_count'=>$sumData['all_count'],
|
|
|
]];
|
|
|
$xlsData = array_merge($xlsData,$sumData);
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
public function exportMiniterUser() {
|
|
|
|
|
|
if (!empty(I("count_date")) ) {
|
|
|
$month = I("count_date");
|
|
|
$map['count_date'] =$month;
|
|
|
|
|
|
}
|
|
|
|
|
|
$parentData = [];
|
|
|
|
|
|
if (!empty(I("root_id"))) {
|
|
|
$root_id = I("root_id");
|
|
|
$parentData = $this->getParentSpendData($root_id,$month,2);
|
|
|
$map['chain'] =['like','%/'.$root_id.'/%'];
|
|
|
$map['level'] = 2;
|
|
|
} else if(!empty(I("sign"))){
|
|
|
$map['parent_id'] = ['neq',0];
|
|
|
$map['root_id'] = ['eq',0];
|
|
|
|
|
|
} else {
|
|
|
if (I("root_id") == 0) {
|
|
|
$root_id = I("root_id");
|
|
|
$map['promote_id'] = $root_id;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (!empty(I("root_name"))) {
|
|
|
$rootname = I("root_name");
|
|
|
$map['promote_account'] =['like','%'.$rootname.'%'];
|
|
|
}
|
|
|
|
|
|
$xlsName = '组长月结统计';
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('promote_account','会长渠道'),
|
|
|
array('cash_count','游戏现金流水'),
|
|
|
array('balance_coin_count','平台币支出'),
|
|
|
array('inside_cash_count','公会内充发放'),
|
|
|
array('bind_coin_count','公会内充支出'),
|
|
|
array('all_count','总流水'),
|
|
|
);
|
|
|
|
|
|
|
|
|
$xlsData = M('spend_user_count','tab_')
|
|
|
->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
|
|
|
->where($map)
|
|
|
->group('promote_id')
|
|
|
->select();
|
|
|
if (empty(I("root_name"))) {
|
|
|
$xlsData = array_merge($parentData,$xlsData);
|
|
|
}
|
|
|
|
|
|
$sumData = M('spend_user_count','tab_')
|
|
|
->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
|
|
|
->where($map)
|
|
|
->find();
|
|
|
if (empty(I("root_name"))) {
|
|
|
$sumData['cash_count'] = number_format($sumData['cash_count'] + $parentData[0]['cash_count'], 2, '.', '');
|
|
|
$sumData['balance_coin_count'] = number_format($sumData['balance_coin_count'] + $parentData[0]['balance_coin_count'], 2, '.', '');
|
|
|
$sumData['inside_cash_count'] = number_format($sumData['inside_cash_count'] + $parentData[0]['inside_cash_count'], 2, '.', '');
|
|
|
$sumData['all_count'] = number_format($sumData['all_count'] + $parentData[0]['all_count'], 2, '.', '');
|
|
|
$sumData['bind_coin_count'] = number_format($sumData['bind_coin_count'] + $parentData[0]['bind_coin_count'], 2, '.', '');
|
|
|
}
|
|
|
|
|
|
|
|
|
$sumData = [['promote_account'=>'总计',
|
|
|
'cash_count'=>$sumData['cash_count'],
|
|
|
'balance_coin_count'=>$sumData['balance_coin_count'],
|
|
|
'inside_cash_count'=>$sumData['inside_cash_count'],
|
|
|
'bind_coin_count'=>$sumData['bind_coin_count'],
|
|
|
'all_count'=>$sumData['all_count'],
|
|
|
]];
|
|
|
$xlsData = array_merge($xlsData,$sumData);
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
}
|
|
|
|
|
|
function exportGetParentUser() {
|
|
|
|
|
|
//获取所有数据
|
|
|
if (!empty(I("count_date")) ) {
|
|
|
$month = I("count_date");
|
|
|
$map['count_date'] =$month;
|
|
|
}
|
|
|
|
|
|
$parentData = [];
|
|
|
|
|
|
if (!empty(I("parent_id"))) {
|
|
|
$root_id = I("parent_id");
|
|
|
|
|
|
$parentData = $this->getParentSpendData($root_id,$month,3);
|
|
|
|
|
|
$map['chain'] =['like','%/'.$root_id.'/%'];
|
|
|
$map['level'] = 3;
|
|
|
|
|
|
} else if(!empty(I("sign"))){
|
|
|
$map['parent_id'] = ['neq',0];
|
|
|
$map['root_id'] = ['eq',0];
|
|
|
|
|
|
} else {
|
|
|
if (I("root_id") == 0) {
|
|
|
$root_id = I("root_id");
|
|
|
$map['promote_id'] = $root_id;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (!empty(I("root_name"))) {
|
|
|
$map['promote_account']=['like','%'.I("root_name").'%'];
|
|
|
}
|
|
|
|
|
|
$xlsName = '组长月结统计';
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('promote_account','会长渠道'),
|
|
|
array('cash_count','游戏现金流水'),
|
|
|
array('balance_coin_count','平台币支出'),
|
|
|
array('inside_cash_count','公会内充发放'),
|
|
|
array('bind_coin_count','公会内充支出'),
|
|
|
array('all_count','总流水'),
|
|
|
);
|
|
|
|
|
|
//获取数据
|
|
|
// $map['parent_id'] =$root_id;
|
|
|
|
|
|
$xlsData = M('spend_user_count','tab_')
|
|
|
->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
|
|
|
->where($map)
|
|
|
->group('promote_id')
|
|
|
->select();
|
|
|
if (empty(I("root_name"))) {
|
|
|
$xlsData = array_merge($parentData, $xlsData);
|
|
|
}
|
|
|
|
|
|
$sumData = M('spend_user_count','tab_')
|
|
|
->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
|
|
|
->where($map)
|
|
|
->find();
|
|
|
if (empty(I("root_name"))) {
|
|
|
$sumData['cash_count'] = number_format($sumData['cash_count'] + $parentData[0]['cash_count'], 2, '.', '');
|
|
|
$sumData['balance_coin_count'] = number_format($sumData['balance_coin_count'] + $parentData[0]['balance_coin_count'], 2, '.', '');
|
|
|
$sumData['inside_cash_count'] = number_format($sumData['inside_cash_count'] + $parentData[0]['inside_cash_count'], 2, '.', '');
|
|
|
$sumData['all_count'] = number_format($sumData['all_count'] + $parentData[0]['all_count'], 2, '.', '');
|
|
|
$sumData['bind_coin_count'] = number_format($sumData['bind_coin_count'] + $parentData[0]['bind_coin_count'], 2, '.', '');
|
|
|
}
|
|
|
|
|
|
$sumData = [['promote_account'=>'总计',
|
|
|
'cash_count'=>$sumData['cash_count'],
|
|
|
'balance_coin_count'=>$sumData['balance_coin_count'],
|
|
|
'inside_cash_count'=>$sumData['inside_cash_count'],
|
|
|
'bind_coin_count'=>$sumData['bind_coin_count'],
|
|
|
'all_count'=>$sumData['all_count'],
|
|
|
]];
|
|
|
$xlsData = array_merge($xlsData,$sumData);
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
function exportGetPromoteUser() {
|
|
|
|
|
|
//获取所有数据
|
|
|
if (!empty(I("count_date")) && !empty(I("parent_id"))) {
|
|
|
$month = I("count_date");
|
|
|
|
|
|
$map['count_date'] =$month;
|
|
|
}
|
|
|
|
|
|
$parentData = [];
|
|
|
if (!empty(I("parent_id"))) {
|
|
|
$parent_id = I("parent_id");
|
|
|
$parentData = $this->getParentSpendData($parent_id,$month,4);
|
|
|
|
|
|
$map['chain'] =['like','%/'.$parent_id.'/%'];
|
|
|
$map['level'] = 4;
|
|
|
}
|
|
|
|
|
|
if (!empty(I('sign'))) {
|
|
|
$map['parent_id'] = ['neq',0];
|
|
|
if (!empty(I('root_id'))) {
|
|
|
$map['root_id'] = I('root_id');
|
|
|
} else {
|
|
|
$map['root_id'] = ['neq',0];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$xlsName = '推广员月结统计';
|
|
|
|
|
|
$xlsCell = array(
|
|
|
array('promote_account','会长渠道'),
|
|
|
array('cash_count','游戏现金流水'),
|
|
|
array('balance_coin_count','平台币支出'),
|
|
|
array('inside_cash_count','公会内充发放'),
|
|
|
array('bind_coin_count','公会内充支出'),
|
|
|
array('all_count','总流水'),
|
|
|
);
|
|
|
|
|
|
//获取数据
|
|
|
$xlsData = M('spend_user_count','tab_')
|
|
|
->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
|
|
|
->where($map)
|
|
|
->group('promote_id')
|
|
|
->select();
|
|
|
|
|
|
$xlsData = array_merge($parentData,$xlsData);
|
|
|
|
|
|
$sumData = M('spend_user_count','tab_')
|
|
|
->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
|
|
|
->where($map)
|
|
|
->find();
|
|
|
$sumData['cash_count'] = number_format($sumData['cash_count']+$parentData[0]['cash_count'],2,'.','');
|
|
|
$sumData['balance_coin_count'] = number_format($sumData['balance_coin_count']+$parentData[0]['balance_coin_count'],2,'.','');
|
|
|
$sumData['inside_cash_count'] = number_format($sumData['inside_cash_count']+$parentData[0]['inside_cash_count'],2,'.','');
|
|
|
$sumData['all_count'] = number_format($sumData['all_count']+$parentData[0]['all_count'],2,'.','');
|
|
|
$sumData['bind_coin_count'] = number_format($sumData['bind_coin_count']+$parentData[0]['bind_coin_count'],2,'.','');
|
|
|
|
|
|
$sumData = [['promote_account'=>'总计',
|
|
|
'cash_count'=>$sumData['cash_count'],
|
|
|
'balance_coin_count'=>$sumData['balance_coin_count'],
|
|
|
'inside_cash_count'=>$sumData['inside_cash_count'],
|
|
|
'bind_coin_count'=>$sumData['bind_coin_count'],
|
|
|
'all_count'=>$sumData['all_count'],
|
|
|
]];
|
|
|
$xlsData = array_merge($xlsData,$sumData);
|
|
|
|
|
|
$this->exportExcel($xlsName, $xlsCell, $xlsData);
|
|
|
|
|
|
}
|
|
|
|
|
|
function getParentSpendData($root_id,$date,$level=2) {
|
|
|
|
|
|
$data = [];
|
|
|
if (!$root_id) {
|
|
|
$this->error('数据错误');
|
|
|
} else {
|
|
|
$map = [];
|
|
|
if ($root_id) {
|
|
|
$map['promote_id'] = $root_id;
|
|
|
}
|
|
|
if ($date) {
|
|
|
$map['count_date'] = $date;
|
|
|
}
|
|
|
|
|
|
$data = M('spend_user_count','tab_')
|
|
|
->field('promote_id,promote_account, sum(cash_count) as cash_count,sum(balance_coin_count) as balance_coin_count,sum(inside_cash_count) as inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
|
|
|
->where($map)->select();
|
|
|
// dump($data);
|
|
|
$map1['chain'] = ['like','%/'.$data[0]['promote_id'].'/%'];
|
|
|
$map1['count_date'] = $date;
|
|
|
$map1['level'] = $level;
|
|
|
$sunData = M('spend_user_count','tab_')
|
|
|
->field('promote_id,promote_account, sum(cash_count) as cash_count,sum(balance_coin_count) as balance_coin_count,sum(inside_cash_count) as inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
|
|
|
->where($map1)->find();
|
|
|
// echo M('spend_user_count','tab_')->_sql();
|
|
|
// dump($sunData);
|
|
|
//die();
|
|
|
$data[0]['cash_count'] = number_format($data[0]['cash_count']-$sunData['cash_count'],2,'.','');
|
|
|
$data[0]['balance_coin_count'] = number_format($data[0]['balance_coin_count']-$sunData['balance_coin_count'],2,'.','');
|
|
|
$data[0]['inside_cash_count'] = number_format($data[0]['inside_cash_count']-$sunData['inside_cash_count'],2,'.','');
|
|
|
$data[0]['all_count'] = number_format($data[0]['all_count']-$sunData['all_count'],2,'.','');
|
|
|
$data[0]['bind_coin_count'] = number_format($data[0]['bind_coin_count']-$sunData['bind_coin_count'],2,'.','');
|
|
|
|
|
|
// $map['inside_cash_count'] = ['neq',0];
|
|
|
// $insideData = D("spend_count")->getSpendCountData($map,"promote_id,inside_cash_count as count","promote_id,count_date");
|
|
|
// unset($map['bind_coin_count']);
|
|
|
// //内充流水与绑定流水数据
|
|
|
// $insideDataSum = 0;
|
|
|
// foreach ($insideData as $key => $value) {
|
|
|
// if (isset($insideDataSum)) {
|
|
|
// $insideDataSum = $insideDataSum + $value['count'];
|
|
|
// } else {
|
|
|
// $insideDataSum = $value['count'];
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
// if (!$data[0]['cash_count']&&!$data[0]['balance_coin_count']&&!$data[0]['inside_cash_count']&&!$data[0]['all_count']) {
|
|
|
// $promoteData = M('promote','tab_')->field('account as promote_account')->where("id={$root_id}")->find();
|
|
|
//
|
|
|
// $data[0]['promote_id'] = $root_id;
|
|
|
// $data[0]['promote_account'] = $promoteData['promote_account'];
|
|
|
// $data[0]['cash_count'] = number_format(0.00,2,'.','');
|
|
|
// $data[0]['balance_coin_count'] = number_format(0.00,2,'.','');
|
|
|
// $data[0]['inside_cash_count'] = number_format(0.00,2,'.','');
|
|
|
// $data[0]['all_count'] = number_format(0.00,2,'.','');
|
|
|
// }
|
|
|
// $data[0]['inside_cash_count'] = number_format($insideDataSum,2,'.','');
|
|
|
// $data[0]['all_count'] = number_format($insideDataSum+$data[0]['all_count'],2,'.','');
|
|
|
// var_dump($data);die();
|
|
|
return $data;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|