mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-07-12 19:39:10 +08:00
完善后台今日统计,增加权限白名单,增加后台首页菜单,调整后台登录页样式
This commit is contained in:
parent
cc1c663917
commit
5784be5067
10
CHANGELOG.md
10
CHANGELOG.md
@ -1,3 +1,13 @@
|
||||
### [v1.1.0](https://gitee.com/koogua/course-tencent-cloud/releases/v1.1.0)(2020-10-08)
|
||||
|
||||
- 增加运营统计功能
|
||||
- 增加课程资料功能
|
||||
- 增加changelog
|
||||
- 忽略schema
|
||||
- 账户安全页面调整
|
||||
- 简化部分路由
|
||||
- 修复相关课程列表undefined问题
|
||||
|
||||
### [v1.0.0-beta1](https://gitee.com/koogua/course-tencent-cloud/releases/v1.0.0-beta1)(2020-09-26)
|
||||
|
||||
前台功能:
|
||||
|
@ -2,8 +2,7 @@
|
||||
|
||||
namespace App\Caches;
|
||||
|
||||
use App\Models\Order as OrderModel;
|
||||
use App\Models\User as UserModel;
|
||||
use App\Repos\Stat as StatRepo;
|
||||
|
||||
class SiteTodayStat extends Cache
|
||||
{
|
||||
@ -22,42 +21,21 @@ class SiteTodayStat extends Cache
|
||||
|
||||
public function getContent($id = null)
|
||||
{
|
||||
$statRepo = new StatRepo();
|
||||
|
||||
$date = date('Y-m-d');
|
||||
|
||||
$saleCount = $statRepo->countDailySales($date);
|
||||
$saleAmount = $statRepo->sumDailySales($date);
|
||||
$refundAmount = $statRepo->sumDailyRefunds($date);
|
||||
$registerCount = $statRepo->countDailyRegisteredUser($date);
|
||||
|
||||
return [
|
||||
'user_count' => $this->countUsers(),
|
||||
'order_count' => $this->countOrders(),
|
||||
'sale_amount' => $this->sumSales(),
|
||||
'sale_count' => $saleCount,
|
||||
'sale_amount' => $saleAmount,
|
||||
'refund_amount' => $refundAmount,
|
||||
'register_count' => $registerCount,
|
||||
];
|
||||
}
|
||||
|
||||
protected function countUsers()
|
||||
{
|
||||
return (int)UserModel::count([
|
||||
'conditions' => 'create_time > :time:',
|
||||
'bind' => ['time' => strtotime('today')],
|
||||
]);
|
||||
}
|
||||
|
||||
protected function countOrders()
|
||||
{
|
||||
return (int)OrderModel::count([
|
||||
'conditions' => 'create_time > :time: AND status = :status:',
|
||||
'bind' => [
|
||||
'time' => strtotime('today'),
|
||||
'status' => OrderModel::STATUS_FINISHED,
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
protected function sumSales()
|
||||
{
|
||||
return (float)OrderModel::sum([
|
||||
'column' => 'amount',
|
||||
'conditions' => 'create_time > :time: AND status = :status:',
|
||||
'bind' => [
|
||||
'time' => strtotime('today'),
|
||||
'status' => OrderModel::STATUS_FINISHED,
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ class Controller extends \Phalcon\Mvc\Controller
|
||||
* 特例白名单
|
||||
*/
|
||||
$whitelist = [
|
||||
'controllers' => ['public', 'index', 'vod', 'test', 'xm_course'],
|
||||
'controllers' => ['public', 'index', 'vod', 'upload', 'test', 'xm_course'],
|
||||
'routes' => ['admin.package.guiding'],
|
||||
];
|
||||
|
||||
|
@ -11,7 +11,7 @@ class VodController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Post("/upload/sign", name="admin.vod.upload_sign")
|
||||
* @Get("/upload/sign", name="admin.vod.upload_sign")
|
||||
*/
|
||||
public function uploadSignatureAction()
|
||||
{
|
||||
|
@ -13,11 +13,14 @@
|
||||
<body class="layui-layout-body">
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
<div class="layui-header">
|
||||
<div class="layui-logo">COURSE ADMIN</div>
|
||||
<div class="layui-logo">酷瓜云课堂</div>
|
||||
<div class="kg-side-menu-bar">
|
||||
<a href="javascript:"><i class="layui-icon layui-icon-spread-left"></i></a>
|
||||
</div>
|
||||
<ul class="layui-nav layui-layout-left kg-nav-module">
|
||||
<li class="layui-nav-item">
|
||||
<a href="/admin">首页</a>
|
||||
</li>
|
||||
{% for item in top_menus %}
|
||||
<li data-module="module-{{ item.id }}" class="layui-nav-item">
|
||||
<a href="javascript:">{{ item.title }}</a>
|
||||
|
@ -2,22 +2,28 @@
|
||||
<div class="layui-card-header">今日统计</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row layui-col-space10">
|
||||
<div class="layui-col-md4">
|
||||
<div class="layui-col-md3">
|
||||
<div class="kg-stat-card">
|
||||
<div class="name">用户注册</div>
|
||||
<div class="count">{{ today_stat.user_count }}</div>
|
||||
<div class="count">{{ today_stat.register_count }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md4">
|
||||
<div class="layui-col-md3">
|
||||
<div class="kg-stat-card">
|
||||
<div class="name">成交订单</div>
|
||||
<div class="count">{{ today_stat.order_count }}</div>
|
||||
<div class="count">{{ today_stat.sale_count }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md4">
|
||||
<div class="layui-col-md3">
|
||||
<div class="kg-stat-card">
|
||||
<div class="name">销售金额</div>
|
||||
<div class="count">{{ today_stat.sale_amount }}</div>
|
||||
<div class="count">{{ '¥%0.2f'|format(today_stat.sale_amount) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="kg-stat-card">
|
||||
<div class="name">退款金额</div>
|
||||
<div class="count">{{ '¥%0.2f'|format(today_stat.refund_amount) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -60,10 +60,17 @@
|
||||
}
|
||||
|
||||
.kg-login-wrap {
|
||||
width: 400px;
|
||||
width: 500px;
|
||||
margin: 100px auto;
|
||||
}
|
||||
|
||||
.kg-login-wrap .layui-card-header {
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.kg-login-form {
|
||||
padding: 15px 10px 5px 10px;
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ layui.use(['jquery', 'element'], function () {
|
||||
var getSignature = function () {
|
||||
var result = '';
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
type: 'GET',
|
||||
url: '/admin/vod/upload/sign',
|
||||
async: false,
|
||||
success: function (res) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user