AccountWithDrawInfo.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. use Illuminate\Support\Facades\DB;
  5. class AccountWithDrawInfo extends Model
  6. {
  7. const TABLE = 'QPAccountsDB.dbo.AccountWithDrawInfo';
  8. protected $table = self::TABLE;
  9. public $timestamps = false;
  10. // 提现订单查询 excel导出
  11. public static function orderOverDownExcel($query, $where)
  12. {
  13. $order = ['OrderId', 'ai.GameID', 'ai.Channel','ow.BankUserName','ow.AccountsBank','ow.EmailAddress','ow.AdhaarNumber','PhoneNumber','IFSCNumber','PixNum','PixType','CreateDate','WithDraw','ServiceFee','ow.State',
  14. 'agent','finishDate','locking'];
  15. $list = $query
  16. ->where($where)
  17. ->select($order)
  18. ->orderBy('finishDate','desc' )
  19. ->get();
  20. $agentName = DB::connection('write')->table('agent.dbo.admin_configs')
  21. ->where('type','cash')
  22. ->pluck('name', 'id')->toArray();
  23. $Withdrawal_M = new Withdrawal();
  24. foreach ($list as &$val) {
  25. if ($val->PixType < 10) {
  26. unset($val->AccountsBank);
  27. unset($val->AdhaarNumber);
  28. unset($val->IFSCNumber);
  29. }else{
  30. unset($val->BankUserName);
  31. unset($val->EmailAddress);
  32. unset($val->PhoneNumber);
  33. }
  34. if ($val->PixType == 1) {
  35. $val->PixType = 'CPF';
  36. }elseif ($val->PixType == 2){
  37. $val->PixType = 'Email';
  38. }elseif ($val->PixType == 3){
  39. $val->PixType = 'Phone';
  40. }else{
  41. $val->PixType = '银行卡';
  42. }
  43. $DrawTotal = number_float(($val->WithDraw + $val->ServiceFee) / 100); // 实际提现金额
  44. $val->ServiceFee = number_float($val->WithDraw / 100);
  45. $val->WithDraw = $DrawTotal;
  46. $val->State = $Withdrawal_M->stateText($val->State, $val->locking);
  47. $val->agent = isset($agentName[$val->agent]) ? $agentName[$val->agent] : '';
  48. unset($val->locking);
  49. }
  50. $title = ['订单号', '玩家ID', '渠道', '提款名字', '邮箱', '电话', 'CPF/CNPJ', '提款方式', '提交时间', '提现申请额度', '实际到账金额', '审核状态','代付方', '订单完成时间'];
  51. $list = json_decode(json_encode($list), true);
  52. downloadExcel($list, $title, '提现订单查询' . date('YmdHis'));
  53. }
  54. // 订单审核 Excel导出
  55. public static function verifyOrderDownExcel($query, $where)
  56. {
  57. // $order = ['OrderId', 'ai.GameID', 'ai.Channel', 'ai.NickName', 'BankUserName', 'BankNO', 'ow.CreateDate', 'WithDraw', 'ServiceFee', 'ow.State', 'ai.UserID', 'remarks'];
  58. $order = ['OrderId', 'ai.GameID', 'ai.Channel','ow.BankUserName','ow.AccountsBank','ow.EmailAddress','ow.AdhaarNumber','PhoneNumber','IFSCNumber','PixNum','PixType','CreateDate','WithDraw','ServiceFee','ow.State',
  59. 'agent', 'finishDate','locking'];
  60. $list = $query
  61. ->where($where)
  62. ->select($order)
  63. ->orderBy('CreateDate','asc' )
  64. ->get();
  65. $Withdrawal_M = new Withdrawal();
  66. foreach ($list as &$val) {
  67. if ($val->PixType < 10) {
  68. unset($val->AccountsBank);
  69. unset($val->AdhaarNumber);
  70. unset($val->IFSCNumber);
  71. }else{
  72. unset($val->BankUserName);
  73. unset($val->EmailAddress);
  74. unset($val->PhoneNumber);
  75. }
  76. if ($val->PixType == 1) {
  77. $val->PixType = 'CPF';
  78. }elseif ($val->PixType == 2){
  79. $val->PixType = 'Email';
  80. }elseif ($val->PixType == 3){
  81. $val->PixType = 'Phone';
  82. }else{
  83. $val->PixType = '银行卡';
  84. }
  85. $DrawTotal = number_float(($val->WithDraw + $val->ServiceFee) / 100); // 实际提现金额
  86. $val->ServiceFee = number_float($val->WithDraw / 100);
  87. $val->WithDraw = $DrawTotal;
  88. $val->State = $Withdrawal_M->stateText($val->State, $val->locking);
  89. unset($val->locking);
  90. }
  91. $title = ['订单号', '玩家ID', '渠道', '提款名字', '邮箱', '电话', 'CPF/CNPJ', '提款方式', '提交时间', '提现申请额度', '实际到账金额', '审核状态','代付方', '订单完成时间','风险提示'];
  92. $list = json_decode(json_encode($list), true);
  93. downloadExcel($list, $title, '提现订单审核' . date('YmdHis'));
  94. }
  95. // 总申请金额
  96. public function TotalWithDraw($where, $type = '')
  97. {
  98. $query = DB::connection('read')->table('QPAccountsDB.dbo.OrderWithDraw as ow')
  99. ->join('QPAccountsDB.dbo.AccountsInfo as ai', 'ow.UserID', 'ai.UserID')
  100. ->leftJoin('agent.dbo.withdrawal_position_log as log', function ($join) {
  101. $join->on('log.order_sn', '=', 'ow.OrderID');
  102. $join->where('log.take_effect', 2);
  103. })
  104. ->leftJoin('QPRecordDB.dbo.RecordPackageName as rn', 'ai.UserID', 'rn.UserID')
  105. ->leftJoin('QPAccountsDB.dbo.AccountsRecord as ar', function ($join) {
  106. $join->on('ow.RecordID', 'ar.RecordID');
  107. $join->where('type', 1);
  108. });
  109. switch ($type) {
  110. case 1: # 已充值
  111. $query->join('QPAccountsDB.dbo.YN_VIPAccount as vip', 'ow.UserID', 'vip.UserID');
  112. break;
  113. case 2: # 未充值
  114. $query->leftJoin('QPAccountsDB.dbo.YN_VIPAccount as vip', 'ow.UserID', 'vip.UserID')->whereNull('vip.UserID');
  115. break;
  116. }
  117. return $query
  118. ->where($where)
  119. ->selectRaw('sum(WithDraw+ServiceFee) as WithDraw,count(distinct(ow.UserID))count_U,count(ow.RecordID) count_ID')
  120. ->first();
  121. }
  122. // 银行卡绑定信息评估
  123. public function BankNO($userIDs)
  124. {
  125. return DB::connection('read')->table('QPAccountsDB.dbo.AccountWithDrawInfo as di')
  126. ->join('QPAccountsDB.dbo.AccountWithDrawInfo as dif', 'di.BankNo', 'dif.BankNo')
  127. ->whereIn('di.UserID', $userIDs)
  128. ->whereNotNull('di.BankNo')
  129. ->selectRaw('count(1) count,di.UserID')
  130. ->groupBy('di.UserID')
  131. ->pluck('count', 'UserID')->toArray();
  132. }
  133. public function ip($userIDs)
  134. {
  135. return DB::connection('read')->table('QPAccountsDB.dbo.AccountsInfo as ai')
  136. ->join('QPAccountsDB.dbo.AccountsInfo as ain', 'ai.RegisterIP', 'ain.RegisterIP')
  137. ->whereIn('ai.UserID', $userIDs)
  138. ->whereNotNull('ai.RegisterIP')
  139. ->selectRaw('count(1) count,ai.GameID')
  140. ->groupBy('ai.GameID')
  141. ->pluck('count', 'GameID')->toArray();
  142. }
  143. }