diff --git a/Application/Admin/Controller/FinanceController.class.php b/Application/Admin/Controller/FinanceController.class.php index 6a1f53def..46970e636 100644 --- a/Application/Admin/Controller/FinanceController.class.php +++ b/Application/Admin/Controller/FinanceController.class.php @@ -843,7 +843,7 @@ class FinanceController extends ThinkController $data[$key]['test_amount'] = $testAmount; } - $count = D("spend")->gameStatisticsCount($map);//列表总数 + $count = count($searchGameIds);//列表总数 // $allData = D("spend")->gameStatistics($map);//列表总数 // $count = count($allData); $page = set_pagination($count, $row); @@ -864,7 +864,7 @@ class FinanceController extends ThinkController $map['_string'] = " s.game_id not in (" . implode(',', $exceptIds) . ")"; } } - $totalData = D("spend")->totalGameStatistics($map); + $totalData = D("spend")->totalGameStatistics($map,$searchGameIds); $sumCash = $totalData['cash_count']; $sumBalance = $totalData['balance_coin_count']; diff --git a/Application/Admin/Model/SpendModel.class.php b/Application/Admin/Model/SpendModel.class.php index 6889e21bd..e6fffad4e 100644 --- a/Application/Admin/Model/SpendModel.class.php +++ b/Application/Admin/Model/SpendModel.class.php @@ -875,12 +875,14 @@ class SpendModel extends Model $gameQuery->page($page,$row); } $games = $gameQuery->select(); - - $partners = []; if (count($games)) { $map['s.game_id'] = ['in', array_column($games, 'game_id')]; + }else{ + $map['s.game_id'] = '-1'; } - $data = M("Spend s use index(game_time)","tab_") + $data = SM("Spend","tab_") + ->alias('s') + ->index('game_time') ->where(['s.pay_status' => 1]) ->where($map) ->group('s.game_id') @@ -914,40 +916,20 @@ class SpendModel extends Model /** *获取游戏统计列表数据 */ - public function totalGameStatistics($map, $join = true) - { - $noticeFailData = M("Spend s use index(game_time)","tab_") - ->field("SUM(pay_amount) as notice_fail_count,game_id") - ->join('LEFT JOIN tab_game as g ON s.game_id=g.id') - ->join('LEFT JOIN tab_partner as p ON g.partner_id=p.id') - ->where(['s.pay_status' => 1, 'pay_game_status' => 0]) - ->where($map) - ->find(); -// var_dump($noticeFailData);die(); - - - $query = M("Spend s use index(game_time)","tab_") - ->field("SUM(CASE WHEN pay_way > 0 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as cash_count, -SUM(CASE WHEN pay_way = 0 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as balance_coin_count, -SUM(CASE WHEN pay_way = -1 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as inside_cash_count"); - if ($join) { - $query = $query->join('LEFT JOIN tab_game as g ON s.game_id=g.id') - ->join('LEFT JOIN tab_partner as p ON g.partner_id=p.id'); - } - $data = $query->where(['s.pay_status' => 1]) + public function totalGameStatistics($map,$gameIds, $join = true) + { + $map['s.game_id'] = ['in', $gameIds]; + $data = SM("Spend","tab_") + ->alias('s') + ->index('game_time') + ->field(" + SUM(CASE WHEN pay_way > 0 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as cash_count, + SUM(CASE WHEN pay_way = 0 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as balance_coin_count, + SUM(CASE WHEN pay_way = -1 and s.pay_status = 1 and pay_game_status = 1 THEN pay_amount ELSE 0 END) as inside_cash_count, + SUM(CASE WHEN s.pay_status = 1 and pay_game_status = 0 THEN pay_amount ELSE 0 END) as notice_fail_count") + ->where(['s.pay_status' => 1]) ->where($map) ->find(); - -// $gc_game_id = array_unique(explode(',',$data['gc_game_id'])); - -// $noticeFailData = M("Spend s use index(game_time)","tab_") -// ->field("SUM(pay_amount) as notice_fail_count,game_id") -// ->where(['s.pay_status' => 1, 'pay_game_status' => 0]) -// ->where($noticeMap) -// ->find(); - - $data['notice_fail_count'] = $noticeFailData['notice_fail_count']; -// dd($query->_sql()); return $data; }