|
|
@@ -577,18 +577,22 @@ class GlobalUser extends BaseApiLogic
|
|
|
/**
|
|
|
* 充值排行榜:总充值>100 且 提现/充值<35%
|
|
|
*/
|
|
|
- public function rechargeRankList($channel, $sortRegister = '', $sortLogin = '')
|
|
|
+ public function rechargeRankList($channel, $sortRegister = '', $sortLogin = '', $minRecharge = 100, $maxWithdrawRate = 35)
|
|
|
{
|
|
|
$AccountsInfoM = new AccountsInfo();
|
|
|
- $minRecharge = 100;
|
|
|
+ $minRecharge = is_numeric($minRecharge) ? max(0, (float)$minRecharge) : 100;
|
|
|
+ $maxWithdrawRate = is_numeric($maxWithdrawRate) ? max(0, (float)$maxWithdrawRate) : 35;
|
|
|
+ $maxWithdrawRateDecimal = $maxWithdrawRate / 100;
|
|
|
|
|
|
$numVal = NumConfig::NUM_VALUE;
|
|
|
$giTable = TableName::QPTreasureDB() . 'GameScoreInfo';
|
|
|
+ $rutTable = TableName::QPRecordDB() . 'RecordUserTotalStatistics';
|
|
|
+ $rutSql = "(select UserID, max(Recharge) as Recharge, max(Withdraw) as Withdraw from {$rutTable} WITH (NOLOCK) group by UserID) as rut";
|
|
|
$Sql = DB::connection('read')->table(TableName::QPAccountsDB() . 'AccountsInfo as ai')
|
|
|
- ->join(TableName::QPRecordDB() . 'RecordUserTotalStatistics as rut', 'ai.UserID', 'rut.UserID')
|
|
|
+ ->join(DB::raw($rutSql), 'ai.UserID', 'rut.UserID')
|
|
|
->where('ai.IsAndroid', 0)
|
|
|
->where('rut.Recharge', '>', $minRecharge)
|
|
|
- ->whereRaw("rut.Withdraw * 1.0 / (rut.Recharge * {$numVal}) < 0.35")
|
|
|
+ ->whereRaw("rut.Withdraw * 1.0 / (rut.Recharge * {$numVal}) < ?", [$maxWithdrawRateDecimal])
|
|
|
->distinct()
|
|
|
->selectRaw("ai.GameID, ai.UserID, ai.NickName, ai.Channel, ai.RegisterDate, ai.LastLogonDate, (select top 1 Score from {$giTable} where UserID = ai.UserID) as Score, rut.Recharge, rut.Withdraw");
|
|
|
|