优化财务游戏汇总

master
chenzhi 4 years ago
parent 76874cf34a
commit 236bd8f538

@ -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'];

@ -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;
}

Loading…
Cancel
Save