Merge remote-tracking branch 'origin/dev' into dev

master
liuweiwen 5 years ago
commit afd1b9b799

@ -1736,8 +1736,15 @@ function getOffspringByPromoteId($promote_id = null) {
function data2csv(&$data,$title,$fields){ function data2csv(&$data,$title,$fields){
set_time_limit(0); set_time_limit(0);
ini_set('memory_limit', '-1'); //设置内存不受限制 ini_set('memory_limit', '-1'); //设置内存不受限制
$filename = $title .'.csv'; $csvFileName = $title.'.csv';
$fp = fopen($filename, 'w'); //生成临时文件 //设置好告诉浏览器要下载excel文件的headers
header('Content-Description: File Transfer');
header('Content-Type: application/vnd.ms-excel;charset=utf-8');
header('Content-Disposition: attachment; filename="'. $csvFileName .'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
$fp = fopen('php://output', 'a');//打开output流
fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF));//转码,防止乱码 fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF));//转码,防止乱码
$field = array_keys($fields); $field = array_keys($fields);
//生成首行 //生成首行
@ -1761,13 +1768,6 @@ function data2csv(&$data,$title,$fields){
} }
ob_flush(); ob_flush();
fclose($fp); //每生成一个文件关闭 fclose($fp); //每生成一个文件关闭
//下载
header('Content-Type: application/vnd.ms-excel;charset=utf-8');
header('Content-Disposition: attachment;filename="' . $title . '.csv"');
header('Cache-Control: max-age=0');
header('Content-Length: ' . filesize($filename));
@readfile($filename);
unlink($filename);
die(); die();
} }
?> ?>

@ -298,6 +298,9 @@ class GameController extends ThinkController
$this->error('一句话简介不能超过30个字'); $this->error('一句话简介不能超过30个字');
exit; exit;
} }
if (!preg_match("/^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/i", $_POST['beta_url'])) {
return $this->error("请填写正确的Bata链接");
}
/*if($_POST['apply_status']==0&&$_POST['game_status']==1){ /*if($_POST['apply_status']==0&&$_POST['game_status']==1){
$this->error('游戏未审核不允许显示');//游戏添加完成 $this->error('游戏未审核不允许显示');//游戏添加完成
}*/ }*/
@ -349,6 +352,8 @@ class GameController extends ThinkController
$phone['flooring_page_video'] = $sibling['flooring_page_video']; $phone['flooring_page_video'] = $sibling['flooring_page_video'];
$phone['flooring_page_video_cover'] = $sibling['flooring_page_video_cover']; $phone['flooring_page_video_cover'] = $sibling['flooring_page_video_cover'];
$phone['supersign_status'] = $sibling['supersign_status']; $phone['supersign_status'] = $sibling['supersign_status'];
$phone['beta_url'] = $_POST['beta_url'];
$phone['beta_status'] = $_POST['beta_status'];
M('Game', 'tab_')->data($phone)->where(array('id' => $another['id']))->save(); M('Game', 'tab_')->data($phone)->where(array('id' => $another['id']))->save();
//同时修改代充游戏折扣 //同时修改代充游戏折扣
$set_fidel['status'] = 1; $set_fidel['status'] = 1;

@ -131,14 +131,17 @@ class MemberController extends ThinkController
} }
} }
} }
//计算用户列表 //计算用户列表
$data = M("user","tab_") $data = M("user","tab_")
->field("tab_user.id,`device_number`,`age_status`,`account`,`balance`,`gold_coin`,`alipay`,tab_user.promote_id,`register_type`,tab_user.promote_account,`register_time`,`lock_status`,`register_way`,`register_ip`,`login_time`,`check_status`,IFNULL(sum(ss.pay_amount), 0) AS recharge_total") ->field("tab_user.id,`device_number`,`age_status`,`account`,`balance`,`gold_coin`,`alipay`,tab_user.promote_id,`register_type`,tab_user.promote_account,`register_time`,`lock_status`,`register_way`,`register_ip`,`login_time`,`check_status`,IFNULL(sum(ss.pay_amount), 0) AS recharge_total")
->where($map) ->where($map)
->group("tab_user.id") ->group("tab_user.id")
->page($page, $row) // ->page($page, $row)
->order($order); ->order($order);
if(!isset($_REQUEST['export'])){
$data ->page($page, $row);
}
if($havs){ if($havs){
$data->having($havs); $data->having($havs);
} }
@ -158,6 +161,55 @@ class MemberController extends ThinkController
$data->join("tab_spend AS ss ON ss.user_id = tab_user.id AND ss.pay_status = 1","left"); $data->join("tab_spend AS ss ON ss.user_id = tab_user.id AND ss.pay_status = 1","left");
} }
$data = $data->select(); $data = $data->select();
if(isset($_REQUEST['export'])){
$isadmin = is_administrator();
//获取等级
$tool = M('tool',"tab_")->field('config,status')->where(['name'=>'viplevel'])->find();
$viplevel = false;
if(!empty($tool) && $tool['status']==1){
$viplevel = json_decode($tool['config'],true);
$len = count($viplevel);
if(empty($viplevel)) {$viplevel = false;}
}
foreach ($data as $k => &$v) {
$v['register_type'] = get_registertype($v['register_type']);
if(!$isadmin){
$v['account'] = encryptStr($v['account']);
$v['promote_account'] = encryptStr($v['promote_account']);
$v['device_number'] = encryptStr($v['device_number']);
}
empty($v['alipay']) && $v['alipay']="--";
empty($v['small_count']) && $v['small_count']="--";
$v['gold_coin']?:'0.00';
if($viplevel){
$vl=0;
$money = intval($v['recharge_total']*10000);
foreach($viplevel as $k=>$value) {
$i = intval(str_replace('vip','',$k));
if($money<intval($value*10000)) {$vl = $i-1;break;}
if($i == $len) {$vl = $i;}
}
$v['vip_level'] = $vl;
}else{
$v['vip_level'] = 0;
}
$v['register_time'] = date('Y-m-d H:i:s',$v['register_time']);
$v['login_time'] = date('Y-m-d H:i:s',$v['login_time']);
$v['lock_status'] = get_info_status($v['lock_status'],4);
$v['check_status'] = $v['check_status']==1 ? "正常" :"拉黑";
// $data[$k] = $v;
}
$field = array(
"id"=>"账号ID","account"=>"玩家账号","promote_account"=>"所属推广员","balance"=>"账户平台币","recharge_total"=>"累计充值","gold_coin"=>"金币",
"alipay"=>"绑定支付宝","small_count"=>"小号","vip_level"=>"VIP等级","register_type"=>"注册方式","register_time"=>"注册时间","register_ip"=>"注册IP","login_time"=>"最后登录时间",
"device_number"=>"设备号","lock_status"=>"账号状态","check_status"=>"拉黑状态"
);
data2csv($data,"玩家_玩家列表",$field);
}
if($havs){ if($havs){
//判断是否需要vip等级分类 //判断是否需要vip等级分类

@ -429,6 +429,28 @@
</if> </if>
</tr> </tr>
<tr>
<td class="l" >Bata版本链接</td>
<td class="r" colspan="3">
<input type="text" class="txt " name="beta_url" value="{$data['beta_url']}" placeholder="请输入Bata版本下载链接">
</td>
</tr>
<tr>
<td class="l">Bata版本是否开启</td>
<td class="r" >
<span class="form_radio table_btn">
<label>
<input type="radio" class="inp_radio" value="0" name="beta_status" <?php if ($data['beta_status'] == 0):?>checked='checked'<?php endif;?> > 关闭
</label>
<label>
<input type="radio" class="inp_radio" value="1" name="beta_status" <?php if ($data['beta_status'] == 1):?>checked='checked'<?php endif;?> > 开启
</label>
</span>
</td>
</tr>
<notempty name="data.accredit_img"> <notempty name="data.accredit_img">

@ -37,7 +37,7 @@
</div> </div>
<h3 class="page_title">玩家列表</h3> <h3 class="page_title">玩家列表</h3>
<if condition="(I('type',1) eq 1) "> <if condition="(I('type',1) eq 1) ">
<p class="description_text">说明:此列表数据以平台账号为统计基数</p> <p class="description_text">说明:此列表统计平台账号总数,当筛选条件为游戏不含区服时为该游戏的玩家数量,含区服时为玩家创建角色数量</p>
<else/> <else/>
<p class="description_text">说明游客登录默认属于第三方用户当用户通过SDK设置了用户名以后记录变换到本站用户列表里账户自动更换为设置的账号</p> <p class="description_text">说明游客登录默认属于第三方用户当用户通过SDK设置了用户名以后记录变换到本站用户列表里账户自动更换为设置的账号</p>
</if> </if>
@ -354,7 +354,9 @@
</div> </div>
<div class="page"> <div class="page">
<if condition="$is_admin eq true "> <if condition="$is_admin eq true ">
<a class="sch-btn" href="{:U('Export/expUser',array_merge(['id'=>3,'xlsname'=>'玩家_玩家列表_'.(I('get.type')==2?'第三方玩家':'本站玩家')],I('get.')))}">导出</a> <a class="sch-btn export-btn"
href="{:U(CONTROLLER_NAME.'/'.ACTION_NAME,array_merge(['export'=>1],I('get.')))}" target="_blank">导出</a>
<!-- <a class="sch-btn" href="{:U('Export/expUser',array_merge(['id'=>3,'xlsname'=>'玩家_玩家列表_'.(I('get.type')==2?'第三方玩家':'本站玩家')],I('get.')))}">导出</a> -->
</if> </if>
{$_page|default=''} {$_page|default=''}
</div> </div>
@ -393,6 +395,15 @@
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){
$(".select_gallery").select2(); $(".select_gallery").select2();
$(".export-btn").on("click",function(e){
e.preventDefault();
var cont = {$user_count};
if(cont < 50000){
window.location.href=$(this).attr("href")
}else{
layer.msg('为保证导出效率大于50000条数据暂不支持导出请更换检索条件后再次尝试');
}
})
//搜索功能 //搜索功能
$("#search").click(function(){ $("#search").click(function(){
var url = $(this).attr('url'); var url = $(this).attr('url');

Loading…
Cancel
Save