From 35f5cc03bb2390681e5c9639382f24ee0949baf4 Mon Sep 17 00:00:00 2001 From: sunke <18850253506@163.com> Date: Tue, 17 Mar 2020 10:22:13 +0800 Subject: [PATCH] value_detail --- .../Controller/FinanceController.class.php | 197 ++++++++++-------- 1 file changed, 113 insertions(+), 84 deletions(-) diff --git a/Application/Admin/Controller/FinanceController.class.php b/Application/Admin/Controller/FinanceController.class.php index ffb826198..7d3612a71 100644 --- a/Application/Admin/Controller/FinanceController.class.php +++ b/Application/Admin/Controller/FinanceController.class.php @@ -738,7 +738,7 @@ class FinanceController extends ThinkController $endTime = time(); foreach ($data as $key => $value) { - $data[$key]['all_cash_count'] = $value['cash_count'] + $value['balance_coin_count'] + $value['inside_cash_count']; + $data[$key]['all_cash_count'] = number_format($value['cash_count'] + $value['balance_coin_count'] + $value['inside_cash_count'],2,'.',''); } $count = D("spend")->gameStatisticsCount($map);//列表总数 @@ -1173,104 +1173,123 @@ class FinanceController extends ThinkController $this->display(); } - public function valueDetail($p = 1) { + + public function valueDetail($p=1) { + $page = intval($p); $page = $page ? $page : 1; //默认显示第一页数据 $row=10; if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;} - $map = []; - $mapBanlance = []; - $mapSpend['pay_status'] = 1; - $mapSpend['pay_way'] = 0; - $mapDeposit['pay_status'] = 1; - $mapPromoteCoin['type'] = 2; - $mapPromoteCoin['sub_type'] = 4; $nowTime = date('Y-m-d'); $initBegTime = date('Y-m-d', strtotime('-6 day', strtotime($nowTime))); $initEndTime = date('Y-m-d', time()); - if(!empty(I('user_account'))){ - $userInfo = M('user', 'tab_')->where(['account'=>I('user_account')])->getField('id'); - $map['user_account']=I('user_account'); - $mapBanlance['user_account'] = I('user_account'); - $mapSpend['user_account'] = I('user_account'); - $mapDeposit['user_account'] = I('user_account'); - $mapPromoteCoin['target_id'] = $userInfo; - $mapValue['user_id'] = $userInfo; - } - $mapValue['pay_type'] = ['gt', 0]; + if(!empty($_REQUEST['user_account'])) { + $map['account'] = $_REQUEST['user_account']; + $map0['account'] = $_REQUEST['user_account']; + $userId = M('user', 'tab_')->where(['account'=>$_REQUEST['user_account']])->getField('id'); + + $map1['user_id'] = $userId; + $map2['user_id'] = $userId; + $map3['user_id'] = $userId; + $map4['user_id'] = $userId; + } if (!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) { $map['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); - $mapPromoteCoin['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); - $mapDeposit['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); - $mapSpend['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); - $mapValue['create_time'] = array('between', [strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399]); + } elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) { $map['create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); - $mapPromoteCoin['create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); - $mapDeposit['create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); - $mapSpend['pay_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); - $mapValue['create_time'] = array('between', [strtotime($_REQUEST['timestart']), time()]); + } elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) { $map['create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); - $mapPromoteCoin['create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); - $mapDeposit['create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); - $mapSpend['pay_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); - $mapValue['create_time'] = array('elt', (strtotime($_REQUEST['timeend']) + 86399)); + }elseif (empty($_REQUEST['timestart']) && empty($_REQUEST['timeend']) && empty(I('user_account'))) { $map['create_time'] = array('between', [strtotime($initBegTime), strtotime($initEndTime) + 86399]); - $mapPromoteCoin['create_time'] = array('between', [strtotime($initBegTime), strtotime($initEndTime) + 86399]); - $mapDeposit['create_time'] = array('between', [strtotime($initBegTime), strtotime($initEndTime) + 86399]); - $mapSpend['pay_time'] = array('between', [strtotime($initBegTime), strtotime($initEndTime) + 86399]); - $mapValue['create_time'] = array('between', [strtotime($initBegTime), strtotime($initEndTime) + 86399]); - } - - $datas = M('user_play','tab_') - ->group('user_id') - ->field("id,user_id,user_account,bind_balance") - ->where($map) - ->page($page,$row) - ->select(); - $count = M('user_play','tab_') - ->field("id,user_id,user_account,bind_balance") - ->where($map) - ->count('DISTINCT user_id'); - $total = M('deposit', 'tab_')->where($mapDeposit)->sum('pay_amount'); - $totalSpend = M('spend', 'tab_')->where($mapSpend)->sum('pay_amount'); - - // $total_bind_balance = M('user_play', 'tab_')->where($mapBanlance)->sum('bind_balance'); - $totalValueInit = M('value_detail_log', 'tab_')->where(['pay_type'=>0])->sum('after_value'); - $totalValueDetail = M('value_detail_log', 'tab_')->where($mapValue)->group('user_id')->order('desc create_time')->sum('after_value'); - $total_bind_balance = $totalValueInit + $totalValueDetail; - $totalPromoteCoin = M('promote_coin_record', 'tab_')->where($mapPromoteCoin)->sum('coin'); - $total = empty($total) ? '0.00' : $total; - $totalSpend = empty($totalSpend) ? '0.00' : $totalSpend; - $total_bind_balance = empty($total_bind_balance) ? '0.00' : $total_bind_balance; - $totalPromoteCoin = empty($totalPromoteCoin) ? '0.00' : $totalPromoteCoin; - foreach ($datas as $key => $data) { - $user_id = $data['user_id']; - $mapSpend['user_id'] = $user_id; - $mapDeposit['user_id'] = $user_id; - $mapPromoteCoin['target_id'] = $user_id; - $bind_balance = M('user_play', 'tab_')->where(['user_id' => $user_id])->sum('bind_balance'); - $spend = M('spend', 'tab_')->where($mapSpend)->sum('pay_amount'); - if (empty($spend)) { - $spend = '0.00'; + + } + $datas = M('user', 'tab_') + ->field('id, account') + ->where($map0) + ->page($page,$row) + ->select(); + $count = M('user', 'tab_') + ->field('id, account') + ->where($map) + ->count(); + $ids = array_column($datas, 'id'); + if(empty($ids)) { + $ids = [-100]; + } + $allDatas = []; + foreach($datas as $key => $data) { + $id = $data['id']; + $account = $data['account']; + $allDatas[$key]['user_id'] = $id; + $allDatas[$key]['user_account'] = $account; + $map5['user_id'] = $id; + $map5['pay_type'] = 1; + $map5['create_time'] = $map['create_time']; + $spend = M('value_detail_log', 'tab_')->where($map5)->sum('value'); + if(empty($spend)) { + $spend = '0.00'; } - $deposit = M('deposit', 'tab_')->where($mapDeposit)->sum('pay_amount'); - if (empty($deposit)) { - $deposit = '0.00'; + $map6['user_id'] = $id; + $map6['pay_type'] = 2; + $map6['create_time'] = $map['create_time']; + $deposit = M('value_detail_log', 'tab_')->where($map6)->sum('value'); + if(empty($deposit)) { + $deposit = '0.00'; } - $promoteCoin = M('promote_coin_record', 'tab_')->where($mapPromoteCoin)->sum('coin'); - if (empty($promoteCoin)) { - $promoteCoin = '0.00'; + $map7['user_id'] = $id; + $map7['pay_type'] = 3; + $map7['create_time'] = $map['create_time']; + $promoteCoin = M('value_detail_log', 'tab_')->where($map7)->sum('value'); + if(empty($promoteCoin)) { + $promoteCoin = '0.00'; } - $datas[$key]['bind_balance'] = $bind_balance; - $datas[$key]['spend_amount'] = $spend; - $datas[$key]['deposit_amount'] = $deposit; - $datas[$key]['coin_amount'] = $promoteCoin; + // $allDatas[$key]['bind_balance'] = $bind_balance; + $allDatas[$key]['spend_amount'] = $spend; + $allDatas[$key]['deposit_amount'] = $deposit; + $allDatas[$key]['coin_amount'] = $promoteCoin; + } + $map1['create_time'] = $map['create_time']; + $map1['pay_type'] = 1; + $totalSpend = M('value_detail_log', 'tab_')->where($map1)->sum('value'); + $totalSpend = empty($totalSpend) ? '0.00' : $totalSpend; + + $map2['create_time'] = $map['create_time']; + $map2['pay_type'] = 2; + $deposit = M('value_detail_log', 'tab_')->where($map2)->sum('value'); + $deposit= empty($deposit) ? '0.00' : $deposit; + + $map3['create_time'] = $map['create_time']; + $map3['pay_type'] = 3; + $allpromoteCoin = M('value_detail_log', 'tab_')->where($map3)->sum('value'); + $allpromoteCoin = empty($promoteCoin) ? '0.00' : $promoteCoin; + + $map4['create_time'] = $map['create_time']; + $banlace = M('value_detail_log', 'tab_')->field('user_id, after_value')->where($map4)->group('user_id')->select(); + $banlaceTotal = '0.00'; + foreach($banlace as $k222 => $vvv) { + $banlaceTotal += $vvv['after_value']; + } + + $map['user_id'] = ['in', $ids]; + $newValueByTimeDatas = M('value_detail_log', 'tab_')->field('user_id, after_value')->where($map)->group('user_id')->select(); + // var_dump($newValueByTimeDatas);die(); + foreach ($allDatas as $k => $allData) { + $allDatas[$k]['after_value'] = "0.00"; + foreach ($newValueByTimeDatas as $key1 => $newValueByTimeData ) { + if (intval($allData['user_id']) == intval($newValueByTimeData['user_id'])) { + $allDatas[$k]['after_value'] = $newValueByTimeData['after_value']; + break; + }else { + $allDatas[$k]['after_value'] = "0.00"; + + } + } + } $page = set_pagination($count,$row); -// var_dump($page);die(); if($page) {$this->assign('_page', $page);} if(empty($_REQUEST['timestart']) && empty($_REQUEST['timeend']) && empty(I('user_account'))) { $this->assign('starttime', $initBegTime); @@ -1279,11 +1298,14 @@ class FinanceController extends ThinkController $this->assign('starttime', $_REQUEST['timestart']); $this->assign('endtime', $_REQUEST['endtime']); } - $this->assign('totalPromoteCoin', $totalPromoteCoin); - $this->assign('total_bind_balance', $total_bind_balance); - $this->assign('totalSpend', $totalSpend); - $this->assign('total', $total); - $this->assign('data', $datas); + //var_dump($allDatas);die(); + $this->assign('banlaceTotal', $banlaceTotal); + $this->assign('total', $totalSpend); + $this->assign('deposit', $deposit); + $this->assign('promoteCoin', $allpromoteCoin); + $this->assign('data', $allDatas); + + $this->display(); } @@ -1333,8 +1355,15 @@ class FinanceController extends ThinkController $total += $valueDetailData['value']; } } + if($total >= 0 ) { + $fuhao = '+'; + }else { + $fuhao = '-'; + } $page = set_pagination($counts,$row); if($page) {$this->assign('_page', $page);} + $this->assign('fuhao', $fuhao); + $this->assign('total', $total); $this->assign('listdata', $vlaueDetailDatas); $this->display();