This commit is contained in:
你的名字
2025-07-14 10:22:40 +08:00
commit 0483b4b364
1388 changed files with 219353 additions and 0 deletions

View File

@ -0,0 +1,242 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<title>{block name="title"}{$title|default=''}{if !empty($title)} · {/if}{:sysconf('site_name')}{/block}</title>
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=0.4">
<link rel="shortcut icon" href="{:sysconf('site_icon')}">
<link rel="stylesheet" href="__ROOT__/static/plugs/awesome/fonts.css?at={:date('md')}">
<link rel="stylesheet" href="__ROOT__/static/plugs/layui/css/layui.css?at={:date('md')}">
<link rel="stylesheet" href="__ROOT__/static/theme/css/console.css?at={:date('md')}">
{block name="style"}{/block}
<script>window.ROOT_URL = '__ROOT__';window.ADMIN_MODULE = '{:ADMIN_MODULE}';</script>
<script src="__ROOT__/static/plugs/jquery/pace.min.js"></script>
<style>
.layui-nav .layui-badge, .layui-nav .layui-badge-dot {
position: static;
}
</style>
<script>
setInterval(function() {
$.ajax({
url: '/{:ADMIN_MODULE}/index/online_user',
type: 'get',
data: {},
dataType: 'json',
success: function (res) {
$('.online_user').html(res.data);
}
});
}, 3000);
</script>
</head>
<body class="layui-layout-body">
{block name='body'}
<div class="ignore" style="display:block">
<img id='noticeimg' src="/static/theme/img/notice.png" width="32">
</div>
<div class="layui-layout layui-layout-admin layui-layout-left-hide">
<!-- 顶部菜单 开始 -->
<div class="layui-header notselect">
<a href="javascript:void(0);" class="layui-logo layui-elip" style="pointer-events: none;">
{:sysconf('app_name')} {if sysconf('app_version')}<sup class="padding-left-5">{:sysconf('app_version')}</sup>{/if}
</a>
<ul class="layui-nav layui-layout-left">
<li class="layui-nav-item" lay-unselect>
<a class="text-center" data-target-menu-type>
<i class="layui-icon layui-icon-spread-left"></i>
</a>
</li>
{foreach $menus as $oneMenu}
<li class="layui-nav-item">
<a data-menu-node="m-{$oneMenu.id}" data-open="{$oneMenu.url}">
{notempty name='oneMenu.icon'}<span class='{$oneMenu.icon} padding-right-5'></span>{/notempty}
<span>{$oneMenu.title|default=''}</span>
</a>
</li>
{/foreach}
</ul>
<ul class="layui-nav layui-layout-right">
<li lay-unselect class="layui-nav-item"><a href="/{:ADMIN_MODULE}.html#/{:ADMIN_MODULE}/users/index.html?online_user=1">
在线人数
<span class="layui-badge online_user">0</span>
</a></li>&nbsp;&nbsp;&nbsp;
<li lay-unselect class="layui-nav-item"><a href="/{:ADMIN_MODULE}.html#/{:ADMIN_MODULE}/recharge/index.html?spm=m-69-105-107" data-reload>
充值
<span class="layui-badge recharge_count">0</span>
</a></li>&nbsp;&nbsp;&nbsp;
<li lay-unselect class="layui-nav-item"><a href="/{:ADMIN_MODULE}.html#/{:ADMIN_MODULE}/cash/index.html?spm=m-69-105-108" data-reload>
提现
<span class="layui-badge cash_count">0</span>
</a></li>&nbsp;&nbsp;&nbsp;
<li lay-unselect class="layui-nav-item"><a href="/{:ADMIN_MODULE}.html#/{:ADMIN_MODULE}/order/index.html?spm=m-109-111-116" data-reload>
订单
<span class="layui-badge Order_count">0</span>
</a></li>
<li lay-unselect class="layui-nav-item"><a data-reload><i class="layui-icon layui-icon-refresh-3"></i></a></li>
{notempty name='Think.session.user.username'}
<li class="layui-nav-item">
<dl class="layui-nav-child">
<dd lay-unselect><a data-modal="{:url(ADMIN_MODULE.'/index/info',['id'=>session('user.id')])}"><i class="layui-icon layui-icon-set-fill margin-right-5"></i>基本资料</a></dd>
<dd lay-unselect><a data-modal="{:url(ADMIN_MODULE.'/user/pass',['id'=>session('user.id')])}"><i class="layui-icon layui-icon-component margin-right-5"></i>安全设置</a></dd>
<dd lay-unselect><a data-modal="{:url(ADMIN_MODULE.'/user/suffix',['id'=>session('user.id')])}"><i class="layui-icon layui-icon-component margin-right-5"></i>后台加密</a></dd>
{if auth('akszadmin/index/buildoptimize')}
<dd lay-unselect><a data-modal="{:url(ADMIN_MODULE.'/index/buildOptimize')}"><i class="layui-icon layui-icon-template-1 margin-right-5"></i>压缩发布</a></dd>
{/if}
{if auth('akszadmin/index/clearruntime')}
<dd lay-unselect><a data-modal="{:url(ADMIN_MODULE.'/index/clearRuntime')}"><i class="layui-icon layui-icon-fonts-clear margin-right-5"></i>清理缓存</a></dd>
{/if}
{notempty name='GLOBALS.AdminUserRightOption'}{foreach $GLOBALS.AdminUserRightOption as $option}{if auth($option.node)}
<dd lay-unselect><a data-{$option.type}="{$option.action}"><i class="{$option.icon} margin-right-5"></i>{$option.title}</a></dd>
{/if}{/foreach}{/notempty}
<dd lay-unselect><a data-confirm="确定要退出登录吗?" data-load="{:url(ADMIN_MODULE.'/login/out')}"><i class="layui-icon layui-icon-release margin-right-5"></i>退出登录</a></dd>
</dl>
<a><span><i class="layui-icon layui-icon-username margin-right-5"></i> {:session('user.username')}</span></a>
</li>
{else}
<li class="layui-nav-item">
<a data-href="{:url('@'.ADMIN_MODULE.'/login')}"><i class="layui-icon layui-icon-username"></i> 立即登录</a>
</li>
{/notempty}
</ul>
</div>
<!-- 顶部菜单 结束 -->
<!-- 左则菜单 开始 -->
<div class="layui-side layui-bg-black notselect">
<div class="layui-side-scroll">
{foreach $menus as $oneMenu}
{notempty name='oneMenu.sub'}
<ul class="layui-nav layui-nav-tree layui-hide" data-menu-layout="m-{$oneMenu.id}">
{foreach $oneMenu.sub as $twoMenu}
{empty name='twoMenu.sub'}
<li class="layui-nav-item">
<a data-target-tips="{$twoMenu.title}" data-menu-node="m-{$oneMenu.id}-{$twoMenu.id}" data-open="{$twoMenu.url}">
<span class='{$twoMenu.icon|default="layui-icon layui-icon-link"}'></span>
<span class="nav-text padding-left-5">{$twoMenu.title}</span>
</a>
</li>
{else}
<li class="layui-nav-item" data-submenu-layout='m-{$oneMenu.id}-{$twoMenu.id}'>
<a data-target-tips="{$twoMenu.title}" style="background:#393D49">
<span class='nav-icon layui-hide {$twoMenu.icon|default="layui-icon layui-icon-triangle-d"}'></span>
<span class="nav-text padding-left-5">{$twoMenu.title}</span>
</a>
<dl class="layui-nav-child">
{foreach $twoMenu.sub as $thrMenu}
<dd>
<a data-target-tips="{$thrMenu.title}" data-open="{$thrMenu.url}" data-menu-node="m-{$oneMenu.id}-{$twoMenu.id}-{$thrMenu.id}">
<span class='nav-icon padding-left-5 {$thrMenu.icon|default="layui-icon layui-icon-link"}'></span>
<span class="nav-text padding-left-5">{$thrMenu.title}</span>
</a>
</dd>
{/foreach}
</dl>
</li>
{/empty}
{/foreach}
</ul>
{/notempty}
{/foreach}
</div>
</div>
<!-- 左则菜单 结束 -->
<!-- 主体内容 开始 -->
<div class="layui-body layui-bg-gray">{block name='content'}{/block}</div>
<!-- 主体内容 结束 -->
</div>
<iframe style="top:100px;right:50px" src="" height="0" width="0" frameborder="0" id="ifr"></iframe>
{/block}
<script src="__ROOT__/static/plugs/layui/layui.all.js"></script>
<script src="__ROOT__/static/plugs/require/require.js"></script>
<script src="__ROOT__/static/admin.js"></script>
<script>
var noticeoff=0;
var int;
if(noticeoff==0){
seeNum();
int=setInterval(seeNum,15000);
}
$('.ignore').click(function(){
$.get("/{:ADMIN_MODULE}/index/system_ignore",function(data,status){
layer.msg("所有提醒已忽略~");
$('#noticeimg').attr('src','/static/theme/img/ignore.png');
});
// if(noticeoff==0){
// $.get("/{:ADMIN_MODULE}/index/system_ignore",function(data,status){
// layer.msg("所有提醒已忽略~");
// // $('.ignore').hide();
// });
// $('#noticeimg').attr('src','/static/theme/img/ignore.png');
// noticeoff=1;
// window.clearInterval(int);
// }else{
// noticeoff=0;
// int=setInterval(seeNum,15000);
// $('#noticeimg').attr('src','/static/theme/img/notice.png');
// }
});
function seeNum(){
var seeNumUrl = "/{:ADMIN_MODULE}/index/check";
var rechargeState = 1;//充值声音开关1开/0关
$.ajax({
type : "POST",
url : seeNumUrl,
data: {rechargeState:rechargeState},
dataType : "json",
success : function(result){
if(result['code']==1){
var url = result['data']['url'].split('_')[0];
var recharge_count = result['data']['url'].split('_')[1].split('@')[0];
var cash_count = result['data']['url'].split('@')[1].split('&')[0];
var Order_count = result['data']['url'].split('&')[1];
$(".recharge_count").text(recharge_count);
$(".cash_count").text(cash_count);
$(".Order_count").text(Order_count);
$("#ifr").attr("src",url);
layer.msg(result['info'],{offset:'rb'});
$('#noticeimg').attr('src','/static/theme/img/notice.png');
//$('.ignore').show();
}else{
$("#ifr").attr("src","");
//$('.ignore').hide();
}
},
error:function(){
}
});
}
</script>
<style>
.ignore{
display: none;
position: fixed;
bottom: 15px;
right: 25px;
transition: all .3s ease-in-out;
z-index: 99999;
}
.ignore img{
background: #189f92;
padding: 10px;
border-radius: 100%;
}
</style>
{block name='script'}{/block}
</body>
</html>

View File

@ -0,0 +1,200 @@
{extend name='main'}
{block name='content'}
<style>
.store-total-container {
font-size: 14px;
margin-bottom: 20px;
letter-spacing: 1px;
}
.store-total-container .store-total-icon {
top: 45%;
right: 8%;
font-size: 65px;
position: absolute;
color: rgba(255, 255, 255, 0.4);
}
.store-total-container .store-total-item {
color: #fff;
line-height: 4em;
padding: 15px 25px;
position: relative;
}
.store-total-container .store-total-item > div:nth-child(2) {
font-size: 46px;
line-height: 46px;
}
</style>
<div class="think-box-shadow store-total-container notselect">
<div class="margin-bottom-15">数据统计</div>
<div class="layui-row layui-col-space15">
<div class="layui-col-sm6 layui-col-md3">
<div class="store-total-item nowrap" style="background:linear-gradient(-125deg,#57bdbf,#2f9de2)">
<div>总盈亏</div>
<div>{:number_format($invest_count)}</div>
<div>当前盈亏总数</div>
</div>
<i class="store-total-icon layui-icon layui-icon-template-1"></i>
</div>
<div class="layui-col-sm6 layui-col-md3">
<div class="store-total-item nowrap" style="background:linear-gradient(-125deg,#ff7d7d,#fb2c95)">
<div>用户总量</div>
<div>{:number_format($user_count)}</div>
<div>当前用户总数量(人)</div>
</div>
<i class="store-total-icon layui-icon layui-icon-user"></i>
</div>
<div class="layui-col-sm6 layui-col-md3">
<div class="store-total-item nowrap" style="background:linear-gradient(-113deg,#c543d8,#925cc3)">
<div>充值总额</div>
<div>{:number_format($recharge_sum)}</div>
<div>已支付充值订单总金额(元)</div>
</div>
<i class="store-total-icon layui-icon layui-icon-read"></i>
</div>
<div class="layui-col-sm6 layui-col-md3">
<div class="store-total-item nowrap" style="background:linear-gradient(-141deg,#ecca1b,#f39526)">
<div>提现总额</div>
<div>{:number_format($cash_sum)}</div>
<div>已完成提现订单总金额(元)</div>
</div>
<i class="store-total-icon layui-icon layui-icon-survey"></i>
</div>
</div>
</div>
<div class="think-box-shadow store-total-container">
<div class="margin-bottom-15">实时概况</div>
<div class="layui-row layui-col-space15">
<div class="layui-col-md6 margin-bottom-15">
<div class="layui-row">
<div class="layui-col-xs3 text-center">
<i class="layui-icon color-blue" style="font-size:60px;line-height:72px">&#xe65e;</i>
</div>
<div class="layui-col-xs4">
<div class="font-s14">今日充值</div>
<div class="font-s16">{:number_format($day[$today_key]['recharge'],2)}</div>
<div class="font-s12 color-desc">今日充值成功金额(元)</div>
</div>
<div class="layui-col-xs5">
<div class="font-s14">今日提现</div>
<div class="font-s16">{:number_format($day[$today_key]['cash'],2)}</div>
<div class="font-s12 color-desc">今日提现成功金额(元)</div>
</div>
</div>
</div>
<div class="layui-col-md6 margin-bottom-15">
<div class="layui-row">
<div class="layui-col-xs3 text-center">
<i class="layui-icon color-blue" style="font-size:60px;line-height:72px">&#xe663;</i>
</div>
<div class="layui-col-xs4">
<div class="font-s14">今日新增</div>
<div class="font-s16">{$day[$today_key]['new_user']}</div>
<div class="font-s12 color-desc">今日新增会员数(人)</div>
</div>
<div class="layui-col-xs5">
<div class="font-s14">在线人数</div>
<div class="font-s16">{$online_user}</div>
<div class="font-s12 color-desc">当前在线会员数(人)</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="think-box-shadow">
<table class="layui-table" lay-even>
<caption class="text-left margin-bottom-15 font-s14">综合报表</caption>
<colgroup>
<col width="30%">
</colgroup>
<thead>
<tr>
<td>备注</td>
<td>入款</td>
<td>出款</td>
<td>首冲人数</td>
<td>活跃人数</td>
<td>客户盈亏</td>
</tr>
</thead>
<tbody>
<tr>
<td>上月</td>
<td>¥{:number_format($last_month['recharge'],2)}元</td>
<td>¥{:number_format($last_month['cash'],2)}元</td>
<td>{:$last_month['invest_list']}人</td>
<td>0人</td>
<td>¥{:number_format($last_month['invest_sum'],2)}元</td>
</tr>
<tr>
<td>本月</td>
<td>{:number_format($month['recharge'],2)}元</td>
<td>{:number_format($month['cash'],2)}元</td>
<td>{:$month['invest_list']}人</td>
<td>0人</td>
<td>{:number_format($month['invest_sum'],2)}元</td>
</tr>
<tr>
<td>总计</td>
<td><?php echo number_format(Db::name('LcRecharge')->where('status = 1')->sum('money'),2);?></td>
<td><?php echo number_format(Db::name('LcCash')->where('status = 1')->sum('money'),2);?></td>
<td><?php echo ($last_month['invest_list']+$month['invest_list']);?></td>
<td>0人</td>
<td><?php echo number_format(($last_month['invest_sum']+$month['invest_sum']),2);?></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="think-box-shadow">
<table class="layui-table" lay-even>
<caption class="text-left margin-bottom-15 font-s14">本月明细</caption>
<colgroup>
<col width="30%">
</colgroup>
<thead>
<tr>
<td>日期</td>
<td>新增用户</td>
<td>入款</td>
<td>出款</td>
<td>首冲人数</td>
<td>活跃人数</td>
<td>订单数量</td>
<td>客户盈亏</td>
<td>流水</td>
</tr>
</thead>
<tbody>
{volist name="day" id="v"}
<tr>
<td>{$v['date']}</td>
<td>{$v['new_user']}人</td>
<td>¥{:number_format($v['recharge'],2)}元</td>
<td>{:number_format($v['cash'],2)}元</td>
<td>{:$v['invest_list']}人</td>
<td>0人</td>
<td>{:$v['ordernumer']}条</td>
<td>¥{:number_format($v['expire'],2)}元</td>
<td>¥{:number_format($v['interest'],2)}元</td>
</tr>
{/volist}
</tbody>
</table>
</div>
</div>
</div>
{/block}