Merge branch 'dev_zyx' into dev

master
zhengchanglong 5 years ago
commit e69bc5f459

3
.gitignore vendored

@ -5,4 +5,5 @@ Application/Common/Conf/env.php
Application/Common/Conf/pay_config.php
Application/Sdk/OrderNo/
.idea/
Uploads/
Uploads/
.vscode

@ -1437,4 +1437,77 @@ function cash_pay_way()
$pay_way[7]=array('key'=>8,'value'=>'金猪');
return $pay_way;
}
function getMonth() {
$start = date("Y-m", strtotime("now"));
//开始月份
$range = [];
$i = 1;
do {
$month = date('Y-m', strtotime($start . ' - ' . $i . ' month'));
$range[] = $month;
$i++;
} while ($i<13);
return $range;
}
function getPayType($type) {
$return = '';
switch ($type) {
case -1:
$return = '绑币';
break;
case 0:
$return = '平台币';
break;
case 1:
$return = '支付宝';
break;
case 2:
$return = '微信(扫码)';
break;
case 3:
$return = '微信app';
break;
case 4:
$return = '威富通';
break;
case 5:
$return = '聚宝云';
break;
case 6:
$return = '竣付通';
break;
default:
$return = '未知';
break;
}
return $return;
}
function getPartner() {
$map['status'] = 1;
$data = M('partner','tab_')->field('id,partner')->where($map)->select();
return $data;
}
function getGameList($partner_id) {
if ($partner_id) {
$map['partner_id'] = $partner_id;
} else {
return [];
}
$data = M('game','tab_')->field("id,game_name")->where($map)->select();
return $data;
}
?>

@ -5296,9 +5296,490 @@ if ($key == 'model'){
}
function exportFinanceIndex() {
$xlsName = '月结统计导出';
$xlsCell = array(
array('count_date','月份'),
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('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);
$sumData = [['count_date'=>'总计',
'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 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 parent_id = {$root_id} or root_id = {$root_id}";
}
}
if (!empty(I("game_id"))) {
$map['game_id'] = I("game_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 parent_id = {$parent_id}";
}
if (!empty(I('promote_id'))) {
$promote_id = I('promote_id');
$map['_string'] = "promote_id = {$promote_id}";
}
$map['bind_coin_count'] = ['neq',0];
$insideData = D("spend_count")->getSpendCountData($map,"game_id,bind_coin_count as count","promote_id,count_date,game_id");
unset($map['bind_coin_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(bind_coin_count) as inside_cash_count,sum(cash_count+balance_coin_count+bind_coin_count) as all_cash_count,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,'.','');
}
$sumCash = D("spend_count")->sumSpendCountField($map,"cash_count");
$sumBalance = D("spend_count")->sumSpendCountField($map,"balance_coin_count");
$sumInside = D("spend_count")->sumSpendCountField($map,"bind_coin_count");
$sumAll = D("spend_count")->sumSpendCountField($map,"cash_count+balance_coin_count+bind_coin_count");
$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() {
$month = I("game_name");
$xlsName = $month.'充值流水';
$xlsCell = array(
array('pay_order_number','支付订单号'),
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("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'] = I("user_account");
}
if (!empty(I('user_nickname'))) {
$map['user_nickname'] = 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";
$group = "";
$order = "pay_time DESC";
$xlsData = D('spend')->getSpendData($map,$field,$group,$order);
foreach($xlsData as $key => $value) {
$xlsData[$key]['pay_way'] = getPayType($value['pay_way']);
}
$sum = D('spend')->sumSpend($map,'pay_amount');
$sumData = [['pay_order_number'=>'总计',
'pay_way'=>$sum]];
$xlsData = array_merge($xlsData,$sumData);
$this->exportExcel($xlsName, $xlsCell, $xlsData);
}
function getPromoteList($root_id = 0) {
$data = M('promote','tab_')
->field("id")
->where("parent_id={$root_id} or grand_id={$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('all_count','总流水'),
);
if (!empty(I("root_name"))) {
$map['promote_account']=['like','%'.I("root_name").'%'];
}
$map['parent_id'] = 0;
$map['root_id'] = 0;
$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')
->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')
->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'],
'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("root_id"))) {
$root_id = I("root_id");
$parentData = $this->getParentSpendData($root_id,$month);
$map['parent_id'] =$root_id;
} 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('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')
->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')
->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 = [['promote_account'=>'总计',
'cash_count'=>$sumData['cash_count'],
'balance_coin_count'=>$sumData['balance_coin_count'],
'inside_cash_count'=>$sumData['inside_cash_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);
$map['parent_id'] =$parent_id;
}
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('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')
->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')
->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 = [['promote_account'=>'总计',
'cash_count'=>$sumData['cash_count'],
'balance_coin_count'=>$sumData['balance_coin_count'],
'inside_cash_count'=>$sumData['inside_cash_count'],
'all_count'=>$sumData['all_count'],
]];
$xlsData = array_merge($xlsData,$sumData);
$this->exportExcel($xlsName, $xlsCell, $xlsData);
}
function getParentSpendData($root_id,$date) {
$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_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(cash_count+balance_coin_count) as all_count')
->where($map)->select();
$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;
}
}

@ -0,0 +1,542 @@
<?php
namespace Admin\Controller;
use OSS\Core\OssException;
class FinanceController extends ThinkController
{
function index($p = 1) {
//总流水查询
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$row=10;
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
$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('partner_id'))) {
$map['partner_id']=I('collaborate_id');
}
// $data = M("spend_count","tab_")
// ->field("count_date,cash_count,balance_coin_count,inside_cash_count,all_cash_count")
// ->where($map)
// ->page($page,$row)
// ->group("count_date")
// ->select();
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) as all_cash_count";
$InsideField = "inside_cash_count";
$map['inside_cash_count'] = ['neq',0];
$insideData = D("spend_count")->getSpendCountData($map,"count_date,inside_cash_count as count","promote_id,count_date");
unset($map['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) as all_cash_count";
$InsideField = "bind_coin_count";
$map['bind_coin_count'] = ['neq',0];
$insideData = D("spend_count")->getSpendCountData($map,"count_date,bind_coin_count as count","promote_id,count_date,game_id");
unset($map['bind_coin_count']);
}
//内充流水与绑定流水数据
$insideDataSum = [];
foreach ($insideData as $key => $value) {
if (isset($insideDataSum[$value['count_date']])) {
$insideDataSum[$value['count_date']] = $insideDataSum[$value['count_date']] + $value['count'];
} else {
$insideDataSum[$value['count_date']] = $value['count'];
}
}
// var_dump($insideDataSum);
// var_dump(array_sum($insideDataSum));
// echo D("spend_count")->_sql();
// var_dump($insideData);die();
$group = "count_date";
$order = "id DESC";
$data = D("spend_count")->getSpendCountData($map,$field,$group,$order,$page,$row);
foreach ($data as $key => $value) {
$data[$key]['all_cash_count'] = $value['all_cash_count'] + $insideDataSum[$value['count_date']];
$data[$key]['inside_cash_count'] = $insideDataSum[$value['count_date']];
}
$sumCash = D("spend_count")->sumSpendCountField($map,"cash_count");
$sumBalance = D("spend_count")->sumSpendCountField($map,"balance_coin_count");
$sumInside = array_sum($insideDataSum);
$allField = "cash_count+balance_coin_count";
$sumAll = D("spend_count")->sumSpendCountField($map,$allField)+array_sum($insideDataSum);
$count = D("spend_count")->getSpendCountData($map,$field,$group,$order);
$count = count($count);
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
$this->meta_title = '月结统计';
$this->assign('sumCash',$sumCash);
$this->assign('sumBalance',$sumBalance);
$this->assign('sumInside',$sumInside);
$this->assign('sumAll',$sumAll);
$this->assign('data',$data);
$this->display();
}
function gameFinance($p = 1) {
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$row=10;
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
$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('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 parent_id = {$root_id} or root_id = {$root_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 parent_id = {$parent_id}";
}
if (!empty(I('promote_id'))) {
$promote_id = I('promote_id');
$map['_string'] = "promote_id = {$promote_id}";
}
$map['bind_coin_count'] = ['neq',0];
$insideData = D("spend_count")->getSpendCountData($map,"game_id,bind_coin_count as count","promote_id,count_date,game_id");
unset($map['bind_coin_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(bind_coin_count) as inside_cash_count,sum(cash_count+balance_coin_count+bind_coin_count) as all_cash_count,game_name,game_id,partner_name";
$group = "game_id";
$order = "id DESC";
$data = D("spend_count")->getSpendCountData($map,$field,$group,$order,$page,$row);
// echo D("spend_count")->_sql();die();
// echo D("spend_count")->_sql();die();
foreach ($data as $key => $value) {
$data[$key]['inside_cash_count'] = number_format($insideDataSum[$value['game_id']],2,'.','');
}
$sumCash = D("spend_count")->sumSpendCountField($map,"cash_count");
$sumBalance = D("spend_count")->sumSpendCountField($map,"balance_coin_count");
$sumInside = D("spend_count")->sumSpendCountField($map,"bind_coin_count");
$sumAll = D("spend_count")->sumSpendCountField($map,"cash_count+balance_coin_count+bind_coin_count");
$count = D("spend_count")->getSpendCountData($map,$field,$group,$order);
$count = count($count);
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
$this->meta_title = '每月情况查看详情';
$this->assign('sumCash',$sumCash);
$this->assign('sumBalance',$sumBalance);
$this->assign('sumInside',$sumInside);
$this->assign('sumAll',$sumAll);
$this->assign('data',$data);
$this->display();
}
function gameFinanceDetail($p = 1) {
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];
}
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$row=10;
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
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").'%');
}
// var_dump($map);die();
$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";
$group = "";
$order = "pay_time DESC";
$data = D('spend')->getSpendData($map,$field,$group,$order,$page,$row);
// echo D("spend")->_sql();die();
foreach($data as $key => $value) {
$data[$key]['pay_way'] = getPayType($value['pay_way']);
}
$sum = D('spend')->sumSpend($map,'pay_amount');
$count = D("spend")->getSpendData($map,$field,$group,$order);
$count = count($count);
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
$this->meta_title = '游戏充值流水';
$this->assign('data',$data);
$this->assign('sum_amount',$sum);
$this->display();
}
//按月份获取会长统计
public function getRootUser($p = 1)
{
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$row=10;
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
//获取所有数据
if (!empty(I("count_date"))) {
$map['count_date'] = I("count_date");
}
if (!empty(I("root_name"))) {
$map['promote_account']=['like','%'.I("root_name").'%'];
}
$map['parent_id'] = 0;
$map['root_id'] = 0;
$subQueryAll = 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')
->where($map)
->group('promote_id')
->page($page,$row)
->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')
->where($map)
->find();
$count = 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')
->where($map)
->group('promote_id')
->select();
$count = count($count);
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
$this->meta_title = '会长流水';
$this->assign('sumData',$sumData);
$this->assign('data',$subQueryAll);
$this->display();
}
public function getParentUser($p = 1)
{
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$row=10;
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
if (!empty(I("count_date")) ) {
$month = I("count_date");
$map['count_date'] =$month;
}
$parentData = [];
if (!empty(I("root_id"))) {
$root_id = I("root_id");
if ($page == 1) {
$parentData = $this->getParentSpendData($root_id,$month);
}
$map['parent_id'] =$root_id;
} 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.'%'];
}
$subQueryAll = 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')
->where($map)
->group('promote_id')
->page($page,$row)
->select();
$subQueryAll = array_merge($parentData,$subQueryAll);
$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')
->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,'.','');
$count = 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')
->where($map)
->group('promote_id')
->select();
$count = count($count);
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
$this->meta_title = '组长流水';
$this->assign('sumData',$sumData);
$this->assign('data',$subQueryAll);
$this->display();
}
public function getPromoteUser($p = 1)
{
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$row=10;
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
if (!empty(I("count_date"))) {
$month = I("count_date");
$map['count_date'] =$month;
}
$parentData = [];
if (!empty(I("parent_id"))) {
$parent_id = I("parent_id");
if ($page == 1) {
$parentData = $this->getParentSpendData($parent_id,$month);
}
$map['parent_id'] =$parent_id;
}
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];
}
}
// var_dump($map);die();
// var_dump($map);die();
$subQueryAll = 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')
->where($map)
->group('promote_id')
->page($page,$row)
->select();
$subQueryAll = array_merge($parentData,$subQueryAll);
$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')
->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,'.','');
$count = 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')
->where($map)
->group('promote_id')
->select();
$count = count($count);
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
$this->meta_title = '推广员流水';
$sum = array_sum($sumData);
$this->assign('sumData',$sumData);
$this->assign('data',$subQueryAll);
$this->display();
# code...
}
function getPromoteList($root_id = 0) {
$data = M('promote','tab_')
->field("id")
->where("parent_id={$root_id} or grand_id={$root_id}")
->select();
$handleData = [];
foreach ($data as $key => $value) {
array_push($handleData,$data[$key]['id']);
}
return $handleData;
}
function getGameList() {
if (I('partner_id')) {
$map['partner_id'] = I('partner_id');
}
$data = M('game','tab_')->field("id,game_name")->where($map)->select();
$this->ajaxReturn($data,'json');
}
function getParentSpendData($root_id,$date) {
$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_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(cash_count+balance_coin_count) as all_count')
->where($map)->select();
$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;
}
}

@ -0,0 +1,490 @@
<?php
namespace Admin\Controller;
/**
* 游戏流水聚合接口
* @author chenzhi
*/
class SpendCountSetController extends \Think\Controller
{
public $beginThismonth;
public $endThismonth;
public $date;
public $nowdata;
public $model;
public $usermodel;
public $continue=false;//单元测试,开启后可访问独立函数测试
public function _initialize(){
//初始化
$this->beginThismonth = mktime(0,0,0,date('m')-1,1,date('Y'));
$this->endThismonth = mktime(0,0,0,date('m')-1,date('t'),date('Y'))-1;
$this->date = date('Y')."-".((date('m')-1) > 9 ? (date('m')-1) : "0".(date('m')-1));
$this->nowdata =time();
$this->model =M("spend_count",'tab_');
$this->usermodel =M("spend_user_count",'tab_');
}
/**
* TODO:仅供测试,测试结束后删除
* 更新某月数据
*/
public function setMonthSpendCount()
{
$month = I("count_date");
if(empty($month)) die("参数错误");
$this->date = $month;
$tarry = explode('-',$month);
$this->beginThismonth=mktime(0,0,0,$tarry[1],1,$tarry[0]);
$this->endThismonth=mktime(0,0,0,$tarry[1]-0+1,1,$tarry[0])-1;
$this->setSpendCount();
}
/**
* 每个月的统计接口
*/
public function setSpendCount()
{
set_time_limit(0);
$t1 = microtime(true);
//判断是否已经聚合
$countRes = M("spend_count","tab_")->field("count(*) date_count")->where("count_date = '{$this->date}'")->find()['date_count'];
$countUserRes = M("spend_user_count","tab_")->field("count(*) date_count")->where("count_date = '{$this->date}'")->find()['date_count'];
if($countRes > 0 || $countUserRes >0){
die("error:Repeated statistics");
}
$this->model->startTrans();
$this->usermodel->startTrans();
$this->continue =true;
//执行游戏表统计
$this->setGameCount();
//执行用户表统计
$this->setUserCount();
//执行
$this->model->commit();
$this->usermodel->commit();
$t2 = microtime(true);
die("success runtime:".round($t2-$t1,3).'s');
}
/**
* 获取游戏聚合
*/
public function setGameCount()
{
$this->getCashData();
$this->getBalanceData();
$this->getBingData();
$this->getInsideData();
$this->getRoot();
# code...
}
//获取游戏现金流水
public function getCashData()
{
if(!$this->continue){
die("api error");
}
$map = array(
"pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
"spend.pay_status"=>1,
"pay_way"=>array("GT",0)
);
$field = "IFNULL(game.partner_id,0) partner_id,partner.partner partner_name,
spend.promote_id,spend.promote_account,spend.game_id,spend.game_name,
IFNULL(promote.parent_id,0) parent_id,promote.parent_name,sum(pay_amount) cash_count,
'{$this->date}' as count_date,'{$this->nowdata}' as create_time";
//获取现金
$cashRes = M()
->table("tab_spend spend")
->field($field)
->where($map)
->join("tab_promote promote ON spend.promote_id = promote.id","left")
->join("tab_game game ON spend.game_id = game.id","left")
->join("tab_partner partner ON partner.id = game.partner_id","left")
->group('spend.promote_id,spend.game_id')
->select();
if(!empty($cashRes)){
$dbres = $this->model->addAll($cashRes);
if(!$dbres){
$this->model->rollback();
die("error");
}
}
# code...
}
//获取平台币聚合
public function getBalanceData()
{
if(!$this->continue){
die("api error");
}
$map = array(
"pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
"spend.pay_status"=>1,
"pay_way"=> array("LT",1)
);
$field = "IFNULL(game.partner_id,0) partner_id,partner.partner partner_name,
spend.promote_id,spend.promote_account,spend.game_id,spend.game_name,
IFNULL(promote.parent_id,0) parent_id,promote.parent_name,sum(pay_amount) balance_coin_count,
'{$this->date}' as count_date,'{$this->nowdata}' as create_time";
$balanceRes = M()
->table("tab_spend spend")
->field($field)
->where($map)
->join("tab_promote promote ON spend.promote_id = promote.id","left")
->join("tab_game game ON spend.game_id = game.id","left")
->join("tab_partner partner ON partner.id = game.partner_id","left")
->group('spend.promote_id,spend.game_id')
->select();
//集中两个表
if(!empty($balanceRes)){
for ($i=0; $i < count($balanceRes); $i++) {
# code...
$tempmap = array(
"game_id"=>$balanceRes[$i]['game_id'],
"promote_id"=>$balanceRes[$i]['promote_id'],
"count_date"=>$this->date
);
$dbres = $this->model->where($tempmap)->find();
if(!$dbres){
//不存在
$tempdbres = $this->model->add($balanceRes[$i]);
if(!$tempdbres){
$this->model->rollback();
die("error");
}
}else{
$dbres["balance_coin_count"] = $balanceRes[$i]['balance_coin_count'];
$tempdbres = $this->model->save($dbres);
if(!$tempdbres){
$this->model->rollback();
die("error");
}
}
}
}
# code...
}
//获取绑定币充值
public function getBingData()
{
if(!$this->continue){
die("api error");
}
$bindRes = M()
->table("tab_bind_recharge bind")
->field("IFNULL(game.partner_id,0) partner_id,partner.partner partner_name,
bind.game_id,bind.game_name,bind.promote_id,bind.promote_account,
IFNULL(promote.parent_id,0) parent_id,promote.parent_name,sum(real_amount) bind_coin_count,
'{$this->date}' as count_date,'{$this->nowdata}' as create_time")
->where(array(
"bind.create_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
"bind.pay_status"=>1
))
->join("tab_promote promote ON bind.promote_id = promote.id","left")
->join("tab_game game ON bind.game_id = game.id","left")
->join("tab_partner partner ON partner.id = game.partner_id","left")
->group('bind.promote_id,bind.game_id')
->select();
//聚合表
if(!empty($bindRes)){
for ($i=0; $i < count($bindRes); $i++) {
# code...
$tempmap = array(
"game_id"=>$balanceRes[$i]['game_id'],
"promote_id"=>$balanceRes[$i]['promote_id'],
"count_date"=>$this->date
);
$dbres = $this->model->where($tempmap)->find();
if(!$dbres){
//不存在
$tempdbres =$this->model->add($bindRes[$i]);
if(!$tempdbres){
$this->model->rollback();
die("error");
}
}else{
$dbres["bind_coin_count"] = $bindRes[$i]['bind_coin_count'];
$tempdbres = $this->model->save($dbres);
if(!$tempdbres){
$this->model->rollback();
die("error");
}
}
}
}
}
//获取内充流水
public function getInsideData()
{
if(!$this->continue){
die("api error");
}
$insideRes = M()
->table("tab_deposit deposit")
->field("promote_id,promote_account,IFNULL(promote.parent_id,0) parent_id,parent_name,sum(pay_amount) inside_cash_count,'{$this->date}' as count_date,'{$this->nowdata}' as create_time")
->where(array(
"deposit.create_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
"pay_status"=>1
))
->join("tab_promote promote ON deposit.promote_id = promote.id","left")
->group('promote_id')
->select();
//聚合表
if(!empty($insideRes)){
for ($i=0; $i < count($insideRes); $i++) {
# code...
$tempmap = array(
"promote_id"=>$insideRes[$i]['promote_id'],
"count_date"=>$this->date
);
$dbres = $this->model->where($tempmap)->find();
if(!$dbres){
//不存在
$tempdbres = $this->model->add($insideRes[$i]);
if(!$tempdbres){
$this->model->rollback();
die("error");
}
}else{
$savedata = array("inside_cash_count"=>$insideRes[$i]['inside_cash_count']);
$tempdbres = $this->model->where($tempmap)->save($savedata);
if(!$tempdbres){
$this->model->rollback();
die("error");
}
}
}
}
// return true;
}
public function getRoot()
{
if(!$this->continue){
die("api error");
}
$map = array(
"parent_id"=>array("GT",0),
"count_date"=>$this->date
);
$user = $this->model->field("parent_id,promote_id")->where($map)->group("promote_id")->select();
$Promote=M("promote","tab_");
for ($i=0; $i < count($user); $i++) {
# code...
$map['id']=$user[$i]['parent_id'];
$root=$Promote->field('IFNULL(parent_id,0) root_id,parent_name root_name')->where($map)->find();
if(!$root){
$root['root_id']=0;
$root['root_name']='官方渠道';
}
//保存
$where = array(
"promote_id"=>$user[$i]['promote_id'],
"count_date"=>$this->date
);
$tempdbres = $this->model->where($where)->save($root);
if(!$tempdbres){
$this->model->rollback();
die("setRoot error");
}
}
}
/**
* 获取角色聚合
*/
public function setUserCount()
{
//获取会长信息
$this->getRootUser();
$this->getParentUser();
$this->getPromoteUser();
$this->getInsideData2();
}
/** --------以下为辅助函数---------- **/
//获取会长信息
public function getRootUser()
{
if(!$this->continue) die("api error");
//获取所有数据
$month = $this->date;
$from = "
(
SELECT root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count FROM tab_spend_count WHERE root_id > 0 and count_date='{$month}' group by root_id
UNION ALL
SELECT promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count FROM tab_spend_count WHERE parent_id = 0 and count_date='{$month}' group by promote_id
UNION ALL
SELECT parent_id,parent_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count FROM tab_spend_count WHERE parent_id > 0 and root_id = 0 and count_date='{$month}' group by parent_id
)
";
$subQueryAll = M()->table($from." a")
->field('root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count')
->group("a.root_id")
// ->having("cash_count > 0 OR balance_coin_count > 0")
->select();
for ($i=0; $i<count($subQueryAll); $i++) {
$adddata = array(
"promote_id"=>$subQueryAll[$i]['root_id'],
"promote_account"=>$subQueryAll[$i]['root_name'],
"parent_id"=>0,
"parent_name"=>'官方渠道',
"root_id"=>0,
"root_name"=>'官方渠道',
"cash_count"=>$subQueryAll[$i]['cash_count'],
"balance_coin_count"=>$subQueryAll[$i]['balance_coin_count'],
"all_count"=>$subQueryAll[$i]['cash_count']-0+$subQueryAll[$i]['balance_coin_count'],
"count_date"=>$this->date,
"create_time"=>$this->nowdata
);
$tempdbres = $this->usermodel->add($adddata);
if(!$tempdbres){
$this->usermodel->rollback();
die("getRootUser error");
}
}
}
//获取组长信息
public function getParentUser()
{
if(!$this->continue) die("api error");
$month =$this->date;
//获取数据
$from = "
(
SELECT parent_id,parent_name,root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count FROM tab_spend_count WHERE root_id > 0 and count_date='{$month}' group by parent_id
UNION
SELECT promote_id,promote_account,parent_id,parent_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count FROM tab_spend_count WHERE parent_id >0 and root_id = 0 and count_date='{$month}' group by promote_id
)
";
$subQueryAll = M()->table($from." a")
->field('parent_id,parent_name,root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count')
->group("a.parent_id")
// ->having("cash_count > 0 or balance_coin_count > 0 ")
->select();
for ($i=0; $i<count($subQueryAll); $i++) {
$adddata = array(
"promote_id"=>$subQueryAll[$i]['parent_id'],
"promote_account"=>$subQueryAll[$i]['parent_name'],
"parent_id"=>$subQueryAll[$i]['root_id'],
"parent_name"=>$subQueryAll[$i]['root_name'],
"root_id"=>0,
"root_name"=>'官方渠道',
"cash_count"=>$subQueryAll[$i]['cash_count'],
"balance_coin_count"=>$subQueryAll[$i]['balance_coin_count'],
"all_count"=>$subQueryAll[$i]['cash_count']-0+$subQueryAll[$i]['balance_coin_count'],
"count_date"=>$this->date,
"create_time"=>$this->nowdata
);
$tempdbres = $this->usermodel->add($adddata);
if(!$tempdbres){
$this->usermodel->rollback();
die("getParentUser error");
}
}
}
//获取组员
public function getPromoteUser()
{
if(!$this->continue) die("api error");
$month = $this->date;;
//获取数据
$from = "
(
SELECT promote_id,promote_account,parent_id,parent_name,root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count FROM tab_spend_count WHERE parent_id > 0 and root_id > 0 and count_date='{$month}' group by promote_id
)
";
$subQueryAll = M()->table($from." a")
->field('*')
->group("a.promote_id")
// ->having("cash_count > 0 or balance_coin_count > 0")
->select();
for ($i=0; $i<count($subQueryAll); $i++) {
$adddata = array(
"promote_id"=>$subQueryAll[$i]['promote_id'],
"promote_account"=>$subQueryAll[$i]['promote_account'],
"parent_id"=>$subQueryAll[$i]['parent_id'],
"parent_name"=>$subQueryAll[$i]['parent_name'],
"root_id"=>$subQueryAll[$i]['root_id'],
"root_name"=>$subQueryAll[$i]['root_name'],
"cash_count"=>$subQueryAll[$i]['cash_count'],
"balance_coin_count"=>$subQueryAll[$i]['balance_coin_count'],
"all_count"=>$subQueryAll[$i]['cash_count']-0+$subQueryAll[$i]['balance_coin_count'],
"count_date"=>$this->date,
"create_time"=>$this->nowdata
);
$tempdbres = $this->usermodel->add($adddata);
if(!$tempdbres){
$this->usermodel->rollback();
die("getPromoteUser error");
}
}
# code...
}
//处理inside_cash_count
public function getInsideData2()
{
if(!$this->continue) die("api error");
$insideRes = M()
->table("tab_deposit deposit")
->field("promote_id,promote_account,IFNULL(promote.parent_id,0) parent_id,parent_name,sum(pay_amount) inside_cash_count,'{$this->date}' as count_date,'{$this->nowdata}' as create_time")
->where(array(
"deposit.create_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
"pay_status"=>1
))
->join("tab_promote promote ON deposit.promote_id = promote.id","left")
->group('promote_id')
->select();
//聚合表
if(!empty($insideRes)){
for ($i=0; $i < count($insideRes); $i++) {
# code...
$tempmap = array(
"promote_id"=>$insideRes[$i]['promote_id'],
"count_date"=>$this->date
);
$dbres = M("spend_user_count","tab_")->where($tempmap)->find();
//修正数据
if($dbres['root_id'] > 0 && $dbres['parent_id'] > 0){//是推广员
//修正root
$this->setInsideCount($dbres['root_id'],$insideRes[$i]['inside_cash_count']);
//修正Parent
$this->setInsideCount($dbres['parent_id'],$insideRes[$i]['inside_cash_count']);
//修正自己
$this->setInsideCount($dbres['promote_id'],$insideRes[$i]['inside_cash_count']);
}elseif($dbres['root_id'] == 0 && $dbres['parent_id'] > 0){//是组长
//修正root
$this->setInsideCount($dbres['parent_id'],$insideRes[$i]['inside_cash_count']);
//修正Parent
$this->setInsideCount($dbres['promote_id'],$insideRes[$i]['inside_cash_count']);
}else{//是会长
//修正root
$this->setInsideCount($dbres['promote_id'],$insideRes[$i]['inside_cash_count']);
}
}
}
// return true;
}
//按角色修正inside_cash_count数据
public function setInsideCount($promote_id,$inside_cash_count)
{
$tempmap = array(
"promote_id"=>$promote_id,
"count_date"=>$this->date
);
$dbres = M("spend_user_count","tab_")->where($tempmap)->find();
$savedata = array("inside_cash_count"=>$inside_cash_count-0+$dbres['inside_cash_count'],"all_count"=>$inside_cash_count-0+$dbres['all_count']);
$tempdbres = $this->usermodel->where($tempmap)->save($savedata);
if(!$tempdbres){
$this->usermodel->rollback();
die("setInsideCount error");
}
# code...
}
}

@ -0,0 +1,52 @@
<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
// +----------------------------------------------------------------------
namespace Admin\Model;
use Think\Model;
/**
* 分类模型
*/
class SpendCountModel extends Model{
/**
* 构造函数
* @param string $name 模型名称
* @param string $tablePrefix 表前缀
* @param mixed $connection 数据库连接信息
*/
public function __construct($name = '', $tablePrefix = '', $connection = '') {
/* 设置默认的表前缀 */
$this->tablePrefix ='tab_';
/* 执行构造方法 */
parent::__construct($name, $tablePrefix, $connection);
}
/**
* 获取统计 $map,$page,$row
*/
public function getSpendCountData($map=[],$field='',$group='',$order='',$page = 0,$row = 0) {
if ($row == 0) {
$data = $this->field($field)->where($map)->group($group)->order($order)->select();
} else {
$data = $this->field($field)->where($map)->page($page,$row)->group($group)->order($order)->select();
}
return $data;
}
/**
* 获取某个字段的总和 $map,$field
*/
public function sumSpendCountField($map,$field) {
$sum = $this->where($map)->sum($field);
return $sum;
}
}

@ -740,5 +740,24 @@ protected function _after_select(&$result,$options){
return $data;
}
/**
* 获取统计 $map,$page,$row
*/
public function getSpendData($map=[],$field='',$group='',$order='',$page = 0,$row = 0) {
if ($row == 0) {
$data = $this->field($field)->where($map)->group($group)->order($order)->select();
} else {
$data = $this->field($field)->where($map)->page($page,$row)->group($group)->order($order)->select();
}
return $data;
}
public function sumSpend($map=[],$field='') {
$sum = $this->where($map)->sum($field);
return $sum;
}
}

@ -0,0 +1,219 @@
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
</style>
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">{$_REQUEST['count_date']}月结统计</h3>
<p class="description_text"></p>
</div>
<div class="cf top_nav_list">
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<!--游戏类型搜索END-->
<div class="input-list">
<a class="sch-btn" href="javascript:history.go(-1)" style="background:#fff;color: #000;border: #000 solid 1px;width: 100px">返回</a>
<a class="sch-btn" href="{:U('Export/exportGameFinance',
array('count_date'=>$_GET['count_date'],'root_id'=>$_GET['root_id'],'parent_id'=>$_GET['parent_id'],'promote_id'=>$_GET['promote_id'],'game_id'=>$_REQUEST['game_id'],false))}" style="width: 100px;border: #3C95C8 solid 1px;">导出</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th >游戏</th>
<th>合作方</th>
<th >游戏现金流水</th>
<th >平台币流水</th>
<th >绑定币流水</th>
<th >总流水</th>
<th >操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<style>
.data-table thead th, .data-table tbody td{text-align:center}
.data-table tbody td{border-right:1px solid #DDDDDD;}
.d_list .drop-down ul {z-index:999;}
</style>
<if condition = "empty($data)">
<tr>
<td colspan="14" class="text-center">aOh! 暂时还没有内容!</td>
</tr>
</if>
<notemtpy name = "data">
<volist name="data" id="data">
<tr>
<td ><if condition="$data.game_name neq ''">{$data.game_name}<else/></if></td>
<td ><if condition="$data.partner_name neq ''">{$data.partner_name}<else/></if></td>
<td ><if condition="$data.cash_count neq ''">{$data.cash_count}<else/>0</if></td>
<td ><if condition="$data.balance_coin_count neq ''">{$data.balance_coin_count}<else/>0</if></td>
<td ><if condition="$data.inside_cash_count neq ''">{$data.inside_cash_count}<else/>0</if></td>
<td ><if condition="$data.all_cash_count neq ''">{$data.all_cash_count}<else/>0</if></td>
<td >
<a href="{:U('Finance/gameFinanceDetail',
array('count_date'=>$_REQUEST['count_date'],'game_id'=>$data['game_id'],
'game_name'=>$data['game_name'],'root_id'=>$_REQUEST['root_id'],'parent_id'=>$_REQUEST['parent_id'],'promote_id'=>$_REQUEST['promote_id']))}" >查看</a>
</td>
</tr>
</volist>
<tr>
<td colspan="2" ><span>总计</span></td>
<td ><span><if condition="$sumCash neq ''">{$sumCash}<else/>0</if></span></td>
<td><if condition="$sumBalance neq ''">{$sumBalance}<else/>0</if></td>
<td><if condition="$sumInside neq ''">{$sumInside}<else/>0</if></td>
<td><if condition="$sumAll neq ''">{$sumAll}<else/>0</if></td>
<td>
<a href="{:U('Finance/gameFinanceDetail',
array('count_date'=>$_REQUEST['count_date'],'root_id'=>$_GET['root_id'],'parent_id'=>$_REQUEST['parent_id'],'promote_id'=>$_REQUEST['promote_id'],'game_id'=>$_REQUEST['game_id']))}" >查看</a>
</td>
</tr>
</notemtpy>
</tbody>
</table>
</div>
</div>
<div class="page">
{$_page|default=''}
</div>
</block>
<block name="script">
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js" ></script>
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U('Finance/index')}');
$(function(){
//搜索功能
$("#search").click(function(){
var starttime = $.trim($('#time-start').val());
var endtime = $.trim($('#time-end').val());
if (starttime && endtime && starttime > endtime) {layer.msg('开始时间必须小于等于结束时间');return false;}
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;
}else{
url += '?' + query;
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
});
$(".ljcz").click(function(){
var id = $(this).attr('data-value');
var game_name = "{:I('game_name')}";
var server_name = "{:I('server_id')}";
layer.open({
type: 2,
title: '游戏消费记录',
shadeClose: true,
shade: 0.8,
area: ['70%', '80%'],
content: 'admin.php?s=/Platform/chongzhi_detail/promote_id/'+id+'/game_name/'+game_name+'/server_name/'+server_name+''//iframe的url
});
});
$("#game_id").change(function(){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
type:"post",
data:{game_id:$("#game_id option:selected").attr('game-id')},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"'>"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
});
var game_id = "{:I('game_name')}";
var game_server = "{:I('server_id')}";
if(game_id){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
type:"post",
data:{game_id:game_id,type:2},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"' "+(game_server && data[i].server_name == game_server?'selected':'')+">"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
}
})
</script>
</block>

@ -0,0 +1,236 @@
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
</style>
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">{$_REQUEST['game_name']}充值流水</h3>
<p class="description_text"></p>
</div>
<div class="cf top_nav_list">
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<!--游戏类型搜索END-->
<div class="input-list">
<a class="sch-btn" href="javascript:history.go(-1)" style="background:#fff;color: #000;border: #000 solid 1px;width: 100px">返回</a>
<a class="sch-btn" href="{:U('Export/gameFinanceDetail',
array('count_date'=>$_GET['count_date'],'game_id'=>$_GET['game_id'],'game_name'=>$_GET['game_name'],'user_account'=>$_GET['user_account'],'user_nickname'=>$_GET['user_nickname'],'parent_id'=>$_GET['parent_id'],'root_id'=>$_GET['root_id'],false))}" style="width: 100px;border: #3C95C8 solid 1px;">导出</a>
</div>
<input type="hidden" name="count_date" value="{$_GET['count_date']}"/>
<input type="hidden" name="game_id" value="{$_GET['game_id']}"/>
<input type="hidden" name="game_name" value="{$_GET['game_name']}"/>
<div class="input-list">
<input type="text" name="user_account" placeholder="请输入玩家账号搜索" class="" value="{:I('user_account')}"/>&nbsp;
</div>
<div class="input-list">
<input type="text" name="user_nickname" placeholder="请输入玩家昵称搜索" class="" value="{:I('user_nickname')}"/>&nbsp;
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('Finance/gameFinanceDetail','model='.$model['name'].'&row='.I('row'),false)}"
style="">搜索</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th >支付订单号</th>
<th>充值时间</th>
<th >玩家账号</th>
<th >游戏名称</th>
<th >所属推广员</th>
<th >充值ip</th>
<th >游戏区服</th>
<th >角色名称</th>
<th >订单金额</th>
<th >实付金额</th>
<th >充值方式</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<style>
.data-table thead th, .data-table tbody td{text-align:center}
.data-table tbody td{border-right:1px solid #DDDDDD;}
.d_list .drop-down ul {z-index:999;}
</style>
<if condition = "empty($data)">
<tr>
<td colspan="14" class="text-center">aOh! 暂时还没有内容!</td>
</tr>
</if>
<notemtpy name = "data">
<volist name="data" id="data">
<tr>
<td >{$data.pay_order_number}</td>
<td >{$data.pay_time}</td>
<td >{$data.user_account}</td>
<td >{$data.game_name}</td>
<td >{$data.promote_account}</td>
<td >{$data.spend_ip}</td>
<td >{$data.server_name}</td>
<td >{$data.game_player_name}</td>
<td >{$data.cost}</td>
<td >{$data.pay_amount}</td>
<td >{$data.pay_way}</td>
</tr>
</volist>
<tr>
<td ><span>总计</span></td>
<td colspan="10" ><span><if condition="$sum_amount neq ''">{$sum_amount}<else/>0</if></span></td>
</tr>
</notemtpy>
</tbody>
</table>
</div>
</div>
<div class="page">
{$_page|default=''}
</div>
</block>
<block name="script">
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js" ></script>
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U('Finance/index')}');
$(function(){
//搜索功能
$("#search").click(function(){
var starttime = $.trim($('#time-start').val());
var endtime = $.trim($('#time-end').val());
if (starttime && endtime && starttime > endtime) {layer.msg('开始时间必须小于等于结束时间');return false;}
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;
}else{
url += '?' + query;
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
});
$(".ljcz").click(function(){
var id = $(this).attr('data-value');
var game_name = "{:I('game_name')}";
var server_name = "{:I('server_id')}";
layer.open({
type: 2,
title: '游戏消费记录',
shadeClose: true,
shade: 0.8,
area: ['70%', '80%'],
content: 'admin.php?s=/Platform/chongzhi_detail/promote_id/'+id+'/game_name/'+game_name+'/server_name/'+server_name+''//iframe的url
});
});
$("#game_id").change(function(){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
type:"post",
data:{game_id:$("#game_id option:selected").attr('game-id')},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"'>"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
});
var game_id = "{:I('game_name')}";
var game_server = "{:I('server_id')}";
if(game_id){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
type:"post",
data:{game_id:game_id,type:2},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"' "+(game_server && data[i].server_name == game_server?'selected':'')+">"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
}
})
</script>
</block>

@ -0,0 +1,228 @@
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
</style>
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">组长月结统计</h3>
<p class="description_text"></p>
</div>
<div class="cf top_nav_list">
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<!--游戏类型搜索END-->
<div class="input-list">
<a class="sch-btn" href="javascript:history.go(-1)" style="background:#fff;color: #000;border: #000 solid 1px;width: 100px">返回</a>
<a class="sch-btn" href="{:U('Export/exportGetParentUser',
array('count_date'=>$_GET['count_date'],'root_name'=>$_GET['root_name'],'root_id'=>$_GET['root_id'],'',false))}" style="width: 100px;border: #3C95C8 solid 1px;">导出</a>
</div>
<input type="hidden" name="root_id" value="{$_GET['root_id']}"/>
<input type="hidden" name="count_date" value="{$_GET['count_date']}"/>
<div class="input-list">
<input type="text" name="root_name" placeholder="请输入会长账号搜索" class="" value="{:I('root_name')}"/>&nbsp;
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('Finance/getParentUser','model='.$model['name'].'&row='.I('row'),false)}"
style="">搜索</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th >会长渠道</th>
<th>游戏现金流水</th>
<th >平台币流水</th>
<th >内充流水</th>
<th >总流水</th>
<th >操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<style>
.data-table thead th, .data-table tbody td{text-align:center}
.data-table tbody td{border-right:1px solid #DDDDDD;}
.d_list .drop-down ul {z-index:999;}
</style>
<if condition = "empty($data)">
<tr>
<td colspan="14" class="text-center">aOh! 暂时还没有内容!</td>
</tr>
</if>
<notemtpy name = "data">
<volist name="data" id="data">
<tr>
<td >{$data.promote_account}</td>
<td >{$data.cash_count}</td>
<td >{$data.balance_coin_count}</td>
<td >{$data.inside_cash_count}</td>
<td >{$data.all_count}</td>
<td ><if condition="$data['promote_id'] neq $_GET['root_id']">
<a href="{:U('Finance/gameFinance',array('parent_id'=>$data['promote_id'],'count_date'=>$_GET['count_date']))}" >游戏查看</a>
<a href="{:U('Finance/getPromoteUser',array('count_date'=>$_GET['count_date'],'parent_id'=>$data['promote_id'],'root_id'=>$_GET['root_id']))}" >渠道查看</a>
<else/>
-------
</if></td>
</volist>
<tr>
<td ><span>总计</span></td>
<td ><span>{$sumData.cash_count}</span></td>
<td ><span>{$sumData.balance_coin_count}</span></td>
<td ><span>{$sumData.inside_cash_count}</span></td>
<td ><span>{$sumData.all_count}</span></td>
<td >
<a href="{:U('Finance/gameFinance',array('count_date'=>$_GET['count_date'],'root_id'=>$_GET['root_id']))}" >游戏查看</a>
<!-- <a href="{:U('Finance/getPromoteUser',array('count_date'=>$_GET['count_date'],'root_id'=>$_GET['root_id'],'sign'=>1))}" >渠道查看</a>-->
</td>
</tr>
</notemtpy>
</tbody>
</table>
</div>
</div>
<div class="page">
{$_page|default=''}
</div>
</block>
<block name="script">
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js" ></script>
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U('Finance/index')}');
$(function(){
//搜索功能
$("#search").click(function(){
var starttime = $.trim($('#time-start').val());
var endtime = $.trim($('#time-end').val());
if (starttime && endtime && starttime > endtime) {layer.msg('开始时间必须小于等于结束时间');return false;}
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;
}else{
url += '?' + query;
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
});
$(".ljcz").click(function(){
var id = $(this).attr('data-value');
var game_name = "{:I('game_name')}";
var server_name = "{:I('server_id')}";
layer.open({
type: 2,
title: '游戏消费记录',
shadeClose: true,
shade: 0.8,
area: ['70%', '80%'],
content: 'admin.php?s=/Platform/chongzhi_detail/promote_id/'+id+'/game_name/'+game_name+'/server_name/'+server_name+''//iframe的url
});
});
$("#game_id").change(function(){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
type:"post",
data:{game_id:$("#game_id option:selected").attr('game-id')},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"'>"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
});
var game_id = "{:I('game_name')}";
var game_server = "{:I('server_id')}";
if(game_id){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
type:"post",
data:{game_id:game_id,type:2},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"' "+(game_server && data[i].server_name == game_server?'selected':'')+">"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
}
})
</script>
</block>

@ -0,0 +1,216 @@
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
</style>
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">推广员月结统计</h3>
<p class="description_text"></p>
</div>
<div class="cf top_nav_list">
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<!--游戏类型搜索END-->
<div class="input-list">
<a class="sch-btn" href="javascript:history.go(-1)" style="background:#fff;color: #000;border: #000 solid 1px;width: 100px">返回</a>
<a class="sch-btn" href="{:U('Export/exportGetPromoteUser',
array('count_date'=>$_GET['count_date'],'parent_id'=>$_GET['parent_id'],'root_id'=>$_GET['root_id'],false))}" style="width: 100px;border: #3C95C8 solid 1px;">导出</a>
</div>
<input type="hidden" name="count_date" value="{$_GET['count_date']}"/>
<input type="hidden" name="game_id" value="{$_GET['game_id']}"/>
<input type="hidden" name="game_name" value="{$_GET['game_name']}"/>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th >推广员渠道</th>
<th>游戏现金流水</th>
<th >平台币流水</th>
<th >内充流水</th>
<th >总流水</th>
<th >操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<style>
.data-table thead th, .data-table tbody td{text-align:center}
.data-table tbody td{border-right:1px solid #DDDDDD;}
.d_list .drop-down ul {z-index:999;}
</style>
<if condition = "empty($data)">
<tr>
<td colspan="14" class="text-center">aOh! 暂时还没有内容!</td>
</tr>
</if>
<notemtpy name = "data">
<volist name="data" id="data">
<tr>
<td >{$data.promote_account}</td>
<td >{$data.cash_count}</td>
<td >{$data.balance_coin_count}</td>
<td >{$data.inside_cash_count}</td>
<td >{$data.all_count}</td>
<td ><if condition="$data['promote_id'] neq $_GET['parent_id']">
<a href="{:U('Finance/gameFinance',array('promote_id'=>$data['promote_id'],'count_date'=>$_GET['count_date']))}" >游戏查看</a>
<else/>
-------
</if></td>
</volist>
<tr>
<td ><span>总计</span></td>
<td ><span>{$sumData.cash_count}</span></td>
<td ><span>{$sumData.balance_coin_count}</span></td>
<td ><span>{$sumData.inside_cash_count}</span></td>
<td ><span>{$sumData.all_count}</span></td>
<td ><a href="{:U('Finance/gameFinance',array('count_date'=>$_GET['count_date'],'parent_id'=>$_GET['parent_id'],'sign'=>3))}" >游戏查看</a>
</tr>
</notemtpy>
</tbody>
</table>
</div>
</div>
<div class="page">
{$_page|default=''}
</div>
</block>
<block name="script">
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js" ></script>
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U('Finance/index')}');
$(function(){
//搜索功能
$("#search").click(function(){
var starttime = $.trim($('#time-start').val());
var endtime = $.trim($('#time-end').val());
if (starttime && endtime && starttime > endtime) {layer.msg('开始时间必须小于等于结束时间');return false;}
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;
}else{
url += '?' + query;
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
});
$(".ljcz").click(function(){
var id = $(this).attr('data-value');
var game_name = "{:I('game_name')}";
var server_name = "{:I('server_id')}";
layer.open({
type: 2,
title: '游戏消费记录',
shadeClose: true,
shade: 0.8,
area: ['70%', '80%'],
content: 'admin.php?s=/Platform/chongzhi_detail/promote_id/'+id+'/game_name/'+game_name+'/server_name/'+server_name+''//iframe的url
});
});
$("#game_id").change(function(){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
type:"post",
data:{game_id:$("#game_id option:selected").attr('game-id')},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"'>"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
});
var game_id = "{:I('game_name')}";
var game_server = "{:I('server_id')}";
if(game_id){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
type:"post",
data:{game_id:game_id,type:2},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"' "+(game_server && data[i].server_name == game_server?'selected':'')+">"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
}
})
</script>
</block>

@ -0,0 +1,223 @@
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
</style>
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">会长月结统计</h3>
<p class="description_text"></p>
</div>
<div class="cf top_nav_list">
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<!--游戏类型搜索END-->
<div class="input-list">
<a class="sch-btn" href="javascript:history.go(-1)" style="background:#fff;color: #000;border: #000 solid 1px;width: 100px">返回</a>
<a class="sch-btn" href="{:U('Export/exportGetRootUser',
array('count_date'=>$_GET['count_date'],'root_name'=>$_GET['root_name'],false))}" style="width: 100px;border: #3C95C8 solid 1px;">导出</a>
</div>
<input type="hidden" name="count_date" value="{$_GET['count_date']}"/>
<input type="hidden" name="game_id" value="{$_GET['game_id']}"/>
<input type="hidden" name="game_name" value="{$_GET['game_name']}"/>
<div class="input-list">
<input type="text" name="root_name" placeholder="请输入会长账号搜索" class="" value="{:I('root_name')}"/>&nbsp;
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('Finance/getRootUser','model='.$model['name'].'&row='.I('row'),false)}"
style="">搜索</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th >会长渠道</th>
<th>游戏现金流水</th>
<th >平台币流水</th>
<th >内充流水</th>
<th >总流水</th>
<th >操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<style>
.data-table thead th, .data-table tbody td{text-align:center}
.data-table tbody td{border-right:1px solid #DDDDDD;}
.d_list .drop-down ul {z-index:999;}
</style>
<if condition = "empty($data)">
<tr>
<td colspan="14" class="text-center">aOh! 暂时还没有内容!</td>
</tr>
</if>
<notemtpy name = "data">
<volist name="data" id="data">
<tr>
<td >{$data.promote_account}</td>
<td >{$data.cash_count}</td>
<td >{$data.balance_coin_count}</td>
<td >{$data.inside_cash_count}</td>
<td >{$data.all_count}</td>
<td ><a href="{:U('Finance/gameFinance',array('root_id'=>$data['promote_id'],'count_date'=>$_GET['count_date']))}" >游戏查看</a>
<a href="{:U('Finance/getParentUser',array('count_date'=>$_GET['count_date'],'root_name'=>$_GET['root_name'],'root_id'=>$data['promote_id']))}" >渠道查看</a></td>
</volist>
<tr>
<td ><span>总计</span></td>
<td ><span>{$sumData.cash_count}</span></td>
<td ><span>{$sumData.balance_coin_count}</span></td>
<td ><span>{$sumData.inside_cash_count}</span></td>
<td ><span>{$sumData.all_count}</span></td>
<td ><a href="{:U('Finance/gameFinance',array('count_date'=>$_GET['count_date'],'sign'=>1))}" >游戏查看</a>
<!-- <a href="{:U('Finance/getParentUser',array('count_date'=>$_GET['count_date'],'root_name'=>$_GET['root_name'],'sign'=>1))}" >渠道查看</a></td>-->
</tr>
</notemtpy>
</tbody>
</table>
</div>
</div>
<div class="page">
{$_page|default=''}
</div>
</block>
<block name="script">
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js" ></script>
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U('Finance/index')}');
$(function(){
//搜索功能
$("#search").click(function(){
var starttime = $.trim($('#time-start').val());
var endtime = $.trim($('#time-end').val());
if (starttime && endtime && starttime > endtime) {layer.msg('开始时间必须小于等于结束时间');return false;}
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;
}else{
url += '?' + query;
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
});
$(".ljcz").click(function(){
var id = $(this).attr('data-value');
var game_name = "{:I('game_name')}";
var server_name = "{:I('server_id')}";
layer.open({
type: 2,
title: '游戏消费记录',
shadeClose: true,
shade: 0.8,
area: ['70%', '80%'],
content: 'admin.php?s=/Platform/chongzhi_detail/promote_id/'+id+'/game_name/'+game_name+'/server_name/'+server_name+''//iframe的url
});
});
$("#game_id").change(function(){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
type:"post",
data:{game_id:$("#game_id option:selected").attr('game-id')},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"'>"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
});
var game_id = "{:I('game_name')}";
var game_server = "{:I('server_id')}";
if(game_id){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
type:"post",
data:{game_id:game_id,type:2},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"' "+(game_server && data[i].server_name == game_server?'selected':'')+">"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
}
})
</script>
</block>

@ -0,0 +1,252 @@
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
</style>
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">月结统计</h3>
<p class="description_text"></p>
</div>
<div class="cf top_nav_list">
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<!--游戏类型搜索END-->
<div class="input-list input-list-promote search_label_rehab">
<select id="count_date" name="count_date" class="select_gallery" style="width:150px;">
<option value="">请选择月份</option>
<volist name=":getMonth()" id="vo">
<option value="{$vo}" <if condition="$vo eq $_GET['count_date']">selected=selected</if>>{$vo}</option>
</volist>
</select>
</div>
<div class="input-list input-list-server search_label_rehab">
<select id="partner_id" name="partner_id" class="select_gallery" style="width:120px;">
<option value="">请选择合作方</option>
<volist name=":getPartner()" id="vo">
<option partner-id="{$vo.id}" value="{$vo.id}" <if condition="$vo.id eq $_GET['partner_id']">selected=selected</if>>{$vo.partner}</option>
</volist>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_id" name="game_id" class="select_gallery" style="width:120px;">
<option value="">请选择游戏</option>
<volist name=":getGameList($_GET['partner_id'])" id="vo">
<option value="{$vo.id}" <if condition="$vo.id eq $_GET['game_id']">selected=selected</if>>{$vo.game_name}</option>
</volist>
</select>
</div>
<input type="hidden" name="" value="" class="sortBy">
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('Finance/index','model='.$model['name'].'&row='.I('row'),false)}"
style="width: 100px;border: #3C95C8 solid 1px;">搜索</a>
<a class="sch-btn" href="{:U('Export/exportFinanceIndex',
array('count_date'=>$_GET['count_date'],'game_id'=>$_GET['game_id'],'collaborate_id'=>$_GET['collaborate_id'])
,false)}" style="width: 100px;border: #3C95C8 solid 1px;">导出</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<!-- <th class="row-selected row-selected">
<input class="check-all" type="checkbox">
</th> -->
<th >月份</th>
<th >游戏现金流水</th>
<th >平台币流水</th>
<th ><if condition="$_GET['game_id'] neq ''">绑定币流水<else/>内充流水</if></th>
<th >总流水</th>
<th >操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<style>
.data-table thead th, .data-table tbody td{text-align:center}
.data-table tbody td{border-right:1px solid #DDDDDD;}
.d_list .drop-down ul {z-index:999;}
</style>
<!-- <if condition = "empty($data)">-->
<!-- <tr>-->
<!-- <td colspan="14" class="text-center">aOh! 暂时还没有内容!</td>-->
<!-- </tr>-->
<!-- </if>-->
<notemtpy name = "data">
<volist name="data" id="data">
<tr>
<td >{$data.count_date}</td>
<td >{$data.cash_count}</td>
<td >{$data.balance_coin_count}</td>
<td >{$data.inside_cash_count}</td>
<td >{$data.all_cash_count}</td>
<td >
<a href="{:U('Finance/gameFinance',
array('count_date'=>$data['count_date'],'game_id'=>$_GET['game_id'],'collaborate_id'=>$_GET['collaborate_id'],'sign'=>1))}" >游戏查看</a>
<a href="{:U('Finance/getRootUser',
array('count_date'=>$data['count_date'])
,false)}" >渠道查看</a>
</td>
</tr>
</volist>
<tr>
<td><span>总计</span></td>
<td ><span><if condition="$sumCash neq ''">{$sumCash}<else/>0</if></span></td>
<td><if condition="$sumBalance neq ''">{$sumBalance}<else/>0</if></td>
<td><if condition="$sumInside neq ''">{$sumInside}<else/>0</if></td>
<td><if condition="$sumAll neq ''">{$sumAll}<else/>0</if></td>
<td>
<a href="{:U('Finance/gameFinance',array('sign'=>1,'game_id'=>$_GET['game_id']))}" >游戏查看</a>
<a href="{:U('Finance/getRootUser')}" >渠道查看</a>
</td>
</tr>
</notemtpy>
</tbody>
</table>
</div>
</div>
<div class="page">
<a class="sch-btn" href="{:U('Export/exportFinanceIndex',
array('count_date'=>$_GET['count_date'],'game_id'=>$_GET['game_id'],'collaborate_id'=>$_GET['collaborate_id'])
,false)}">导出</a>
{$_page|default=''}
</div>
</block>
<block name="script">
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js" ></script>
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U('Finance/index')}');
$(function(){
//搜索功能
$("#search").click(function(){
var starttime = $.trim($('#time-start').val());
var endtime = $.trim($('#time-end').val());
if (starttime && endtime && starttime > endtime) {layer.msg('开始时间必须小于等于结束时间');return false;}
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&" + $('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;
}else{
url += '?' + query;
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
});
$(".ljcz").click(function(){
var id = $(this).attr('data-value');
var game_name = "{:I('game_name')}";
var server_name = "{:I('server_id')}";
layer.open({
type: 2,
title: '游戏消费记录',
shadeClose: true,
shade: 0.8,
area: ['70%', '80%'],
content: 'admin.php?s=/Platform/chongzhi_detail/promote_id/'+id+'/game_name/'+game_name+'/server_name/'+server_name+''//iframe的url
});
});
$("#partner_id").change(function(){
$.ajax({
url:"{:U('Finance/getGameList')}",
type:"post",
data:{partner_id:$("#partner_id option:selected").attr('partner-id')},
dataType:'json',
success:function(data){
var str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].id+"'>"+data[i].game_name+"</option>"
}
console.log(str);
$("#game_id").empty();
$("#game_id").append(str);
// $("#server_id").select2();
}
})
});
var game_id = "{:I('game_name')}";
var game_server = "{:I('server_id')}";
if(game_id){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
type:"post",
data:{game_id:game_id,type:2},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"' "+(game_server && data[i].server_name == game_server?'selected':'')+">"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
}
})
</script>
</block>

@ -71,12 +71,26 @@ class PromoteController extends BaseController
$logCount = M('protect_log','tab_')->count();
$readLogCount = M('protect_log_read','tab_')->where("promote_id = {$promote_id}")->count();
$gg_Count = M("document", "sys_")->where("category_id=56 and status=1")->count();
$gg_ReadDocument = M("document_read", "sys_")->where("promote_id = {$promote_id} and category_id=56")->count();
$gg_data = M("document", "sys_")->where("category_id=56 and status=1")->order("update_time desc")->select();
$gg_Count = count($gg_data);
$gg_data = implode(',',array_column($gg_data,'id'));
$gg_where = "promote_id = {$promote_id} and category_id=56";
if ($gg_data) {
$gg_where .= " and document_id IN({$gg_data})";
}
$gg_ReadDocument = M("document_read", "sys_")->where($gg_where)->count();
// var_dump($gg_ReadDocument);die();
$zx_Count = M("document", "sys_")->where("category_id=51 and status=1")->count();
$zx_ReadDocument = M("document_read", "sys_")->where("promote_id = {$promote_id} and category_id=51")->count();
$zx_data = M("document", "sys_")->where("category_id=51 and status=1")->order("update_time desc")->select();
$zx_Count = count($zx_data);
$zx_data = implode(',',array_column($zx_data,'id'));
$zx_where = "promote_id = {$promote_id} and category_id=51";
if ($zx_data) {
$zx_where .= " and document_id IN({$zx_data})";
}
$zx_ReadDocument = M("document_read", "sys_")->where($zx_where)->count();
$xx_list = null;
$today_start = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
@ -511,11 +525,26 @@ class PromoteController extends BaseController
$logCount = M('protect_log','tab_')->count();
$readLogCount = M('protect_log_read','tab_')->where("promote_id = {$promote_id}")->count();
$gg_Count = M("document", "sys_")->where("category_id=56 and status=1")->count();
$gg_ReadDocument = M("document_read", "sys_")->where("promote_id = {$promote_id} and category_id=56")->count();
$gg_data = M("document", "sys_")->where("category_id=56 and status=1")->order("update_time desc")->select();
$gg_Count = count($gg_data);
$gg_data = implode(',',array_column($gg_data,'id'));
$zx_Count = M("document", "sys_")->where("category_id=51 and status=1")->count();
$zx_ReadDocument = M("document_read", "sys_")->where("promote_id = {$promote_id} and category_id=51")->count();
$gg_where = "promote_id = {$promote_id} and category_id=56";
if ($gg_data) {
$gg_where .= " and document_id IN({$gg_data})";
}
$gg_ReadDocument = M("document_read", "sys_")->where($gg_where)->count();
// var_dump($gg_ReadDocument);die();
$zx_data = M("document", "sys_")->where("category_id=51 and status=1")->order("update_time desc")->select();
$zx_Count = count($zx_data);
$zx_data = implode(',',array_column($zx_data,'id'));
$zx_where = "promote_id = {$promote_id} and category_id=51";
if ($zx_data) {
$zx_where .= " and document_id IN({$zx_data})";
}
$zx_ReadDocument = M("document_read", "sys_")->where($zx_where)->count();
$parameter['p'] = I('get.p', 1);
$parameter['row'] = I('get.row');

@ -188,4 +188,50 @@ CREATE TABLE `tab_partner` (
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `tab_game` ADD COLUMN `partner_id` int(11) NOT NULL DEFAULT 0 COMMENT '合作方ID' AFTER `supersign_url`;
ALTER TABLE `tab_partner` MODIFY COLUMN `partner` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '合作方名称' AFTER `id`;
ALTER TABLE `tab_partner` MODIFY COLUMN `partner` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '合作方名称' AFTER `id`;
-- 2019-10-28 chenzhi
CREATE TABLE `tab_spend_count` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`promote_id` int(11) NOT NULL DEFAULT '0' COMMENT '推广员id',
`promote_account` varchar(30) DEFAULT '' COMMENT '推广员账号',
`parent_id` int(11) DEFAULT '0' COMMENT '父类ID',
`parent_name` varchar(30) DEFAULT NULL COMMENT '父类名称',
`root_id` int(11) DEFAULT 0 COMMENT '根ID',
`root_name` varchar(30) DEFAULT NULL COMMENT '根名称',
`game_id` int(11) NOT NULL DEFAULT '0' COMMENT '游戏id',
`game_name` varchar(30) DEFAULT '' COMMENT '游戏名称',
`partner_id` int(11) DEFAULT '0' COMMENT '合作方id',
`partner_name` varchar(50) DEFAULT NULL COMMENT '合作方名称',
`cash_count` decimal(10,2) DEFAULT '0.00' COMMENT '现金流水',
`balance_coin_count` decimal(10,2) DEFAULT '0.00' COMMENT '平台币流水',
`bind_coin_count` decimal(10,2) DEFAULT '0.00' COMMENT '绑定币流水',
`inside_cash_count` decimal(10,2) DEFAULT '0.00' COMMENT '内充流水(仅对用户与月份唯一)',
`count_date` varchar(30) DEFAULT '' COMMENT '统计月份',
`create_time` int(11) DEFAULT NULL COMMENT '添加时间',
PRIMARY KEY (`id`) USING BTREE,
KEY `game_id` (`game_id`) USING BTREE,
KEY `promote_id` (`promote_id`) USING BTREE,
KEY `partner_id` (`partner_id`) USING BTREE,
KEY `count_date` (`count_date`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='游戏流水聚合表';
CREATE TABLE `tab_spend_user_count` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`promote_id` int(11) NOT NULL DEFAULT '0' COMMENT '推广员id',
`promote_account` varchar(30) DEFAULT '' COMMENT '推广员账号',
`parent_id` int(11) DEFAULT '0' COMMENT '父类ID',
`parent_name` varchar(30) DEFAULT NULL COMMENT '父类名称',
`root_id` int(11) DEFAULT 0 COMMENT '根ID',
`root_name` varchar(30) DEFAULT NULL COMMENT '根名称',
`cash_count` decimal(10,2) DEFAULT '0.00' COMMENT '现金流水',
`balance_coin_count` decimal(10,2) DEFAULT '0.00' COMMENT '平台币流水',
`inside_cash_count` decimal(10,2) DEFAULT '0.00' COMMENT '内充流水',
`all_count` decimal(10,2) DEFAULT '0.00' COMMENT '内充流水',
`count_date` varchar(30) DEFAULT '' COMMENT '统计月份',
`create_time` int(11) DEFAULT NULL COMMENT '添加时间',
PRIMARY KEY (`id`) USING BTREE,
KEY `promote_id` (`promote_id`) USING BTREE,
KEY `parent_id` (`parent_id`) USING BTREE,
KEY `count_date` (`count_date`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='流水角色聚合表';
Loading…
Cancel
Save