You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
279 lines
7.5 KiB
PHP
279 lines
7.5 KiB
PHP
<?php
|
|
|
|
namespace Admin\Controller;
|
|
|
|
|
|
class AmericaIpForbitController extends ThinkController
|
|
{
|
|
|
|
public function index($p = 1) {
|
|
|
|
$page = intval($p);
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
|
if (isset($_REQUEST['row'])) {
|
|
$row = $_REQUEST['row'];
|
|
} else {
|
|
$row = 10;
|
|
}
|
|
|
|
$map = [];
|
|
$map['type'] = 0;
|
|
|
|
if ($_REQUEST['user_account']) {
|
|
$map['user_account'] = ['like',"%{$_REQUEST['user_account']}%"];
|
|
}
|
|
|
|
$data = M('forbit_ip','tab_')
|
|
->where($map)
|
|
->page($page,$row)
|
|
->order('create_time DESC')
|
|
->select();
|
|
|
|
foreach ( $data as $key => $value ) {
|
|
|
|
$data[$key]['create_time'] = date('Y-m-d H:i:s',$value['create_time']);
|
|
|
|
}
|
|
|
|
$count = M('forbit_ip','tab_')
|
|
->where($map)
|
|
->count();
|
|
|
|
$appleInteriorBuyStatus = M('tool','tab_')->where(['name'=>'apple_interior_buy'])->getField('status');
|
|
|
|
$setAppleInteriorBuyStatus = $appleInteriorBuyStatus?1:0;
|
|
|
|
$this->checkListOrCountAuthRestMap($map,[]);
|
|
|
|
$page = set_pagination($count, $row);
|
|
|
|
$this->assign('_page', $page);
|
|
|
|
$this->assign('apple_interior_buy',$appleInteriorBuyStatus);
|
|
$this->assign('set_apple_interior_buy',$setAppleInteriorBuyStatus);
|
|
|
|
$this->assign('data',$data);
|
|
|
|
$this->display();
|
|
|
|
}
|
|
|
|
public function export() {
|
|
|
|
$xlsName = 'ip限制白名单';
|
|
|
|
$xlsCell = array(
|
|
"玩家账号", '状态', '添加人', '添加时间'
|
|
);
|
|
|
|
$map = [];
|
|
$map['type'] = 0;
|
|
|
|
if ($_REQUEST['user_account']) {
|
|
$map['user_account'] = ['like',"%{$_REQUEST['user_account']}%"];
|
|
}
|
|
|
|
$csvFileName = $xlsName.'.csv';
|
|
//设置好告诉浏览器要下载excel文件的headers
|
|
header('Content-Description: File Transfer');
|
|
header('Content-Type: application/vnd.ms-excel');
|
|
header('Content-Disposition: attachment; filename="'. $csvFileName .'"');
|
|
header('Expires: 0');
|
|
header('Cache-Control: must-revalidate');
|
|
header('Pragma: public');
|
|
$fp = fopen('php://output', 'a');//打开output流
|
|
mb_convert_variables('GBK', 'UTF-8', $xlsCell);
|
|
fputcsv($fp, $xlsCell);//将数据格式化为CSV格式并写入到output流中
|
|
|
|
$accessNum = M('forbit_ip','tab_')
|
|
->where($map)
|
|
->count();
|
|
|
|
$accessNum =$accessNum['count'];
|
|
|
|
$perSize = 2000;//每次查询的条数
|
|
$pages = ceil($accessNum / $perSize);
|
|
|
|
for($i = 1; $i <= $pages; $i++) {
|
|
$xlsData = M('forbit_ip','tab_')
|
|
->field('user_account,status,admin_account,create_time')
|
|
->where($map)
|
|
->limit(($i-1)*$perSize ,$perSize)
|
|
->order('create_time DESC')
|
|
->select();
|
|
|
|
foreach($xlsData as $value) {
|
|
$value['create_time'] = date("Y-m-d H:i:s",$value['create_time']);
|
|
|
|
if ($value['status'] == 0) {
|
|
$value['status'] = '限制';
|
|
} else {
|
|
$value['status'] = '不限制';
|
|
}
|
|
|
|
mb_convert_variables('GBK', 'UTF-8', $value);
|
|
fputcsv($fp, $value);
|
|
}
|
|
unset($xlsData);//释放变量的内存
|
|
//刷新输出缓冲到浏览器
|
|
ob_flush();
|
|
flush();//必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。
|
|
}
|
|
fclose($fp);
|
|
|
|
addOperationLog(array(
|
|
"op_type"=>3,
|
|
"key"=> getNowDate(),
|
|
"menu"=>"游戏-游戏管理-ip限制白名单-导出",
|
|
"url"=>U("AmericaIpForbit/index")
|
|
));
|
|
|
|
$getData = $_GET;
|
|
unset($getData['id']);
|
|
unset($getData['xlsname']);
|
|
|
|
}
|
|
|
|
public function operateIp() {
|
|
|
|
if (!I('id')) {
|
|
$this->ajaxReturn(['code'=>1,'msg'=>'ID未选择']);
|
|
} else {
|
|
$id = I('id');
|
|
}
|
|
|
|
if (I('status')) {
|
|
$status = I('status');
|
|
} else {
|
|
$status = 0;
|
|
}
|
|
|
|
|
|
$map['id'] = ['in',$id];
|
|
|
|
|
|
$is_change = M('forbit_ip','tab_')->where(['id'=>['in',$id]])->save(['status'=>$status]);
|
|
|
|
if ($is_change) {
|
|
if (I('status')) {
|
|
addOperationLog(array(
|
|
"op_type"=>1,
|
|
"key"=> getNowDate(),
|
|
"menu"=>"游戏-游戏管理-ip限制白名单-开启",
|
|
"url"=>U("AmericaIpForbit/index")
|
|
));
|
|
} else{
|
|
addOperationLog(array(
|
|
"op_type"=>1,
|
|
"key"=> getNowDate(),
|
|
"menu"=>"游戏-游戏管理-ip限制白名单-关闭",
|
|
"url"=>U("AmericaIpForbit/index")
|
|
));
|
|
}
|
|
|
|
|
|
$this->ajaxReturn(['code'=>1]);
|
|
} else {
|
|
$this->ajaxReturn(['code'=>0]);
|
|
}
|
|
|
|
}
|
|
|
|
public function del() {
|
|
|
|
if (!I('id')) {
|
|
$this->ajaxReturn(['code'=>1,'msg'=>'ID未选择']);
|
|
} else {
|
|
$id = I('id');
|
|
}
|
|
|
|
$is_del = $is_change = M('forbit_ip','tab_')->where(['id'=>['in',$id],'type'=>0])->delete();
|
|
|
|
if ($is_del) {
|
|
$hav_firbit = M('forbit_ip','tab_')->where(['id'=>I('id')])->find();
|
|
addOperationLog(array(
|
|
"op_type"=>2,
|
|
"key"=> I('id'),
|
|
"menu"=>"游戏-游戏管理-ip限制白名单-删除",
|
|
"url"=>U("AmericaIpForbit/index")
|
|
));
|
|
|
|
$this->ajaxReturn(['code'=>1]);
|
|
} else {
|
|
$this->ajaxReturn(['code'=>0]);
|
|
}
|
|
|
|
}
|
|
|
|
public function add() {
|
|
|
|
$this->display();
|
|
|
|
}
|
|
|
|
public function addUser() {
|
|
|
|
$insert = [];
|
|
|
|
$hav_user = M('user','tab_')->where(['account'=>I('account')])->find();
|
|
|
|
$auth = $_SESSION['onethink_admin']['user_auth'];
|
|
|
|
if (!$hav_user) {
|
|
$this->error('用户不存在');
|
|
}
|
|
|
|
$hav_firbit = M('forbit_ip','tab_')->where(['user_account'=>I('account'),'type'=>0])->find();
|
|
|
|
if ($hav_firbit) {
|
|
$this->error('该用户已添加封禁');
|
|
}
|
|
|
|
$insert['user_id'] = $hav_user['id'];
|
|
$insert['user_account'] = I('account');
|
|
$insert['status'] = I('status');
|
|
$insert['admin_id'] = $auth['uid'];
|
|
$insert['admin_account'] = $auth['username'];
|
|
$insert['create_time'] = time();
|
|
$insert['remarks'] = '';
|
|
|
|
$is_insert = M('forbit_ip','tab_')->add($insert);
|
|
|
|
if ($is_insert) {
|
|
|
|
addOperationLog(array(
|
|
"op_type"=>0,
|
|
"key"=> I('account'),
|
|
"menu"=>"游戏-游戏管理-ip限制白名单-新增",
|
|
"url"=>U("AmericaIpForbit/index")
|
|
));
|
|
|
|
$this->success('添加成功',U('AmericaIpForbit/index'));
|
|
} else {
|
|
$this->error('添加失败');
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public function setAppleInteriorBuyStatus() {
|
|
|
|
$status = I('status');
|
|
|
|
if (!$status && $status!='0') {
|
|
$this->ajaxReturn(['code'=>0]);
|
|
}
|
|
|
|
$is_success = M('tool','tab_')->where(['name'=>'apple_interior_buy'])->save(['status'=>$status]);
|
|
|
|
if ($is_success) {
|
|
$this->ajaxReturn(['code'=>1]);
|
|
} else {
|
|
$this->ajaxReturn(['code'=>0]);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
} |