diff --git a/Application/Admin/Controller/AjaxController.class.php b/Application/Admin/Controller/AjaxController.class.php index 685ad3c6a..8db3fc557 100644 --- a/Application/Admin/Controller/AjaxController.class.php +++ b/Application/Admin/Controller/AjaxController.class.php @@ -103,7 +103,7 @@ class AjaxController extends ThinkController{ } public function getUserPlayGameName($user_id=0){ - $map['user_id'] = $user_id; + $map['user_account'] = $user_id; $data = M("UserPlay","tab_")->field("game_id,game_name,bind_balance")->where($map)->group('user_id,game_id')->select(); $this->AjaxReturn($data); } diff --git a/Application/Admin/Controller/ExportController.class.php b/Application/Admin/Controller/ExportController.class.php index 824276b35..9f99ad237 100644 --- a/Application/Admin/Controller/ExportController.class.php +++ b/Application/Admin/Controller/ExportController.class.php @@ -243,6 +243,7 @@ class ExportController extends Controller $promoter_ids = D("Promote")->where("chain like '%/{$_REQUEST['promote_id']}/%' or id={$_REQUEST['promote_id']}")->field('id')->select(); if ($promoter_ids) { $map['tab_user.promote_id'] = ['in', implode(',', array_column($promoter_ids, 'id'))]; + $spendprom = " AND ss.promote_id IN (" . implode(',', array_column($promoter_ids, 'id')) . ") "; } } } @@ -259,24 +260,24 @@ class ExportController extends Controller // unset($_REQUEST['promote_account']); // } if (isset($_REQUEST['register_way'])) { - if($_REQUEST['type']==1) { - if ($_GET['register_way'] == 1) { - empty($hav) || $hav .= ' AND '; - $hav .= ' tab_user.register_type in (0,1)'; - $maps['tab_user.register_type'] = ['in',[0,1]]; - } elseif($_GET['register_way'] == 7){ - empty($hav) || $hav .= ' AND '; - $hav .= ' tab_user.register_type in(7)'; - $maps['tab_user.register_type'] = 7; - }else { - empty($hav) || $hav .= ' AND '; - $hav .= ' tab_user.register_type in(2)'; - $maps['tab_user.register_type'] = 2; - } - } else { - $map['register_way'] = I('register_way'); - unset($_REQUEST['register_way']); - } + if($_REQUEST['type']==1) { + if ($_GET['register_way'] == 1) { + empty($hav) || $hav .= ' AND '; + $hav .= ' tab_user.register_type in (0,1)'; + $maps['tab_user.register_type'] = ['in',[0,1]]; + } elseif($_GET['register_way'] == 7){ + empty($hav) || $hav .= ' AND '; + $hav .= ' tab_user.register_type in(7)'; + $maps['tab_user.register_type'] = 7; + }else { + empty($hav) || $hav .= ' AND '; + $hav .= ' tab_user.register_type in(2)'; + $maps['tab_user.register_type'] = 2; + } + } else { + $map['register_way'] = I('register_way'); + unset($_REQUEST['register_way']); + } } if (isset($_REQUEST['register_type'])) { $map['register_type'] = I('register_type'); @@ -301,16 +302,25 @@ class ExportController extends Controller $order = 'id desc'; } - if (isset($_REQUEST['viplevel'])) { + if (isset($_REQUEST['viplevel'])) { - $havs = get_vip_level_limit('recharge_total',$_REQUEST['viplevel']); - } + $havs = get_vip_level_limit('recharge_total',$_REQUEST['viplevel']); + } - $map['puid'] = array('eq',0); - $map['is_platform'] = 0; - //数据 - $xlsData = M('user', 'tab_')->field('tab_user.id,tab_user.age_status,tab_user.account,tab_user.gold_coin,tab_user.alipay,tab_user.balance,tab_user.promote_account,register_time,tab_user.lock_status,tab_user.register_way,tab_user.register_type,tab_user.register_ip,tab_user.login_time,(IFNULL(sum(b.pay_amount),0) + IFNULL(sum(ss.pay_amount),0)) AS recharge_total') - ->join('left join tab_deposit AS b ON tab_user.id = b.user_id AND b.pay_status = 1') + $map['puid'] = array('eq',0); + $map['is_platform'] = 0; + if($_REQUEST['promote_id'] && $_REQUEST['promote_id'] > -1){ + $xlsData = M('user', 'tab_')->field('tab_user.id,tab_user.age_status,tab_user.account,tab_user.gold_coin,tab_user.alipay,tab_user.balance,tab_user.promote_account,register_time,tab_user.lock_status,tab_user.register_way,tab_user.register_type,tab_user.register_ip,tab_user.login_time,IFNULL(sum(ss.pay_amount),0) AS recharge_total') + ->join('left join tab_spend as ss on ss.user_id=tab_user.id AND ss.pay_status = 1'.$spendprom) + ->join($game_map ? "tab_user_play on tab_user_play.user_id = tab_user.id $game_map" : false) + ->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = tab_user.id $game_play_map" : false) + ->where($map) + ->group('tab_user.id') + ->order($order) + ->having($havs) + ->select(); + }else{ + $xlsData = M('user', 'tab_')->field('tab_user.id,tab_user.age_status,tab_user.account,tab_user.gold_coin,tab_user.alipay,tab_user.balance,tab_user.promote_account,register_time,tab_user.lock_status,tab_user.register_way,tab_user.register_type,tab_user.register_ip,tab_user.login_time,IFNULL(sum(ss.pay_amount),0) AS recharge_total') ->join('left join tab_spend as ss on ss.user_id=tab_user.id AND ss.pay_status = 1') ->join($game_map ? "tab_user_play on tab_user_play.user_id = tab_user.id $game_map" : false) ->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = tab_user.id $game_play_map" : false) @@ -319,38 +329,42 @@ class ExportController extends Controller ->order($order) ->having($havs) ->select(); - if($xlsData) { - $ids = array_column($xlsData,'id'); - /* 在手里 */ - $small = M('user','tab_')->field('count(id) as count,puid')->where(['puid'=>array('in',$ids)])->group('puid')->select(); - /* 出售中 */ - $small2 = M('user','tab_')->field('count(id) as count,source_puid')->where(['source_puid'=>array('in',$ids),'source_time'=>0])->group('source_puid')->select(); - - foreach($xlsData as $k => $v) { - - - $xlsData[$k]['vip_level'] = get_vip_level($v['recharge_total']); - if(empty($v['alipay'])){ - $xlsData[$k]['alipay'] = '--'; - } - - $xlsData[$k]['register_type'] = $v['register_type'] == 2?'手机号':($v['register_type']==7?'邮箱':'账号'); - - $xlsData[$k]['small_count'] = 0; - foreach($small as $s) { - if($s['puid'] == $v['id']) { - $xlsData[$k]['small_count'] += $s['count'];break; - } - } - foreach($small2 as $s) { - if($s['source_puid'] == $v['id']) { - $xlsData[$k]['small_count'] += $s['count'];break; - } - } + } + //数据 + + + if($xlsData) { + $ids = array_column($xlsData,'id'); + /* 在手里 */ + $small = M('user','tab_')->field('count(id) as count,puid')->where(['puid'=>array('in',$ids)])->group('puid')->select(); + /* 出售中 */ + $small2 = M('user','tab_')->field('count(id) as count,source_puid')->where(['source_puid'=>array('in',$ids),'source_time'=>0])->group('source_puid')->select(); - } + foreach($xlsData as $k => $v) { - } + + $xlsData[$k]['vip_level'] = get_vip_level($v['recharge_total']); + if(empty($v['alipay'])){ + $xlsData[$k]['alipay'] = '--'; + } + + $xlsData[$k]['register_type'] = $v['register_type'] == 2?'手机号':($v['register_type']==7?'邮箱':'账号'); + + $xlsData[$k]['small_count'] = 0; + foreach($small as $s) { + if($s['puid'] == $v['id']) { + $xlsData[$k]['small_count'] += $s['count'];break; + } + } + foreach($small2 as $s) { + if($s['source_puid'] == $v['id']) { + $xlsData[$k]['small_count'] += $s['count'];break; + } + } + + } + + } break; case 4: diff --git a/Application/Admin/Controller/MemberController.class.php b/Application/Admin/Controller/MemberController.class.php index 3e09faff6..c8feca33f 100644 --- a/Application/Admin/Controller/MemberController.class.php +++ b/Application/Admin/Controller/MemberController.class.php @@ -26,6 +26,7 @@ class MemberController extends ThinkController if ($promoter_ids) { $maps['tab_user.promote_id'] = ['in', implode(',', array_column($promoter_ids, 'id'))]; $hav .= "tab_user.promote_id in (" . implode(',', array_column($promoter_ids, 'id')) . ") "; + $spendprom = " AND ss.promote_id IN (" . implode(',', array_column($promoter_ids, 'id')) . ") "; } } } @@ -176,7 +177,28 @@ class MemberController extends ThinkController // ->order($order) ->select(false); - $data = $usermodel->table('(' . $sql1 . ') as a ')->field('a.id,a.device_number,a.age_status,a.account,a.balance,a.gold_coin,a.alipay,a.promote_id,a.register_type,a.promote_account,a.register_time,a.lock_status,a.register_way,a.register_type,a.register_ip,a.login_time,(a.deposit_total+IFNULL(sum(ss.pay_amount),0)) as recharge_total,check_status') + // $data = $usermodel->table('(' . $sql1 . ') as a ')->field('a.id,a.device_number,a.age_status,a.account,a.balance,a.gold_coin,a.alipay,a.promote_id,a.register_type,a.promote_account,a.register_time,a.lock_status,a.register_way,a.register_type,a.register_ip,a.login_time,IFNULL(sum(ss.pay_amount),0) as recharge_total,check_status') + // ->join('left join tab_spend as ss on ss.user_id=a.id AND ss.pay_status = 1') + // ->join($game_map ? "tab_user_play on tab_user_play.user_id = a.id $game_map" : false) + // ->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = a.id $game_play_map" : false) + // ->page($page, $row) + // ->having($havs) + // ->group('a.id') + // ->order($order) + // ->select(); + if($_REQUEST['promote_id'] && $_REQUEST['promote_id'] > -1){ + $data = $usermodel->table('(' . $sql1 . ') as a ')->field('a.id,a.device_number,a.age_status,a.account,a.balance,a.gold_coin,a.alipay,a.promote_id,a.register_type,a.promote_account,a.register_time,a.lock_status,a.register_way,a.register_type,a.register_ip,a.login_time,IFNULL(sum(ss.pay_amount),0) as recharge_total,check_status') + ->join('left join tab_spend as ss on ss.user_id=a.id AND ss.pay_status = 1'.$spendprom) + ->join($game_map ? "tab_user_play on tab_user_play.user_id = a.id $game_map" : false) + ->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = a.id $game_play_map" : false) + ->page($page, $row) + ->having($havs) + ->group('a.id') + ->order($order) + ->select(); + // echo $data;die(); + }else{ + $data = $usermodel->table('(' . $sql1 . ') as a ')->field('a.id,a.device_number,a.age_status,a.account,a.balance,a.gold_coin,a.alipay,a.promote_id,a.register_type,a.promote_account,a.register_time,a.lock_status,a.register_way,a.register_type,a.register_ip,a.login_time,IFNULL(sum(ss.pay_amount),0) as recharge_total,check_status') ->join('left join tab_spend as ss on ss.user_id=a.id AND ss.pay_status = 1') ->join($game_map ? "tab_user_play on tab_user_play.user_id = a.id $game_map" : false) ->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = a.id $game_play_map" : false) @@ -185,10 +207,11 @@ class MemberController extends ThinkController ->group('a.id') ->order($order) ->select(); + } + //计数 - $sql = M('user', 'tab_')->field('tab_user.id,(IFNULL(sum(b.pay_amount),0) + IFNULL(sum(ss.pay_amount),0)) AS recharge_total') - ->join('left join tab_deposit AS b ON tab_user.id = b.user_id AND b.pay_status = 1') + $sql = M('user', 'tab_')->field('tab_user.id,IFNULL(sum(ss.pay_amount),0) AS recharge_total') ->join('left join tab_spend as ss on ss.user_id=tab_user.id AND ss.pay_status = 1') ->join($game_map ? "tab_user_play on tab_user_play.user_id = tab_user.id $game_map" : false) ->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = tab_user.id $game_play_map" : false) @@ -196,8 +219,22 @@ class MemberController extends ThinkController ->group('tab_user.id') ->where($hav) ->having($havs)->select(false); - $jcount = M('User', 'tab_')->field('count(a.id) as count')->table('(' . $sql . ') as a')->select(); + //替换为新表 + if($_REQUEST['promote_id'] && $_REQUEST['promote_id'] > -1){ + $sql = M('user', 'tab_')->field('tab_user.id,IFNULL(sum(ss.pay_amount),0) AS recharge_total') + ->join('left join tab_spend as ss on ss.user_id=tab_user.id AND ss.pay_status = 1'.$spendprom) + ->join($game_map ? "tab_user_play on tab_user_play.user_id = tab_user.id $game_map" : false) + ->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = tab_user.id $game_play_map" : false) + ->where($map) + ->group('tab_user.id') + ->where($hav) + ->having($havs)->select(false); + } + + $jcount = M('User', 'tab_')->field('count(a.id) as count,sum(a.recharge_total) recharge_total')->table('(' . $sql . ') as a')->select(); $count = $jcount[0]['count']; + // var_dump($jcount);die(); + $this->assign('pay_allcount', $jcount[0]['recharge_total']); $model = M('Model')->getByName('user'); @@ -790,12 +827,16 @@ class MemberController extends ThinkController * @param $id * @param $lock_status */ - public function lock_status($id, $lock_status) + public function lock_status($id="", $lock_status, $accounts = "") { - $map['id'] = ['in', array_unique(explode(',', $id))]; + if ($accounts) $map['account'] = ['in', array_unique(explode(',', $accounts))]; + if ($id) $map['id'] = ['in', array_unique(explode(',', $id))]; + $users = M('user', 'tab_')->where($map)->field('id')->select(); $res = M('user', 'tab_')->where($map)->setField(['lock_status' => $lock_status]); if ($res) { - \Think\Log::actionLog('Member/lock_status', 'Member', $id); + foreach ($users as $item) { + \Think\Log::actionLog('Member/lock_status', 'Member', $item['id']); + } $this->success('操作成功!'); } else { $this->error('操作失败!'); diff --git a/Application/Admin/Controller/PlatformController.class.php b/Application/Admin/Controller/PlatformController.class.php index 965da8b24..79f09c30b 100644 --- a/Application/Admin/Controller/PlatformController.class.php +++ b/Application/Admin/Controller/PlatformController.class.php @@ -387,6 +387,28 @@ class PlatformController extends ThinkController ->group('tp1.id') ->order('count desc, register_time') ->select(); + unset($map['tp1.id']); + unset($map['tp1.chain']); + $map['promote_id'] = 0; + //官方渠道数据添加 + $authorityData = M('user', 'tab_')->field('date_format(FROM_UNIXTIME(register_time),"%Y-%m-%d") AS time, count(id) as count, + count(IF(register_time ' . $today . ',1,null)) as today, + count(IF(register_time ' . $week . ',1,null)) as week, + count(IF(register_time ' . $mounth . ',1,null)) as mounth') + ->where($map) + ->find(); + $authorityData['promote_account'] = "官方渠道"; + $authorityData['id'] = "1"; + if (isset($_REQUEST['promote_id'])||$authorityData['count']==0) { + $authorityData = []; + } else { + array_push($data, $authorityData); + } + + //数据排序 + $last_names = array_column($data,'count'); + array_multisort($last_names,SORT_DESC,$data); + $count = count($data); foreach ($data as $key => $value) { static $i = 0; diff --git a/Application/Admin/View/DeductBindRecord/deductBindBalance.html b/Application/Admin/View/DeductBindRecord/deductBindBalance.html index f426a7086..c6a001e74 100644 --- a/Application/Admin/View/DeductBindRecord/deductBindBalance.html +++ b/Application/Admin/View/DeductBindRecord/deductBindBalance.html @@ -49,12 +49,13 @@ 玩家账号: - + + + + + + + @@ -144,7 +145,7 @@ $(function(){ //$(".balance").text($('#user_id option:selected').attr('coin-balance')+'平台币'); $('#user_id').change(function(){ //$(".balance").text($('#user_id option:selected').attr('coin-balance')+'平台币'); - var user_id = $('#user_id option:selected').attr('value'); + var user_id = $('#user_id').val(); if(this.value !="请选择账号"){ getUserPlayGameName(user_id); diff --git a/Application/Admin/View/Member/user_info.html b/Application/Admin/View/Member/user_info.html index 4e2a714fb..83d7b0812 100644 --- a/Application/Admin/View/Member/user_info.html +++ b/Application/Admin/View/Member/user_info.html @@ -239,7 +239,7 @@ - + {$data.id} {:get_registertype($data['register_type'])} @@ -304,6 +304,13 @@ + + 汇总: + + 累计充值:{$pay_allcount} + + + @@ -490,8 +497,8 @@ $(function(){ layer.prompt({ formType: 2, value: text, - placeholder : '账户ID(英文逗号隔开)', - title: '请输入要'+desc+'的账户ID(英文逗号隔开)', + placeholder : '玩家账号(英文逗号隔开)', + title: '请输入要'+desc+'的玩家账号(英文逗号隔开)', area: ['800px', '350px'] //自定义文本域宽高 }, function(value, index, elem){ if(value=='') { @@ -503,7 +510,7 @@ $(function(){ cache: true, type: "POST", url:"{:U('Member/lock_status')}", - data:{id:value, lock_status:status},// 你的formid + data:{accounts:value, lock_status:status},// 你的formid async: false, error: function(data) { layer.alert("服务器故障,请稍后重试!",{icon: 2}); diff --git a/Application/Admin/View/Platform/promote_statistics.html b/Application/Admin/View/Platform/promote_statistics.html index 597ab3889..f531e3b71 100644 --- a/Application/Admin/View/Platform/promote_statistics.html +++ b/Application/Admin/View/Platform/promote_statistics.html @@ -216,20 +216,20 @@ $(function(){ $("#search").click(); } }); - $(".ljzc").click(function(){ - var id = $(this).attr('data-value'); - var game_name = "{:I('game_name')}"; - var server_name = "{:I('server_id')}"; - var urlr = window.location.host; - layer.open({ - type: 2, - title: '注册记录', - shadeClose: true, - shade: 0.8, - area: ['70%', '80%'], - content: '/admin.php?s=/Platform/zhuce_detail/promote_id/'+id+'/game_name/'+game_name+'/server_name/'+server_name+''//iframe的url - }); - }); + // $(".ljzc").click(function(){ + // var id = $(this).attr('data-value'); + // var game_name = "{:I('game_name')}"; + // var server_name = "{:I('server_id')}"; + // var urlr = window.location.host; + // layer.open({ + // type: 2, + // title: '注册记录', + // shadeClose: true, + // shade: 0.8, + // area: ['70%', '80%'], + // content: '/admin.php?s=/Platform/zhuce_detail/promote_id/'+id+'/game_name/'+game_name+'/server_name/'+server_name+''//iframe的url + // }); + // }); $(".paixu").click(function(){ var that=$(this); $data_order=that.attr('data-order'); diff --git a/Application/Admin/View/Platform/promotepay_statistics.html b/Application/Admin/View/Platform/promotepay_statistics.html index a6dfd38e3..b6ab050e3 100644 --- a/Application/Admin/View/Platform/promotepay_statistics.html +++ b/Application/Admin/View/Platform/promotepay_statistics.html @@ -193,19 +193,19 @@ $(function(){ $("#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 - }); - }); + // $(".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 + // }); + // }); $(".paixu").click(function(){ $ddd=$(this).attr('date-url'); $lzhuce="{:I('lzhuce')}"; diff --git a/Application/Base/Repository/UserRepository.class.php b/Application/Base/Repository/UserRepository.class.php index e3ad78ade..2598a165f 100644 --- a/Application/Base/Repository/UserRepository.class.php +++ b/Application/Base/Repository/UserRepository.class.php @@ -135,7 +135,7 @@ class UserRepository $conditions = $this->getDayGroupConditions($params); $subQuery = M('login_daily_record', 'tab_')->field('FROM_UNIXTIME(create_time, "%Y-%m-%d") as day,count(DISTINCT user_id) as count') ->where($conditions) - ->group('game_id') + ->group('day,game_id') ->buildSql(); $items = M()->field('*,sum(count) as count') ->table($subQuery) @@ -301,7 +301,7 @@ class UserRepository $subQuery = M('user_play_info', 'tab_')->field('FROM_UNIXTIME(create_time, "%Y-%m-%d") as day,count(DISTINCT user_id) as count') ->where($conditions) - ->group('game_id') + ->group('day,game_id') ->buildSql(); $items = M()->field('*,sum(count) as count') ->table($subQuery) @@ -358,7 +358,7 @@ class UserRepository ->count(); $subQuery = $model->field('FROM_UNIXTIME(create_time, "%Y-%m-%d") as day,count(DISTINCT user_id) as count') ->where($conditions) - ->group('game_id') + ->group('day,game_id') ->buildSql(); $items = M()->field("*,sum(count) as count,(" . $sql . ") as num") ->table($subQuery) @@ -427,7 +427,7 @@ class UserRepository ->count(); $subQuery = $model->field('FROM_UNIXTIME(create_time, "%Y-%m-%d") as day,count(DISTINCT create_device_number) as count') ->where($conditions) - ->group('game_id') + ->group('day,game_id') ->buildSql(); $items = M()->field("*,sum(count) as count,(" . $sql . ") as num") ->table($subQuery) @@ -496,7 +496,7 @@ class UserRepository ->count(); $subQuery = $model->field('FROM_UNIXTIME(create_time, "%Y-%m-%d") as day,count(DISTINCT create_ip) as count') ->where($conditions) - ->group('game_id') + ->group('day,game_id') ->buildSql(); $items = M()->field("*,sum(count) as count,(" . $sql . ") as num") ->table($subQuery) diff --git a/Application/Home/Controller/DownloadController.class.php b/Application/Home/Controller/DownloadController.class.php index d1c70c4c4..dac68565b 100644 --- a/Application/Home/Controller/DownloadController.class.php +++ b/Application/Home/Controller/DownloadController.class.php @@ -412,17 +412,21 @@ class DownloadController extends BaseController { $initEndTime = empty(I('endtime')) ? $initEndTime : I('endtime'); $begTime = strtotime($initBegTime); $endTime = strtotime($initEndTime); - + $gameId = intval(I('game_id', 0)); + $status = intval(I('status', 0)); $map['chain'] = ['like', $this->loginPromote['chain'] . $this->loginPromote['id'] . '/%']; $ids = M('promote', 'tab_')->where($map)->getField('id', true); $ids[] = $this->loginPromote['id']; $ids = implode(',', $ids); $map = []; $map['promote_id'] = ['in', $ids]; + $map['pay_status'] = 1; if (!empty($payOrderNumber)) { $map['pay_order_number'] = $payOrderNumber; } - + if (!empty($gameId)) { + $map['game_id'] = $gameId; + } if (!empty($begTime) && empty($endTime)) { $map['pay_time'] = ['egt', $begTime]; } elseif (empty($begTime) && !empty($endTime)) { @@ -430,6 +434,22 @@ class DownloadController extends BaseController { } elseif (!empty($begTime) && !empty($endTime)) { $map['pay_time'] = ['between', [$begTime, $endTime + 86399]]; } + + if (isset($_GET['status'])) { + if ($status == -2) { + $map['selle_status'] = 0; + } else { + $withdrawMap['promote_id'] = $this->loginPromote['id']; + $withdrawMap['status'] = $status; + $withdrawIds = M('withdraw', 'tab_')->where($withdrawMap)->getField('id', true); + + if (empty($withdrawIds)) { + $map = '1 = 2'; + } else { + $map['withdraw_id'] = ['in', $withdrawIds]; + } + } + } $conditions = json_encode($map,TRUE); $addtime = time(); $data = [ @@ -1835,7 +1855,7 @@ class DownloadController extends BaseController { $begTime = strtotime($initBegTime); $endTime = strtotime($initEndTime); $params['begin_time'] = $begTime; - $params['end_time'] = $endTime; + $params['end_time'] = $endTime -1; if(!empty($map['apply_time'][1])) { $begTime = $map['apply_time'][1][0]; $endTime = $map['apply_time'][1][1]; @@ -2439,7 +2459,7 @@ class DownloadController extends BaseController { array('income','收益'), array('pay_time','充值时间'), array('selle_status','订单状态'), - ); + ); $model = M('spend', 'tab_'); $data = $model->field('pay_order_number,game_name,user_account,promote_account,pay_amount,pay_way,if(selle_ratio >= 0,selle_ratio,0) as selle_ratio,pay_time,selle_status,pay_status,withdraw_id') ->where($map) @@ -2540,23 +2560,23 @@ class DownloadController extends BaseController { } public function dailysummaryExcelInfo($id,$map) { - $xlsName = "每日概况"; - $xlsCell = array( + $xlsName = "每日概况"; + $xlsCell = array( array('day','日期'), - array('role_num','创角数'), - array('user_num','创角用户'), + array('role_num','创角数'), + array('user_num','创角用户'), array('new_user_num','新创角用户'), array('new_device_num','新创角设备'), - array('new_ip_num','新增创角IP'), - array('login_user_num','登陆用户数'), - array('spend_user_num','充值人数'), - array('spend_num','充值次数'), - array('spend_all_amount','充值总额'), - array('spend_cash','现金充值'), - array('spend_generic','通用币充值'), - array('spend_binding','绑定币充值'), - array('spend_discount','折扣币充值'), - array('spend_voucher','代金劵使用'), + array('new_ip_num','新增创角IP'), + array('login_user_num','登陆用户数'), + array('spend_user_num','充值人数'), + array('spend_num','充值次数'), + array('spend_all_amount','充值总额'), + array('spend_cash','现金充值'), + array('spend_generic','通用币充值'), + array('spend_binding','绑定币充值'), + array('spend_discount','折扣币充值'), + array('spend_voucher','代金劵使用'), ); $nowTime = date('Y-m-d'); @@ -2583,7 +2603,7 @@ class DownloadController extends BaseController { if(!empty($map['end_time'])) { $params['end_time'] = $map['end_time']; }else { - $params['begin_time'] = $endTime; + $params['begin_time'] = $endTime - 1; } $params['dayList'] = $map["dayList"]; $summaryData = []; diff --git a/Application/Home/Controller/FinanceController.class.php b/Application/Home/Controller/FinanceController.class.php index 605c26ad4..f8b4e8ceb 100644 --- a/Application/Home/Controller/FinanceController.class.php +++ b/Application/Home/Controller/FinanceController.class.php @@ -15,6 +15,7 @@ class FinanceController extends BaseController { //提现状态 public static $withdrawStatus = [ + -2 => '已撤销', -1 => '审核未通过', 0 => '待审核', 1 => '汇款中', @@ -200,7 +201,7 @@ class FinanceController extends BaseController $map['pay_order_number'] = $payOrderNumber; } if (isset($_GET['status'])) { - if ($status == -2) { + if ($status == -99) { $map['selle_status'] = 0; } else { $withdrawMap['promote_id'] = $this->loginPromote['id']; @@ -277,8 +278,7 @@ class FinanceController extends BaseController //是否是会长 $this->purview(); //验证安全密码 - $metaTitle = '结算明细'; - $modelList = ['财务管理', $metaTitle]; + $modelList = []; $res = $this->verifyPasswordView($modelList, false); if ($res == false) { $data['status'] = 0; @@ -329,6 +329,7 @@ class FinanceController extends BaseController $add['status'] = 0; $add['widthdraw_number'] = $this->produceWithdrawNumber(); $add['settlement_end_time'] = $thisDay - 1; + $add['spend_ids'] = ''; M()->startTrans();//开启事物 $withdrawId = M('withdraw', 'tab_')->add($add); @@ -399,11 +400,9 @@ class FinanceController extends BaseController } if (isset($_GET['status']) && $_GET['status'] !== '') { $status = intval($_GET['status']); - if (!isset(FinanceController::$withdrawStatus[$status])) { - $this->error('参数异常'); + if (isset(FinanceController::$withdrawStatus[$status])) { + $map['status'] = $status; } - - $map['status'] = $status; } $data = $model->field('id,widthdraw_number,create_time,settlement_end_time,sum_money,status,respond,transfer_proof') @@ -420,8 +419,15 @@ class FinanceController extends BaseController $list['create_time'] = date('Y-m-d H:i:s', $list['create_time']); $list['settlement_end_time'] = date('Y-m-d H:i:s', $list['settlement_end_time']); $list['status_name'] = FinanceController::$withdrawStatus[$list['status']]; - if ($list['status'] == -1) { - $list['status_name'] = '' . $list['status_name'] . ''; + switch ($list['status']) { + case -2: + $list['status_name'] = '' . $list['status_name'] . ''; + break; + case -1: + $list['status_name'] = '' . $list['status_name'] . ''; + break; + default: + break; } } } @@ -572,8 +578,7 @@ class FinanceController extends BaseController //是否是会长 $this->purview(); //验证安全密码 - $metaTitle = '结算明细'; - $modelList = ['财务管理', $metaTitle]; + $modelList = []; $res = $this->verifyPasswordView($modelList, false); if ($res == false) { $data['status'] = 0; @@ -606,4 +611,69 @@ class FinanceController extends BaseController } $this->ajaxReturn($data); } + + //撤销提现 + public function cancelWithdraw() + { + //是否是会长 + $this->purview(); + //验证安全密码 + $modelList = []; + $res = $this->verifyPasswordView($modelList, false); + if ($res == false) { + $data['status'] = 0; + $data['msg'] = '权限异常'; + $this->ajaxReturn($data); + } + + $id = intval(I('id', 0)); + $data = M('withdraw', 'tab_')->find($id); + if (empty($data) || !in_array($data['status'], [-1, 0])) { + $data['status'] = 0; + $data['msg'] = '数据异常'; + $this->ajaxReturn($data); + } + if ($data['promote_id'] != $this->loginPromote['id']) { + $data['status'] = 0; + $data['msg'] = '权限异常'; + $this->ajaxReturn($data); + } + + $spendMap['withdraw_id'] = $id; + $spendIds = M('Spend', 'tab_')->where($spendMap)->getField('id', true); + if (empty($spendIds)) { + $data['status'] = 0; + $data['msg'] = '数据异常'; + $this->ajaxReturn($data); + } + $spendIds = implode(',', $spendIds); + $time = time(); + $withdrawSave['id'] = $id; + $withdrawSave['status'] = -2; + $withdrawSave['spend_ids'] = $spendIds; + $withdrawSave['last_up_update_time'] = $time; + + M('withdraw', 'tab_')->startTrans();//开启事物 + $withdrawRes = M('withdraw', 'tab_')->save($withdrawSave); + if ($withdrawRes === false) { + M('withdraw', 'tab_')->rollback();//事物回滚 + $data['status'] = 0; + $data['msg'] = '撤销失败'; + $this->ajaxReturn($data); + } + + $spendSave['selle_status'] = 0; + $spendSave['withdraw_id'] = 0; + $spendRes = M('spend', 'tab_')->where($spendMap)->save($spendSave); + if ($spendRes === false) { + M('withdraw', 'tab_')->rollback();//事物回滚 + $data['status'] = 0; + $data['msg'] = '撤销失败'; + } else { + M('withdraw', 'tab_')->commit();//事物提交 + $data['status'] = 1; + $data['msg'] = '撤销成功'; + } + $this->ajaxReturn($data); + } } \ No newline at end of file diff --git a/Application/Home/Controller/QueryController.class.php b/Application/Home/Controller/QueryController.class.php index be50a7529..c4d6fa044 100644 --- a/Application/Home/Controller/QueryController.class.php +++ b/Application/Home/Controller/QueryController.class.php @@ -1066,7 +1066,7 @@ class QueryController extends BaseController $params['server_id'] = $serverId; } $params['begin_time'] = $begTime; - $params['end_time'] = $endTime; + $params['end_time'] = $endTime - 1; $summaryData = []; $dayList = $this->getDayList($begTime, $endTime); @@ -1227,7 +1227,7 @@ class QueryController extends BaseController } $params['begin_time'] = $begTime; - $params['end_time'] = $endTime; + $params['end_time'] = $endTime - 1; $data = M('Apply', 'tab_')->alias('a') ->field('a.game_id,a.game_name,a.sdk_version') diff --git a/Application/Home/View/default/Finance/settlementDtl.html b/Application/Home/View/default/Finance/settlementDtl.html index 2cbb07ea2..aefcaf46a 100644 --- a/Application/Home/View/default/Finance/settlementDtl.html +++ b/Application/Home/View/default/Finance/settlementDtl.html @@ -103,8 +103,8 @@
+ + + + + + + + + + -
-
媒体合作
+
商务合作
万盟天下一直希望通过广泛的市场及品牌合作,为用户提供更全面的产品与服务。
-
联系方式
-

公司地址:福建省福州市鼓楼区福大怡山文化创意园11号楼103号

-

联系人: 雷女士

-

联系电话: 13067391751

+
联系方式
+

公司地址:福建省福州市鼓楼区福大怡山文化创意园11号楼103号

+

联系人: 雷女士

+

联系电话: 13067391751

邮政编码:350004

@@ -55,11 +73,13 @@
-
+ -
+ - + + + diff --git a/Application/Media/View/default/Public/base.html b/Application/Media/View/default/Public/base.html index aa74b0327..390161505 100644 --- a/Application/Media/View/default/Public/base.html +++ b/Application/Media/View/default/Public/base.html @@ -95,7 +95,7 @@
-