|
|
|
|
<?php
|
|
|
|
|
namespace Admin\Event;
|
|
|
|
|
use Think\Controller;
|
|
|
|
|
/**
|
|
|
|
|
* 后台事件控制器
|
|
|
|
|
* @author 王贺
|
|
|
|
|
*/
|
|
|
|
|
class firstpayEvent extends Controller {
|
|
|
|
|
/*
|
|
|
|
|
*自选
|
|
|
|
|
*/
|
|
|
|
|
public function add1()
|
|
|
|
|
{
|
|
|
|
|
$gid=$_POST['game_id'];
|
|
|
|
|
$account=trim($_POST['account']);
|
|
|
|
|
$amount= $_POST['amount'];
|
|
|
|
|
if($gid==""){$this->error("游戏不能为空",U('bdfirstpay'));}
|
|
|
|
|
if($account==""){$this->error("用户不能为空",U('bdfirstpay'));}
|
|
|
|
|
$isset=get_play_user($account,$gid);
|
|
|
|
|
if($isset){
|
|
|
|
|
if(!is_numeric($amount)||$amount<=0 || !preg_match('/^[1-9](\d+)?$/',$amount)){
|
|
|
|
|
$this->error("请输入大于0的整数",U("bdfirstpay"));
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
$add['user_id']=$isset['id'];
|
|
|
|
|
$add['user_nickname']=$account;
|
|
|
|
|
$add['game_id']=$gid;
|
|
|
|
|
$add['game_name']=get_game_name($gid);
|
|
|
|
|
$add['order_number']="ZF_".build_order_no();
|
|
|
|
|
$add['pay_order_number']=build_order_no();
|
|
|
|
|
$add['user_account']=$account;
|
|
|
|
|
$add['amount']=$amount;
|
|
|
|
|
$add['status']=0;
|
|
|
|
|
$add['op_id']=UID;
|
|
|
|
|
// $add['cost']=$_POST['cost'];
|
|
|
|
|
$add['op_account']=session("user_auth.username");
|
|
|
|
|
$add['create_time']=NOW_TIME;
|
|
|
|
|
$prov=M("provide","tab_")->add($add);
|
|
|
|
|
$this->feAddOperationLog($account,$amount);
|
|
|
|
|
$this->success("提交成功",U("Provide/lists",["type"=>2]));
|
|
|
|
|
}else{
|
|
|
|
|
$this->error("该玩家还未玩此游戏",U("bdfirstpay"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 内充管理---导入Excel
|
|
|
|
|
* @author 顽皮蛋 <shf_l@163.com>
|
|
|
|
|
*/
|
|
|
|
|
public function add3(){
|
|
|
|
|
header("Content-Type:text/html;charset=utf-8");
|
|
|
|
|
$upload = new \Think\Upload();// 实例化上传类
|
|
|
|
|
$upload->maxSize = 3145728 ;// 设置附件上传大小
|
|
|
|
|
$upload->exts = array('xls', 'xlsx');// 设置附件上传类
|
|
|
|
|
$upload->rootPath = './Uploads/'; // 设置附件上传目录
|
|
|
|
|
$upload->savePath = 'excel/'; // 设置附件上传目录
|
|
|
|
|
// 上传文件
|
|
|
|
|
$info = $upload->uploadOne($_FILES['excelData']);
|
|
|
|
|
$filename = './Uploads/'.$info['savepath'].$info['savename'];
|
|
|
|
|
$exts = $info['ext'];
|
|
|
|
|
if(!$info) {// 上传错误提示错误信息
|
|
|
|
|
$this->error($upload->getError());
|
|
|
|
|
}else{// 上传成功
|
|
|
|
|
$this->charge_import($filename, $exts);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function add2(){
|
|
|
|
|
$account=$_POST['pay_names'];
|
|
|
|
|
$amount=$_POST['amount'];
|
|
|
|
|
$gid=$_POST['game_id'];
|
|
|
|
|
if($gid==""){$this->error("游戏不能为空",U('bdfirstpay'));}
|
|
|
|
|
if(empty($account)){$this->error("充值人员不能为空");}
|
|
|
|
|
if($amount<=0 || !preg_match('/^[1-9](\d+)?$/',$amount)){$this->error("请输入大于0的整数");}
|
|
|
|
|
$namearr = explode("\n",$account);
|
|
|
|
|
static $a=0;
|
|
|
|
|
for($i=0;$i<count($namearr);$i++){
|
|
|
|
|
$user=get_play_user(str_replace(array("\r\n", "\r", "\n"), "", $namearr[$i]),$gid);
|
|
|
|
|
if(null!=$user){
|
|
|
|
|
$add['user_nickname']=get_user_nickname($namearr[$i]);
|
|
|
|
|
$add['pay_order_number']=build_order_no();
|
|
|
|
|
$add['order_number']="ZF_".build_order_no();
|
|
|
|
|
$add['game_name']=get_game_name($gid);
|
|
|
|
|
$add['user_account']=$namearr[$i];
|
|
|
|
|
$add['user_id']=$user['id'];
|
|
|
|
|
$add['amount']=$amount;
|
|
|
|
|
$add['status']=0;
|
|
|
|
|
$add['game_id']=$gid;
|
|
|
|
|
$add['op_id']=UID;
|
|
|
|
|
$add['op_account']=session("user_auth.username");
|
|
|
|
|
$add['create_time']=NOW_TIME;
|
|
|
|
|
$prov=M("provide","tab_")->add($add);
|
|
|
|
|
if($prov){
|
|
|
|
|
$this->feAddOperationLog($add['user_account'],$amount);
|
|
|
|
|
$a++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$b=count($namearr)-$a;
|
|
|
|
|
$this->success("成功{$a}个,失败{$b}个",U("Provide/lists",["type"=>2]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//导入数据方法
|
|
|
|
|
protected function charge_import($filename, $exts='xls'){
|
|
|
|
|
//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
|
|
|
|
|
//import("Org.Util.PHPExcel");
|
|
|
|
|
vendor("PHPExcel.PHPExcel");
|
|
|
|
|
//创建PHPExcel对象,注意,不能少了\
|
|
|
|
|
$PHPExcel=new \PHPExcel();
|
|
|
|
|
//如果excel文件后缀名为.xls,导入这个类
|
|
|
|
|
if($exts == 'xls'){
|
|
|
|
|
//import("Org.Util.PHPExcel.Reader.Excel5");
|
|
|
|
|
$PHPReader=new \PHPExcel_Reader_Excel5();
|
|
|
|
|
}else if($exts == 'xlsx'){
|
|
|
|
|
//import("Org.Util.PHPExcel.Reader.Excel2007");
|
|
|
|
|
$PHPReader=new \PHPExcel_Reader_Excel2007();
|
|
|
|
|
}
|
|
|
|
|
//载入文件
|
|
|
|
|
$PHPExcel=$PHPReader->load($filename);
|
|
|
|
|
//获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
|
|
|
|
|
$currentSheet=$PHPExcel->getSheet(0);
|
|
|
|
|
//获取总列数
|
|
|
|
|
$allColumn=$currentSheet->getHighestColumn();
|
|
|
|
|
//获取总行数
|
|
|
|
|
$allRow=$currentSheet->getHighestRow();
|
|
|
|
|
//循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
|
|
|
|
|
for($currentRow=1;$currentRow<=$allRow;$currentRow++){
|
|
|
|
|
//从哪列开始,A表示第一列
|
|
|
|
|
for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){
|
|
|
|
|
//数据坐标
|
|
|
|
|
$address=$currentColumn.$currentRow;
|
|
|
|
|
//读取到的数据,保存到数组$arr中
|
|
|
|
|
$data[$currentRow][$currentColumn]=$currentSheet->getCell($address)->getValue();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
$this->save_import($data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//保存导入数据并返回错误信息
|
|
|
|
|
public function save_import($data){
|
|
|
|
|
unset($data[1]);
|
|
|
|
|
$errorNum = 0;
|
|
|
|
|
$succNum = 0;
|
|
|
|
|
$errorList = array();//存储错误数据;
|
|
|
|
|
foreach ($data as $k=>$v){
|
|
|
|
|
$errorList[$errorNum]['A'] = $v['A'];
|
|
|
|
|
$errorList[$errorNum]['B'] = $v['B'];
|
|
|
|
|
$errorList[$errorNum]['C'] = $v['C'];
|
|
|
|
|
$g = D('Game')->where(array('id'=>get_game_id($v['B'])))->find();
|
|
|
|
|
if(empty($g)){//游戏不存在
|
|
|
|
|
$errorList[$errorNum]['D'] = '游戏不存在';
|
|
|
|
|
$errorNum++;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
$u = get_play_user($v['A'],$g['id']);
|
|
|
|
|
if(empty($u)){//用户名不存在
|
|
|
|
|
$errorList[$errorNum]['D'] = '用户名不存在';
|
|
|
|
|
$errorNum++;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if($v['C']<=0 || !preg_match('/^[1-9](\d+)?$/',$v['C'])){//金额有问题
|
|
|
|
|
$errorList[$errorNum]['D'] = '请输入大于0的整数';
|
|
|
|
|
$errorNum++;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
$succNum++;
|
|
|
|
|
$arr['user_account'] = $v['A'];
|
|
|
|
|
$arr['game_id'] = get_game_id($v['B']);
|
|
|
|
|
$arr['op_id']=UID;
|
|
|
|
|
$arr['op_account']=session("user_auth.username");
|
|
|
|
|
$arr['user_nickname']=get_user_nickname($v['A']);
|
|
|
|
|
$arr['user_id']=get_user_id($v['A']);
|
|
|
|
|
// $arr['cost']=$_POST['cost'];
|
|
|
|
|
$arr['pay_order_number']=build_order_no();
|
|
|
|
|
$arr['order_number']="ZF_".build_order_no();
|
|
|
|
|
$arr['game_name']=$v['B'];
|
|
|
|
|
$arr['amount'] = (double)$v['C'];
|
|
|
|
|
$arr['create_time'] = NOW_TIME;
|
|
|
|
|
$arr['create_time'] = NOW_TIME;
|
|
|
|
|
$res = D('Provide')->add($arr);
|
|
|
|
|
if($res){
|
|
|
|
|
$this->feAddOperationLog($arr['user_account'],$arr['amount']);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$a = json_encode($errorList);
|
|
|
|
|
$json = urlencode(json_encode($errorList));
|
|
|
|
|
$this->assign ( 'errorNum', $errorNum );
|
|
|
|
|
$this->assign ( 'succNum', $succNum );
|
|
|
|
|
$this->assign ( 'status', 1 );
|
|
|
|
|
$this->assign ( 'json', $json);
|
|
|
|
|
$this->success('成功:'.$succNum.';失败:'.$errorNum,U("Provide/lists",["type"=>2]));
|
|
|
|
|
}
|
|
|
|
|
//操作日志
|
|
|
|
|
public function feAddOperationLog($user,$num)
|
|
|
|
|
{
|
|
|
|
|
$optionarr = array(
|
|
|
|
|
"op_type"=>0,
|
|
|
|
|
"key"=>($user."/".$num),
|
|
|
|
|
"menu"=>"充值-绑币订单-后台发放玩家-绑币发放",
|
|
|
|
|
"url"=>U("Provide/lists",array("model"=>"provide","user_account"=>$user))
|
|
|
|
|
);
|
|
|
|
|
addOperationLog($optionarr);
|
|
|
|
|
}
|
|
|
|
|
}
|