RankingController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. use App\Http\Controllers\Api\AgentController;
  6. use Illuminate\Support\Facades\DB;
  7. use \App\Http\Models;
  8. use \Exception;
  9. /**
  10. * 排行榜控制器
  11. */
  12. class RankingController extends Controller
  13. {
  14. /**
  15. * 盈利排行榜
  16. *
  17. * @access public
  18. * @param mixed $req 参数.
  19. * @return string
  20. */
  21. public function winRanking(Request $req){
  22. $code = -2;
  23. $msg = '操作失败';
  24. try {
  25. $sportsAgent = new AgentController;
  26. // 体育盈利.
  27. $userDataWin = [];
  28. $sportsData = $sportsAgent->userProfit();
  29. foreach ($sportsData as $v) {
  30. $userDataKey = array_search($v->name, array_column($userDataWin, 'name'));
  31. if (strlen($userDataKey)) {
  32. $userDataWin[$userDataKey]['money'] += abs($v->money);
  33. } else {
  34. $userDataWin[] = (array) $v;
  35. }
  36. }
  37. // 排序.
  38. $moneyArr = array_column($userDataWin, 'money');
  39. array_multisort($moneyArr, SORT_DESC, $userDataWin);
  40. // 计算当前用户排名.
  41. $myName = DB::table('members')->select('name')->where('id', S('token_user_id'))->first();
  42. $userKey = array_search($myName->name, array_column($userDataWin, 'name'));
  43. // 取前10个.
  44. $winRanking = array_slice($userDataWin, 0, 10);
  45. $result = [
  46. 'winRanking' => $winRanking,
  47. 'myRank' => ($userKey + 1),
  48. ];
  49. return toJson(1, '成功', $result);
  50. } catch (Exception $e) {
  51. return toJson($code, $msg, []);
  52. }//end try
  53. }//end winRanking()
  54. /**
  55. * 盈利排行榜
  56. *
  57. * @access public
  58. * @param mixed $req 参数.
  59. * @return string
  60. */
  61. public function cashRanking(Request $req){
  62. $code = -2;
  63. $msg = '操作失败';
  64. try {
  65. $agentCashModel = new Models\AgentCash;
  66. $userInfoModel = new Models\UserInfo;
  67. // 获取所有人游戏余额.
  68. $userDataAll = [];
  69. $gameMoney = $agentCashModel->allGameMoney();
  70. foreach ($gameMoney as $v) {
  71. $userDataKey = array_search($v->members_id, array_column($userDataAll, 'id'));
  72. if (strlen($userDataKey)) {
  73. $userDataAll[$userDataKey]['money'] += abs($v->gameMoney_money);
  74. } else {
  75. $thisData['money'] = abs($v->gameMoney_money);
  76. $thisData['id'] = $v->members_id;
  77. $thisData['name'] = $v->name;
  78. $userDataAll[] = $thisData;
  79. }
  80. }
  81. // 获取用户余额.
  82. $userCashSelect = [
  83. 'membersDetailed_cash',
  84. 'members_id',
  85. 'name',
  86. ];
  87. $userCash = $userInfoModel->getAllUserInfo($userCashSelect);
  88. foreach ($userCash as $v) {
  89. $userDataKey = array_search($v->members_id, array_column($userDataAll, 'id'));
  90. if (strlen($userDataKey)) {
  91. $userDataAll[$userDataKey]['money'] += abs($v->membersDetailed_cash);
  92. } else {
  93. $thisData['money'] = abs($v->membersDetailed_cash);
  94. $thisData['id'] = $v->members_id;
  95. $thisData['name'] = $v->name;
  96. $userDataAll[] = $thisData;
  97. }
  98. }
  99. // 排序.
  100. $moneyArr = array_column($userDataAll, 'money');
  101. array_multisort($moneyArr, SORT_DESC, $userDataAll);
  102. // 计算当前用户排名.
  103. $userKey = array_search(S('token_user_id'), array_column($userDataAll, 'id'));
  104. // 取前10个.
  105. $winRanking = array_slice($userDataAll, 0, 10);
  106. $result = [
  107. 'winRanking' => $winRanking,
  108. 'myRank' => ($userKey + 1),
  109. ];
  110. return toJson(1, '成功', $result);
  111. } catch (Exception $e) {
  112. return toJson($code, $msg, []);
  113. }//end try
  114. }//end rankingList()
  115. }