mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-07-18 06:06:13 +08:00
1.优化后台数据统计日期问题
2.优化内容图片放大查看
This commit is contained in:
parent
c3c443f164
commit
73d01d62dc
@ -23,11 +23,11 @@ class Stat extends Service
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
[
|
[
|
||||||
'title' => "{$year}-{$month}",
|
'title' => sprintf('%02d-%02d', $year, $month),
|
||||||
'sales' => $this->handleHotSales($type, $year, $month),
|
'sales' => $this->handleHotSales($type, $year, $month),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'title' => "{$prev['year']}-{$prev['month']}",
|
'title' => sprintf('%02d-%02d', $prev['year'], $prev['month']),
|
||||||
'sales' => $this->handleHotSales($type, $prev['year'], $prev['month']),
|
'sales' => $this->handleHotSales($type, $prev['year'], $prev['month']),
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
@ -42,12 +42,13 @@ class Stat extends Service
|
|||||||
$currSales = $this->handleSales($year, $month);
|
$currSales = $this->handleSales($year, $month);
|
||||||
$prevSales = $this->handleSales($prev['year'], $prev['month']);
|
$prevSales = $this->handleSales($prev['year'], $prev['month']);
|
||||||
|
|
||||||
|
$currMonth = sprintf('%02d-%02d', $year, $month);
|
||||||
|
$prevMonth = sprintf('%02d-%02d', $prev['year'], $prev['month']);
|
||||||
|
|
||||||
$items = [];
|
$items = [];
|
||||||
|
|
||||||
foreach (range(1, 31) as $day) {
|
foreach (range(1, 31) as $day) {
|
||||||
$date = sprintf('%02d', $day);
|
$date = sprintf('%02d', $day);
|
||||||
$prevMonth = "{$prev['year']}-{$prev['month']}";
|
|
||||||
$currMonth = "{$year}-{$month}";
|
|
||||||
$items[] = [
|
$items[] = [
|
||||||
'date' => $date,
|
'date' => $date,
|
||||||
$currMonth => $currSales[$date] ?? 0,
|
$currMonth => $currSales[$date] ?? 0,
|
||||||
@ -67,12 +68,13 @@ class Stat extends Service
|
|||||||
$currRefunds = $this->handleRefunds($year, $month);
|
$currRefunds = $this->handleRefunds($year, $month);
|
||||||
$prevRefunds = $this->handleRefunds($prev['year'], $prev['month']);
|
$prevRefunds = $this->handleRefunds($prev['year'], $prev['month']);
|
||||||
|
|
||||||
|
$currMonth = sprintf('%02d-%02d', $year, $month);
|
||||||
|
$prevMonth = sprintf('%02d-%02d', $prev['year'], $prev['month']);
|
||||||
|
|
||||||
$items = [];
|
$items = [];
|
||||||
|
|
||||||
foreach (range(1, 31) as $day) {
|
foreach (range(1, 31) as $day) {
|
||||||
$date = sprintf('%02d', $day);
|
$date = sprintf('%02d', $day);
|
||||||
$prevMonth = "{$prev['year']}-{$prev['month']}";
|
|
||||||
$currMonth = "{$year}-{$month}";
|
|
||||||
$items[] = [
|
$items[] = [
|
||||||
'date' => $date,
|
'date' => $date,
|
||||||
$currMonth => $currRefunds[$date] ?? 0,
|
$currMonth => $currRefunds[$date] ?? 0,
|
||||||
@ -92,12 +94,13 @@ class Stat extends Service
|
|||||||
$currUsers = $this->handleRegisteredUsers($year, $month);
|
$currUsers = $this->handleRegisteredUsers($year, $month);
|
||||||
$prevUsers = $this->handleRegisteredUsers($prev['year'], $prev['month']);
|
$prevUsers = $this->handleRegisteredUsers($prev['year'], $prev['month']);
|
||||||
|
|
||||||
|
$currMonth = sprintf('%02d-%02d', $year, $month);
|
||||||
|
$prevMonth = sprintf('%02d-%02d', $prev['year'], $prev['month']);
|
||||||
|
|
||||||
$items = [];
|
$items = [];
|
||||||
|
|
||||||
foreach (range(1, 31) as $day) {
|
foreach (range(1, 31) as $day) {
|
||||||
$date = sprintf('%02d', $day);
|
$date = sprintf('%02d', $day);
|
||||||
$prevMonth = "{$prev['year']}-{$prev['month']}";
|
|
||||||
$currMonth = "{$year}-{$month}";
|
|
||||||
$items[] = [
|
$items[] = [
|
||||||
'date' => $date,
|
'date' => $date,
|
||||||
$currMonth => $currUsers[$date] ?? 0,
|
$currMonth => $currUsers[$date] ?? 0,
|
||||||
@ -117,12 +120,13 @@ class Stat extends Service
|
|||||||
$currUsers = $this->handleOnlineUsers($year, $month);
|
$currUsers = $this->handleOnlineUsers($year, $month);
|
||||||
$prevUsers = $this->handleOnlineUsers($prev['year'], $prev['month']);
|
$prevUsers = $this->handleOnlineUsers($prev['year'], $prev['month']);
|
||||||
|
|
||||||
|
$currMonth = sprintf('%02d-%02d', $year, $month);
|
||||||
|
$prevMonth = sprintf('%02d-%02d', $prev['year'], $prev['month']);
|
||||||
|
|
||||||
$items = [];
|
$items = [];
|
||||||
|
|
||||||
foreach (range(1, 31) as $day) {
|
foreach (range(1, 31) as $day) {
|
||||||
$date = sprintf('%02d', $day);
|
$date = sprintf('%02d', $day);
|
||||||
$prevMonth = "{$prev['year']}-{$prev['month']}";
|
|
||||||
$currMonth = "{$year}-{$month}";
|
|
||||||
$items[] = [
|
$items[] = [
|
||||||
'date' => $date,
|
'date' => $date,
|
||||||
$currMonth => $currUsers[$date] ?? 0,
|
$currMonth => $currUsers[$date] ?? 0,
|
||||||
@ -154,7 +158,10 @@ class Stat extends Service
|
|||||||
|
|
||||||
protected function isCurrMonth($year, $month)
|
protected function isCurrMonth($year, $month)
|
||||||
{
|
{
|
||||||
return date('Y-m') == "{$year}-{$month}";
|
$yearOk = date('Y') == $year;
|
||||||
|
$monthOk = date('m') == $month;
|
||||||
|
|
||||||
|
return $yearOk && $monthOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getLifetime()
|
protected function getLifetime()
|
||||||
|
@ -34,8 +34,8 @@
|
|||||||
<th>用户IP</th>
|
<th>用户IP</th>
|
||||||
<th>请求路由</th>
|
<th>请求路由</th>
|
||||||
<th>请求路径</th>
|
<th>请求路径</th>
|
||||||
<th>请求时间</th>
|
<th>创建时间</th>
|
||||||
<th>请求内容</th>
|
<th>操作</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -91,4 +91,4 @@
|
|||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -13,9 +13,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">用户名称</label>
|
<label class="layui-form-label">用户IP</label>
|
||||||
<div class="layui-input-block">
|
<div class="layui-input-block">
|
||||||
<input class="layui-input" type="text" name="user_name" placeholder="用户名称精确匹配">
|
<input class="layui-input" type="text" name="user_ip" placeholder="用户IP精确匹配">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
@ -31,7 +31,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">请求时间</label>
|
<label class="layui-form-label">创建时间</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
<input class="layui-input time-range" type="text" name="start_time" autocomplete="off">
|
<input class="layui-input time-range" type="text" name="start_time" autocomplete="off">
|
||||||
</div>
|
</div>
|
||||||
@ -70,4 +70,4 @@
|
|||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -44,12 +44,7 @@ class Trade extends Listener
|
|||||||
|
|
||||||
$task = new TaskModel();
|
$task = new TaskModel();
|
||||||
|
|
||||||
$itemInfo = [
|
|
||||||
'order' => ['id' => $order->id]
|
|
||||||
];
|
|
||||||
|
|
||||||
$task->item_id = $order->id;
|
$task->item_id = $order->id;
|
||||||
$task->item_info = $itemInfo;
|
|
||||||
$task->item_type = TaskModel::TYPE_DELIVER;
|
$task->item_type = TaskModel::TYPE_DELIVER;
|
||||||
$task->create();
|
$task->create();
|
||||||
|
|
||||||
@ -69,4 +64,4 @@ class Trade extends Listener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -84,18 +84,8 @@ class GiftRedeem extends LogicService
|
|||||||
|
|
||||||
$task = new TaskModel();
|
$task = new TaskModel();
|
||||||
|
|
||||||
$itemInfo = [
|
|
||||||
'point_gift_redeem' => [
|
|
||||||
'id' => $redeem->id,
|
|
||||||
'user_id' => $redeem->user_id,
|
|
||||||
'gift_id' => $redeem->gift_id,
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
$task->item_id = $redeem->id;
|
$task->item_id = $redeem->id;
|
||||||
$task->item_type = TaskModel::TYPE_POINT_GIFT_DELIVER;
|
$task->item_type = TaskModel::TYPE_POINT_GIFT_DELIVER;
|
||||||
$task->item_info = $itemInfo;
|
|
||||||
|
|
||||||
$result = $task->create();
|
$result = $task->create();
|
||||||
|
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
|
@ -183,7 +183,7 @@ class Chapter extends Validator
|
|||||||
public function checkPublishStatus($status)
|
public function checkPublishStatus($status)
|
||||||
{
|
{
|
||||||
if (!in_array($status, [0, 1])) {
|
if (!in_array($status, [0, 1])) {
|
||||||
throw new BadRequestException('course.invalid_publish_status');
|
throw new BadRequestException('chapter.invalid_publish_status');
|
||||||
}
|
}
|
||||||
|
|
||||||
return $status;
|
return $status;
|
||||||
|
@ -78,9 +78,33 @@
|
|||||||
height: 100px;
|
height: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.img-viewer {
|
||||||
|
display: none;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
z-index: 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-viewer img {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
max-width: 90%;
|
||||||
|
max-height: 90%;
|
||||||
|
background-color: white;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
transition: transform 0.3s ease-in-out;
|
||||||
|
padding: 5px;
|
||||||
|
cursor: zoom-out;
|
||||||
|
}
|
||||||
|
|
||||||
.kg-zoom img {
|
.kg-zoom img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
cursor: pointer;
|
cursor: zoom-in;
|
||||||
}
|
}
|
||||||
|
|
||||||
.breadcrumb {
|
.breadcrumb {
|
||||||
@ -2245,4 +2269,4 @@
|
|||||||
|
|
||||||
.gift-details {
|
.gift-details {
|
||||||
min-height: 450px;
|
min-height: 450px;
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
.ke-content img {
|
.ke-content img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
cursor: pointer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.ke-content a:hover {
|
.ke-content a:hover {
|
||||||
@ -244,4 +243,4 @@
|
|||||||
|
|
||||||
.ke-content pre:hover > span.kg-copy {
|
.ke-content pre:hover > span.kg-copy {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
@ -129,20 +129,15 @@ layui.use(['jquery', 'form', 'element', 'layer', 'helper'], function () {
|
|||||||
* 内容图片放大
|
* 内容图片放大
|
||||||
*/
|
*/
|
||||||
$('body').on('click', '.kg-zoom img', function () {
|
$('body').on('click', '.kg-zoom img', function () {
|
||||||
var width = $(window).width() * 0.8 + 'px';
|
var src = $(this).attr('src').replace('!content_800', '');
|
||||||
var height = $(window).height() * 0.8 + 'px';
|
if ($('#img-viewer').length === 0) {
|
||||||
var src = $(this).attr('src');
|
$('body').append('<div class="img-viewer" id="img-viewer"></div>');
|
||||||
var style = 'max-width:' + width + ';max-height:' + height;
|
}
|
||||||
var content = '<img alt="preview" src="' + src + '" style="' + style + '">';
|
$('#img-viewer').append('<img alt="preview" src="' + src + '">').fadeIn();
|
||||||
layer.open({
|
});
|
||||||
type: 1,
|
|
||||||
title: false,
|
$('body').on('click', '#img-viewer', function () {
|
||||||
closeBtn: 0,
|
$(this).empty().fadeOut();
|
||||||
area: ['auto'],
|
|
||||||
skin: 'layui-layer-nobg',
|
|
||||||
shadeClose: true,
|
|
||||||
content: content,
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -195,4 +190,4 @@ layui.use(['jquery', 'form', 'element', 'layer', 'helper'], function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user