Explorar o código

当日充值排行修改

laowu hai 2 semanas
pai
achega
a7c6fc1c34

+ 42 - 24
app/Http/Controllers/Admin/WinLoseRankController.php

@@ -15,24 +15,47 @@ class WinLoseRankController extends Controller
         $condition = ['DateID' => date('Ymd'), ['v.Recharge', '>', 0]];
 
         $q = DB::table('QPRecordDB.dbo.RecordUserDataStatisticsNew as ruds');
-        if ($req->input('sort')) {
-            $sort = $req->input('sort') == 1 ? 'CASE WHEN ruds.TotalBet > 0 THEN (ruds.WinScore - ruds.LostScore)/ruds.TotalBet ELSE 0 END asc' : 'CASE WHEN ruds.TotalBet > 0 THEN (ruds.WinScore - ruds.LostScore)/ruds.TotalBet ELSE 0 END desc';
-            $q->orderByRaw($sort);
+        
+        // 排序逻辑
+        if ($req->input('sortBy')) {
+            $sortBy = $req->input('sortBy');
+            $sortType = $req->input('sortType', 'asc');
+            
+            if ($sortBy == 'rtp') {
+                $sort = 'CASE WHEN ruds.TotalBet > 0 THEN (ruds.WinScore - ruds.LostScore)/ruds.TotalBet ELSE 0 END ' . $sortType;
+                $q->orderByRaw($sort);
+            } elseif ($sortBy == 'winlose') {
+                $sort = '(ruds.WinScore - ruds.LostScore) ' . $sortType;
+                $q->orderByRaw($sort);
+            }
         }
-        $page = $q
-            ->select([
+        
+        $q->select([
                 'ruds.UserID',
                 'ruds.WinScore',
                 'ruds.LostScore',
                 'ruds.TotalBet',
                 DB::raw('CASE WHEN ruds.TotalBet > 0 THEN (ruds.WinScore - ruds.LostScore)/ruds.TotalBet ELSE 0 END as rtp'),
                 DB::raw('0 as sameRW'),
-                DB::raw('0 as KindID'), DB::raw('0 as TotalRecharge'), DB::raw('0 as TotalWithdraw'),
+                DB::raw('-1 as KindID'), DB::raw('0 as TotalRecharge'), DB::raw('0 as TotalWithdraw'),
                 DB::raw('\'\' as EmailAddress'), DB::raw('\'\' as PhoneNum'), DB::raw('0 as GameID'),
             ])
             ->leftJoin('QPAccountsDB.dbo.YN_VIPAccount as v', 'v.UserID', '=', 'ruds.UserID')
-            ->where($condition)
-            ->paginate(15);
+            ->where($condition);
+        
+        // 在线状态筛选
+        $onlineStatus = $req->input('online_status');
+        if ($onlineStatus == 1) {
+            // 在线:有记录
+            $q->leftJoin('QPTreasureDB.dbo.GameScoreLocker as gsl', 'gsl.UserID', '=', 'ruds.UserID')
+                ->whereNotNull('gsl.UserID');
+        } elseif ($onlineStatus == 2) {
+            // 离线:无记录
+            $q->leftJoin('QPTreasureDB.dbo.GameScoreLocker as gsl', 'gsl.UserID', '=', 'ruds.UserID')
+                ->whereNull('gsl.UserID');
+        }
+        
+        $page = $q->paginate(15);
 
         if ($page->count() > 0) {
             $uids = array_column($page->items(), 'UserID');
@@ -125,25 +148,20 @@ class WinLoseRankController extends Controller
                     }
                 }
             }
-            try {
-                foreach ($page as $k => $v) {
-                    $uidRws = [];
-                    if ($v->EmailAddress) {
-                        foreach ($emailRWs[$v->EmailAddress] ?? [] as $uid => $value) {
-                            $uidRws[$uid] = $value;
-                        }
+            foreach ($page as $k => $v) {
+                $uidRws = [];
+                if ($v->EmailAddress) {
+                    foreach ($emailRWs[$v->EmailAddress] ?? [] as $uid => $value) {
+                        $uidRws[$uid] = $value;
                     }
-                    if ($v->PhoneNum) {
-                        foreach ($phoneRWs[$v->PhoneNum] ?? [] as $uid => $value) {
-                            $uidRws[$uid] = $value;
-                        }
+                }
+                if ($v->PhoneNum) {
+                    foreach ($phoneRWs[$v->PhoneNum] ?? [] as $uid => $value) {
+                        $uidRws[$uid] = $value;
                     }
-                    $page[$k]->sameRW = array_sum($uidRws) - ($uidRws[$v->UserID] ?? 0);
-                    $page[$k]->KindID = $lockers[$v->UserID] ?? 0;
                 }
-            } catch (\Exception $e) {
-                var_dump($e->getMessage());
-                return;
+                $page[$k]->sameRW = array_sum($uidRws);
+                $page[$k]->KindID = $lockers[$v->UserID] ?? -1;
             }
 
         }

+ 65 - 11
resources/views/admin/win_lose_rank/index.blade.php

@@ -23,20 +23,57 @@
                         <div class="card-body">
                             <h4 class="card-title">当日输赢排行</h4>
                                 <form class="well form-inline margin-top-20" method="get" action=''>
-                                    <span style="padding-left: 10px" >排序</span>
-                                    @component('components.select', [ 'name' => 'sort', 'options' => [0 => '', 1 =>'rtp正序', 2 => 'rtp倒序'],
-                                            'default' => $request->input('sort', 0)
-                                    ])
-                                    @endcomponent
+                                    <span style="padding-left: 10px">在线状态:</span>
+                                    <select class="form-control" name="online_status" style="width: 120px">
+                                        <option value="">{{ __('auto.全部') }}</option>
+                                        <option value="1" @if ($request->input('online_status') == 1) selected @endif>在线</option>
+                                        <option value="2" @if ($request->input('online_status') == 2) selected @endif>离线</option>
+                                    </select>
                                     <input type="submit" class="btn btn-sm btn-gradient-dark btn-icon-text" value="{{ __('auto.搜索') }}"/>&nbsp;&nbsp;
-                                    <a href="/admin/blacklist" class="btn btn-sm btn-gradient-warning btn-icon-text">{{ __('auto.清空') }}</a>
+                                    <a href="/admin/win_lose_rank" class="btn btn-sm btn-gradient-warning btn-icon-text">{{ __('auto.清空') }}</a>
                                 </form>
                                 <table class="table table-bordered">
                                     <thead>
                                         <tr>
                                             <th>GameID</th>
-                                            <th>当日输赢</th>
-                                            <th>当日rtp</th>
+                                            <th>
+                                                <div class="sort_winlose">
+                                                    当日输赢
+                                                    <svg t="1611284352657" class="icon2" onclick="sort_func(this,'winlose','asc')"
+                                                         viewBox="0 0 1024 1024" version="1.1"
+                                                         xmlns="http://www.w3.org/2000/svg" p-id="4118" width="14">
+                                                        <path
+                                                            d="M541.866667 285.866667l345.6 345.6c17.066667 17.066667 17.066667 42.666667 0 59.733333-8.533333 8.533333-19.2 12.8-29.866667 12.8H168.533333c-23.466667 0-42.666667-19.2-42.666666-42.666667 0-10.666667 4.266667-21.333333 12.8-29.866666l343.466666-345.6c17.066667-17.066667 42.666667-17.066667 59.733334 0z"
+                                                            p-id="4119" fill="{{ ($request->input('sortBy') == 'winlose' && $request->input('sortType') == 'asc') ? 'red' : '#707072' }}" />
+                                                        </svg>
+                                                    <svg t="1611283709864" class="icon1" onclick="sort_func(this,'winlose','desc')"
+                                                         viewBox="0 0 1024 1024" version="1.1"
+                                                         xmlns="http://www.w3.org/2000/svg" p-id="3148" width="14">
+                                                        <path
+                                                            d="M482.133333 738.133333L136.533333 392.533333c-17.066667-17.066667-17.066667-42.666667 0-59.733333 8.533333-8.533333 19.2-12.8 29.866667-12.8h689.066667c23.466667 0 42.666667 19.2 42.666666 42.666667 0 10.666667-4.266667-21.333333-12.8-29.866666L541.866667 738.133333c-17.066667 17.066667-42.666667 17.066667-59.733334 0z"
+                                                            p-id="3149" fill="{{ ($request->input('sortBy') == 'winlose' && $request->input('sortType') == 'desc') ? 'red' : '#707071' }}" />
+                                                        </svg>
+                                                </div>
+                                            </th>
+                                            <th>
+                                                <div class="sort_rtp">
+                                                    当日rtp
+                                                    <svg t="1611284352657" class="icon2" onclick="sort_func(this,'rtp','asc')"
+                                                         viewBox="0 0 1024 1024" version="1.1"
+                                                         xmlns="http://www.w3.org/2000/svg" p-id="4118" width="14">
+                                                        <path
+                                                            d="M541.866667 285.866667l345.6 345.6c17.066667 17.066667 17.066667 42.666667 0 59.733333-8.533333 8.533333-19.2 12.8-29.866667 12.8H168.533333c-23.466667 0-42.666667-19.2-42.666666-42.666667 0-10.666667 4.266667-21.333333 12.8-29.866666l343.466666-345.6c17.066667-17.066667 42.666667-17.066667 59.733334 0z"
+                                                            p-id="4119" fill="{{ ($request->input('sortBy') == 'rtp' && $request->input('sortType') == 'asc') ? 'red' : '#707072' }}" />
+                                                        </svg>
+                                                    <svg t="1611283709864" class="icon1" onclick="sort_func(this,'rtp','desc')"
+                                                         viewBox="0 0 1024 1024" version="1.1"
+                                                         xmlns="http://www.w3.org/2000/svg" p-id="3148" width="14">
+                                                        <path
+                                                            d="M482.133333 738.133333L136.533333 392.533333c-17.066667-17.066667-17.066667-42.666667 0-59.733333 8.533333-8.533333 19.2-12.8 29.866667-12.8h689.066667c23.466667 0 42.666667 19.2 42.666666 42.666667 0 10.666667-4.266667-21.333333-12.8-29.866666L541.866667 738.133333c-17.066667 17.066667-42.666667 17.066667-59.733334 0z"
+                                                            p-id="3149" fill="{{ ($request->input('sortBy') == 'rtp' && $request->input('sortType') == 'desc') ? 'red' : '#707071' }}" />
+                                                        </svg>
+                                                </div>
+                                            </th>
                                             <th>历史充值减提现</th>
                                             <th>关联用户充值历史减提现</th>
                                             <th>在线状态</th>
@@ -45,12 +82,12 @@
                                     <tbody>
                                         @foreach ($list as $row)
                                             <tr>
-                                                <td>{{ $row->GameID }}</td>
+                                                <td><a href='/admin/global/id_find?UserID={{ $row->UserID }}'>{{ $row->GameID }}</a></td>
                                                 <td>{{ ($row->WinScore - $row->LostScore)/\App\Http\helper\NumConfig::NUM_VALUE }}</td>
-                                                <td>{{ $row->TotalBet ? ($row->WinScore - $row->LostScore)/$row->TotalBet : 0 }}</td>
+                                                <td>{{ $row->TotalBet ? intval(($row->WinScore - $row->LostScore)/$row->TotalBet*100) : 0 }}%</td>
                                                 <td>{{ $row->TotalRecharge - ($row->TotalWithdraw + $row->Score + $row->WithDrawWaitAudit)/\App\Http\helper\NumConfig::NUM_VALUE}}</td>
                                                 <td>{{ $row->sameRW }}</td>
-                                                <td>{{ $row->KindID == 0 ? '离线' : $gameServerNames[$row->KindID] ?? '' }}</td>
+                                                <td>{{ $row->KindID === -1 ? '离线' : $gameServerNames[$row->KindID] ?? '' }}</td>
                                             </tr>
                                         @endforeach
                                     </tbody>
@@ -65,4 +102,21 @@
             </div>
         </div>
     </div>
+<script>
+    function sort_func(obj, sortBy, sortType) {
+        if (sortBy === 'winlose') {
+            $(".sort_winlose svg:eq(1)").children('path').attr('fill', '#707071');
+            $(".sort_winlose svg:eq(0)").children('path').attr('fill', '#707071');
+            $(obj).children('path').attr('fill', 'red');
+        } else if (sortBy === 'rtp') {
+            $(".sort_rtp svg:eq(1)").children('path').attr('fill', '#707071');
+            $(".sort_rtp svg:eq(0)").children('path').attr('fill', '#707071');
+            $(obj).children('path').attr('fill', 'red');
+        }
+        let url = new URL(window.location.href);
+        url.searchParams.set('sortBy', sortBy);
+        url.searchParams.set('sortType', sortType);
+        window.location.href = url.toString();
+    }
+</script>
 @endsection