Pro/application/admin/view/player/user_online.html
2026-02-25 01:50:31 +08:00

250 lines
12 KiB
HTML
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{include file="public/header"}
<style>
.x-body .layui-row{ margin-top:-10px; line-height:25px; background:#f5f5f5; border-radius:10px; }
.x-body .layui-row .xblock button{ margin-top:-20px; }
.x-body .layui-form{ margin-top:15px; margin-bottom:16px; }
.x-body .layui-form .layui-input-block{ display:inline-block; width:150px; margin-left:0; }
.x-body .layui-form .layui-form-item{ display:inline-block; margin-left:0; }
.x-body .layui-form .layui-form-item .layui-form-label{ width:80px; }
.x-body .layui-form .layui-form-item .layui-input-block{ margin-left:-10px; width:100px; }
.x-body .layui-form .layui-form-item .layui-input-block .layui-form-radio i{ margin-right:4px; }
.x-body .layui-form .layui-form-item .layui-form-radio{ margin-top:6px; margin-right:-8px; }
.layui-input-block dl{ text-align:left; }
.x-so{ margin:0; }
.x-so input.layui-input{ width:150px; }
.x-nav{overflow: inherit; } .x-nav .refresh{margin-right: 20px; }
.change_box .actived{border-right:1px solid #e5e5e5;border-left:1px solid #e5e5e5;border-top:1px solid #e5e5e5; position: relative; color: #3daae9; }
.change_box .actived:after{content: ""; bottom: -2px; background: #fff; width: 100%; height: 5px; position: absolute; left: 0; }
.change_box a{font-size: 14px;padding: 10.5px 10px;}
.alert{position:fixed; top:15%; left:30%; width:600px; min-height:150px; background:#fff; border:1px solid #e2e2e2; border-radius:5px; display:none;}
.alert .alert-main{width:600px;height:200px;overflow-y: scroll;}
.alert-title{background:#009688; height:40px; text-align: center; line-height:40px; font-size:14px; border-bootom:1px solid #F2F2F2;color:#fff;}
.alert-main th{width:40%; border-left:none; text-align:right;}
.alert-main td{border-right:none; }
.alert-footer{padding:20px; text-align:center;}
.alert-footer span{padding:10px 30px; display:inline-block; border-radius:5px; cursor:pointer;}
</style>
<body>
<div class="x-nav" style="padding: 0px;">
<span class="change_box">
<a href="javascript:;" class="list-one actived" data-id="1">实时数据</a>
</span>
<a class="layui-btn layui-btn-small refresh" style="line-height:1.6em;margin-top:3px;float:right"
href="javascript:location.replace(location.href);" title="刷新">
<i class="layui-icon" style="line-height:30px"></i></a>
</div>
<br>
<div class="x-body">
<div class="layui-row">
<form class="layui-form layui-col-md12 x-so float-left" action="/player/user_online" method="get">
<div class="layui-input-block" >
<select name="table_id" id="table_id">
<option value="-1" selected>请选择桌子</option>
{foreach name="$table_list" item="vo"}
<option value="{$vo.id}" <?php if(isset($get['table_id']) && $get['table_id'] == $vo['id']) {echo 'selected';} ?>>{$vo.table_name}</option>
{/foreach}
</select>
</div>
<input type="text" name="username" id="username" placeholder="请输入用户名" autocomplete="off" class="layui-input" value="<?php if(isset($get['username'])) {echo $get['username'];} ?>">
<div class="layui-form-item" style="margin-bottom: 0px;">
<label class="layui-form-label">只看未开</label>
<div class="layui-input-block">
<input type="radio" class="is_under" name="is_under" value="1" title="是" <?php if(isset($get['is_under']) && $get['is_under'] == 1) {echo 'checked';} ?>>
<input type="radio" class="is_under" name="is_under" value="0" title="否" <?php if(isset($get['is_under']) && $get['is_under'] == 0) {echo 'checked';} ?>>
</div>
</div>
<button class="layui-btn" lay-submit="" lay-filter="sreach"><i class="layui-icon">&#xe615;</i></button>
<!-- <span class="layui-btn" id="export">导出excel</span>
<span class="layui-btn" id="print">打印</span> -->
<span style="margin-left:20px;color:red;">数据标红则疑似对打</span>
</form>
</div>
<table class="layui-table">
<thead>
<tr>
<th>账号</th>
<th>登录客户端</th>
<th>登录IP</th>
<th>总押</th>
<th>总赢</th>
<th>当前余额</th>
<th>下注详情</th>
<th>操作</th>
</tr>
</thead>
<tbody class="ttable">
{foreach name="$user_online" item="vo"}
{if $vo.is_beat == 1}
<tr class="refreshData" style="background:red;">
{else}
<tr class="refreshData">
{/if}
<td>{$vo.username}</td>
<td>{$vo.client}</td>
<td>{$vo.last_login_ip}</td>
<td>{$vo.amount}</td>
<td>{$vo.win_total}</td>
<td>{$vo.money}</td>
<td>
{$vo.bet_detail_first.bet_detail}
{if condition="$vo.bet_detail_count > 1"}
<a href="javascript:;" onclick="showBetDetail(this)" data-username="{$vo.username}" data-bet_detail={$vo.bet_detail}><span class="layui-btn layui-btn-normal layui-btn-mini" style="background:#009688;">更多</span></a>
{/if}
</td>
<td>
<a href="javascript:;">
<span class="layui-btn layui-btn-normal layui-btn-mini" style="background:#009688;" onclick="logout({$vo.user_id})">强制下线</span>
</a>
</td>
</tr>
{/foreach}
<tr class="refreshData">
<th colspan="3" style="text-align: center;">统计</th>
<th>{$totalData.amount}</th>
<th>{$totalData.win_total}</th>
<th colspan="3"></th>
</tr>
</tbody>
</table>
</div>
<audio id="audio" hidden></audio>
<div class="alert" id="alert_bet_detail">
<div class="alert-title" id="show_username"></div>
<div class="alert-main">
<table class="layui-table" style="margin:0;">
<tr><th>押庄赔率:</th><td id="show_price_banker"></td></tr>
<tr><th>押闲赔率:</th><td id="show_price_player"></td></tr>
<tr><th>押和赔率(百家乐):</th><td id="show_price_tie_baccarat"></td></tr>
<tr><th>押对子赔率:</th><td id="show_price_pair"></td></tr>
<tr><th>押龙赔率:</th><td id="show_price_dragon"></td></tr>
<tr><th>押虎赔率:</th><td id="show_price_tiger"></td></tr>
<tr><th>押和赔率(龙虎斗):</th><td id="show_price_tie_dt"></td></tr>
<tr><th>押牛7-牛9赔率</th><td id="show_price_n7_n9"></td></tr>
<tr><th>押牛牛赔率:</th><td id="show_price_nn"></td></tr>
<tr><th>押五公赔率:</th><td id="show_price_5n"></td></tr>
<tr><th>押四条赔率:</th><td id="show_price_bomb"></td></tr>
</table>
</div>
<div class="alert-footer">
<span onclick="hideBetDetail()" class="input_button" style="background:#009688; border:1px solid #e2e2e2;color:#fff;">关闭</span>
</div>
</div>
<script>
var b = {$betIdArrJson};
var bt = {$betIdDtArrJson};
autoRefresh();
function autoRefresh(){
setInterval(function(){
var username = $('#username').val();
var table_id = $('#table_id').val();
var is_under = $('.is_under:checked').val();
$.ajax({
url:'/player/user_online_autoRefresh',
data:{username:username,table_id:table_id,is_under:is_under},
dataType:'JSON',
type:'POST',
success:function(data){
// 声音
if(data.is_new == true){
audioShow();
}
if(data.user_online){
var total = data.totalData;
var v = data.user_online;
b = data.betIdArr;
bt = data.betIdDtArr;
var str = "";
for(var i=0; i<v.length; i++){
if(v[i]['is_beat'] == 1){
str += '<tr class="refreshData" style="background:red;">';
}else{
str += '<tr class="refreshData">';
}
str += '<td>'+v[i].username+'</td>';
str += '<td>'+v[i].client+'</td>';
str += '<td>'+v[i].last_login_ip+'</td>';
str += '<td>'+v[i].amount+'</td>';
str += '<td>'+v[i].win_total+'</td>';
str += '<td>'+v[i].money+'</td>';
str += '<td>'+v[i].bet_detail_first.bet_detail;
if(v[i].bet_detail_count > 1){
str += '<a href="javascript:;" onclick="showBetDetail(this)" data-username="'+v[i].username+'" data-bet_detail='+JSON.stringify(v[i].bet_detail)+'><span class="layui-btn layui-btn-normal layui-btn-mini" style="background:#009688;">更多</span></a></td>';
}else{
str += '</td>';
}
str += '<td><a href="javascript:;"><span class="layui-btn layui-btn-normal layui-btn-mini" style="background:#009688;" onclick="logout('+v[i].user_id+')">强制下线</span></a> </td>';
str += '</tr>';
}
str += '<tr class="refreshData">';
str += '<th colspan="3" style="text-align: center;">统计</th>';
str += '<th>'+total.amount+'</th>';
str += '<th>'+total.win_total+'</th>';
str += '<th colspan="3"></th>';
str += '</tr>';
$('.refreshData').remove();
$('.ttable').append(str);
}
}
});
},5000);
}
function showBetDetail(obj){
var username = $(obj).attr('data-username');
var bet_detail = $(obj).attr('data-bet_detail');
var v = JSON.parse(bet_detail);
var str = '';
console.log(v)
console.log(b.indexOf(47))
for(var i in v){
if(v[i]['game_id'] == 1 && b.includes(v[i]['bet_id'])){
str += '<tr style="background:red;"><td>'+ v[i]['bet_detail'] +'</td></tr>';
}else if(v[i]['game_id'] == 2 && bt.includes(v[i]['bet_id'])){
str += '<tr style="background:red;"><td>'+ v[i]['bet_detail'] +'</td></tr>';
}else{
str += '<tr><td>'+ v[i]['bet_detail'] +'</td></tr>';
}
}
$('#show_username').html(username);
$('#alert_bet_detail').find('.layui-table').empty().html(str);
$('#alert_bet_detail').show();
}
function hideBetDetail(){
$('#alert_bet_detail').hide();
}
// 踢人
function logout(id){
layer.confirm('确定强制该玩家下线吗?',function(){
$.ajax({
url:'/player/logout',
data:{user_id:id},
type:'POST',
dataType:'JSON',
success:function(data){
layer.alert(data.msg,function(){
location.reload();
})
}
});
});
}
// 新客人上线声音
function audioShow(){
var audio = $("#audio").get(0);
var audioPath = '/static/console/mp3/welcome.mp3';
$('#audio').attr('src',audioPath);
audio.play();
}
</script>
</body>
</html>