mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-06-22 11:41:27 +08:00
增加发送请求前检查是否登录
This commit is contained in:
parent
5cbb11141b
commit
cd8e84b574
@ -57,7 +57,6 @@ class SyncChapterCounterTask extends Task
|
|||||||
if ($allowRecount) {
|
if ($allowRecount) {
|
||||||
|
|
||||||
$chapter->user_count = $chapterRepo->countUsers($chapter->id);
|
$chapter->user_count = $chapterRepo->countUsers($chapter->id);
|
||||||
$chapter->lesson_count = $chapterRepo->countLessons($chapter->id);
|
|
||||||
$chapter->comment_count = $chapterRepo->countComments($chapter->id);
|
$chapter->comment_count = $chapterRepo->countComments($chapter->id);
|
||||||
$chapter->like_count = $chapterRepo->countLikes($chapter->id);
|
$chapter->like_count = $chapterRepo->countLikes($chapter->id);
|
||||||
$chapter->update();
|
$chapter->update();
|
||||||
@ -72,7 +71,6 @@ class SyncChapterCounterTask extends Task
|
|||||||
if ($counter) {
|
if ($counter) {
|
||||||
|
|
||||||
$chapter->user_count = $counter['user_count'];
|
$chapter->user_count = $counter['user_count'];
|
||||||
$chapter->lesson_count = $counter['lesson_count'];
|
|
||||||
$chapter->comment_count = $counter['comment_count'];
|
$chapter->comment_count = $counter['comment_count'];
|
||||||
$chapter->like_count = $counter['like_count'];
|
$chapter->like_count = $counter['like_count'];
|
||||||
$chapter->update();
|
$chapter->update();
|
||||||
@ -94,7 +92,7 @@ class SyncChapterCounterTask extends Task
|
|||||||
|
|
||||||
protected function allowRecount()
|
protected function allowRecount()
|
||||||
{
|
{
|
||||||
return date('H') % 2 == 0;
|
return date('H') % 3 == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -83,7 +83,7 @@ class SyncCommentCounterTask extends Task
|
|||||||
|
|
||||||
protected function allowRecount()
|
protected function allowRecount()
|
||||||
{
|
{
|
||||||
return date('H') == 5;
|
return date('H') % 4 == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ class SyncConsultCounterTask extends Task
|
|||||||
|
|
||||||
protected function allowRecount()
|
protected function allowRecount()
|
||||||
{
|
{
|
||||||
return date('H') == 1;
|
return date('H') % 4 == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -71,12 +71,15 @@ class SyncCourseCounterTask extends Task
|
|||||||
$counter = $counterCache->get($course->id);
|
$counter = $counterCache->get($course->id);
|
||||||
|
|
||||||
if ($counter) {
|
if ($counter) {
|
||||||
|
|
||||||
$course->user_count = $counter['user_count'];
|
$course->user_count = $counter['user_count'];
|
||||||
$course->comment_count = $counter['comment_count'];
|
$course->comment_count = $counter['comment_count'];
|
||||||
$course->consult_count = $counter['consult_count'];
|
$course->consult_count = $counter['consult_count'];
|
||||||
$course->review_count = $counter['review_count'];
|
$course->review_count = $counter['review_count'];
|
||||||
$course->favorite_count = $counter['favorite_count'];
|
$course->favorite_count = $counter['favorite_count'];
|
||||||
$course->update();
|
$course->update();
|
||||||
|
|
||||||
|
$courseCache->rebuild($course->id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -93,7 +96,7 @@ class SyncCourseCounterTask extends Task
|
|||||||
|
|
||||||
protected function allowRecount()
|
protected function allowRecount()
|
||||||
{
|
{
|
||||||
return date('H') % 2 == 0;
|
return date('H') % 3 == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ class SyncReviewCounterTask extends Task
|
|||||||
|
|
||||||
protected function allowRecount()
|
protected function allowRecount()
|
||||||
{
|
{
|
||||||
return date('H') == 2;
|
return date('H') % 4 == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ class PublicController extends \Phalcon\Mvc\Controller
|
|||||||
{
|
{
|
||||||
$text = $this->request->getQuery('text');
|
$text = $this->request->getQuery('text');
|
||||||
$level = $this->request->getQuery('level', 'int', 0);
|
$level = $this->request->getQuery('level', 'int', 0);
|
||||||
$size = $this->request->getQuery('size', 'int', 3);
|
$size = $this->request->getQuery('size', 'int', 5);
|
||||||
|
|
||||||
$url = urldecode($text);
|
$url = urldecode($text);
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<div class="footer">
|
<div class="footer">
|
||||||
<span class="time">{{ date('Y-m-d H:i',item.create_time) }}</span>
|
<span class="time">{{ date('Y-m-d H:i',item.create_time) }}</span>
|
||||||
<span class="like">
|
<span class="like">
|
||||||
<i class="layui-icon layui-icon-praise like-icon" data-url="{{ like_url }}"></i>
|
<i class="layui-icon layui-icon-praise icon-praise" data-url="{{ like_url }}"></i>
|
||||||
<em class="like-count">{{ item.like_count }}</em>
|
<em class="like-count">{{ item.like_count }}</em>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -30,14 +30,24 @@
|
|||||||
难度 <span>{{ level_info(course.level) }}</span>
|
难度 <span>{{ level_info(course.level) }}</span>
|
||||||
课时 <span>{{ course.lesson_count }}</span>
|
课时 <span>{{ course.lesson_count }}</span>
|
||||||
学员 <span>{{ course.user_count }}</span>
|
学员 <span>{{ course.user_count }}</span>
|
||||||
收藏 <span>{{ course.favorite_count }}</span>
|
|
||||||
评分 <span>{{ course.rating }}</span>
|
评分 <span>{{ course.rating }}</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
{% set favorite_url = url({'for':'web.course.favorite','id':course.id}) %}
|
||||||
|
{% set course_url = url({'for':'web.course.show','id':course.id}) %}
|
||||||
|
{% set qrcode_url = url({'for':'web.qrcode_img'},{'text':'http://baidu.com','size':5}) %}
|
||||||
|
|
||||||
|
<div class="layui-hide">
|
||||||
|
<input type="hidden" name="course.title" value="{{ course.title }}">
|
||||||
|
<input type="hidden" name="course.cover" value="{{ course.cover }}">
|
||||||
|
<input type="hidden" name="course.url" value="{{ course_url }}">
|
||||||
|
<input type="hidden" name="course.qrcode" value="{{ qrcode_url }}">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="share">
|
<div class="share">
|
||||||
<a class="favorite" href="javascript:"><i class="layui-icon layui-icon-heart"></i></a>
|
<a href="javascript:" title="收藏" data-url="{{ favorite_url }}"><i class="layui-icon layui-icon-heart icon-heart"></i></a>
|
||||||
<a class="mobile" href="javascript:"><i class="layui-icon layui-icon-cellphone"></i></a>
|
<a href="javascript:" title="分享到微信" data-url="{{ qrcode_url }}"><i class="layui-icon layui-icon-login-wechat icon-wechat"></i></a>
|
||||||
<a class="weibo" href="javascript:"><i class="layui-icon layui-icon-login-weibo"></i></a>
|
<a href="javascript:" title="分享到QQ空间"><i class="layui-icon layui-icon-login-qq icon-qq"></i></a>
|
||||||
<a class="wechat" href="javascript:"><i class="layui-icon layui-icon-login-wechat"></i></a>
|
<a href="javascript:" title="分享到微博"><i class="layui-icon layui-icon-login-weibo icon-weibo"></i></a>
|
||||||
<a class="qq" href="javascript:"><i class="layui-icon layui-icon-login-qq"></i></a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -23,7 +23,7 @@
|
|||||||
<div class="footer">
|
<div class="footer">
|
||||||
<span class="time">{{ date('Y-m-d H:i',item.create_time) }}</span>
|
<span class="time">{{ date('Y-m-d H:i',item.create_time) }}</span>
|
||||||
<span class="like">
|
<span class="like">
|
||||||
<i class="layui-icon layui-icon-praise like-icon" title="点赞" data-url="{{ like_url }}"></i>
|
<i class="layui-icon layui-icon-praise icon-praise" title="点赞" data-url="{{ like_url }}"></i>
|
||||||
<em class="like-count">{{ item.like_count }}</em>
|
<em class="like-count">{{ item.like_count }}</em>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -25,7 +25,16 @@
|
|||||||
{% set show_tab_reviews = course.review_count > 0 ? 1 : 0 %}
|
{% set show_tab_reviews = course.review_count > 0 ? 1 : 0 %}
|
||||||
|
|
||||||
<div class="layout-content">
|
<div class="layout-content">
|
||||||
<div class="wrap">
|
<div class="course-tab-wrap wrap">
|
||||||
|
{% if show_tab_packages == 1 %}
|
||||||
|
<span class="tab-count package-count">{{ course.package_count }}</span>
|
||||||
|
{% endif %}
|
||||||
|
{% if show_tab_consults == 1 %}
|
||||||
|
<span class="tab-count consult-count">{{ course.consult_count }}</span>
|
||||||
|
{% endif %}
|
||||||
|
{% if show_tab_reviews == 1 %}
|
||||||
|
<span class="tab-count review-count">{{ course.review_count }}</span>
|
||||||
|
{% endif %}
|
||||||
<div class="layui-tab layui-tab-brief course-tab">
|
<div class="layui-tab layui-tab-brief course-tab">
|
||||||
<ul class="layui-tab-title">
|
<ul class="layui-tab-title">
|
||||||
<li class="layui-this">详情</li>
|
<li class="layui-this">详情</li>
|
||||||
@ -92,6 +101,7 @@
|
|||||||
|
|
||||||
{% block include_js %}
|
{% block include_js %}
|
||||||
|
|
||||||
|
{{ js_include('web/js/share.js') }}
|
||||||
{{ js_include('web/js/course.show.js') }}
|
{{ js_include('web/js/course.show.js') }}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -1,8 +1,9 @@
|
|||||||
layui.define(['jquery', 'element'], function (exports) {
|
layui.define(['jquery', 'element', 'layer'], function (exports) {
|
||||||
|
|
||||||
var MOD_NAME = 'helper';
|
var MOD_NAME = 'helper';
|
||||||
var $ = layui.jquery;
|
var $ = layui.jquery;
|
||||||
var element = layui.element;
|
var element = layui.element;
|
||||||
|
var layer = layui.layer;
|
||||||
|
|
||||||
var helper = {};
|
var helper = {};
|
||||||
|
|
||||||
@ -16,6 +17,14 @@ layui.define(['jquery', 'element'], function (exports) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
helper.checkLogin = function () {
|
||||||
|
if (window.koogua.user.id === '0') {
|
||||||
|
layer.msg('继续操作前请登录或者注册', {icon: 2, anim: 6});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
helper.getRequestId = function () {
|
helper.getRequestId = function () {
|
||||||
var id = Date.now().toString(36);
|
var id = Date.now().toString(36);
|
||||||
id += Math.random().toString(36).substr(3);
|
id += Math.random().toString(36).substr(3);
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
::-webkit-scrollbar-button {
|
|
||||||
height: 0;
|
|
||||||
width: 0;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.full {
|
.full {
|
||||||
background-color: #f2f2f2;
|
background-color: #f2f2f2;
|
||||||
}
|
}
|
||||||
@ -44,6 +38,12 @@
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.qrcode img {
|
||||||
|
width: 160px;
|
||||||
|
height: 160px;
|
||||||
|
border: 3px dashed #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
.breadcrumb {
|
.breadcrumb {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
@ -468,6 +468,29 @@ body {
|
|||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.course-tab-wrap {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-tab-wrap .tab-count {
|
||||||
|
position: absolute;
|
||||||
|
top: 25px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-tab-wrap .package-count {
|
||||||
|
left: 275px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-tab-wrap .consult-count {
|
||||||
|
left: 370px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-tab-wrap .review-count {
|
||||||
|
left: 465px;
|
||||||
|
}
|
||||||
|
|
||||||
.course-tab {
|
.course-tab {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
@ -613,7 +636,7 @@ body {
|
|||||||
|
|
||||||
.package-course-card .title {
|
.package-course-card .title {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
padding: 0 3px;
|
padding: 0 5px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
white-space: normal;
|
white-space: normal;
|
||||||
}
|
}
|
||||||
@ -684,16 +707,16 @@ body {
|
|||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.review-card .like-icon {
|
.like .icon-praise {
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.like .active, .like .like-icon:hover {
|
.like .active, .like .icon-praise:hover {
|
||||||
color: green;
|
color: green;
|
||||||
}
|
}
|
||||||
|
|
||||||
.review-card .like-count {
|
.like .like-count {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -788,15 +811,6 @@ body {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-chapter-list::-webkit-scrollbar {
|
|
||||||
width: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar-chapter-list::-webkit-scrollbar-thumb {
|
|
||||||
border-radius: 10px;
|
|
||||||
background: rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar-chapter-list {
|
.sidebar-chapter-list {
|
||||||
height: 405px;
|
height: 405px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
@ -900,15 +914,6 @@ body {
|
|||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chat-msg-list::-webkit-scrollbar {
|
|
||||||
width: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chat-msg-list::-webkit-scrollbar-thumb {
|
|
||||||
border-radius: 10px;
|
|
||||||
background: rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.chat-msg-list .chat, .chat-msg-list .chat-sys {
|
.chat-msg-list .chat, .chat-msg-list .chat-sys {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
line-height: 25px;
|
line-height: 25px;
|
||||||
|
@ -4,6 +4,13 @@ layui.use(['jquery', 'layer', 'helper'], function () {
|
|||||||
var layer = layui.layer;
|
var layer = layui.layer;
|
||||||
var helper = layui.helper;
|
var helper = layui.helper;
|
||||||
|
|
||||||
|
var course = {
|
||||||
|
title: $('input[name="course.title"]').val(),
|
||||||
|
cover: $('input[name="course.cover"]').val(),
|
||||||
|
url: $('input[name="course.url"]').val(),
|
||||||
|
qrcode: $('input[name="course.qrcode"]').val()
|
||||||
|
};
|
||||||
|
|
||||||
$('.rating-btn').on('click', function () {
|
$('.rating-btn').on('click', function () {
|
||||||
var url = $(this).data('url');
|
var url = $(this).data('url');
|
||||||
layer.open({
|
layer.open({
|
||||||
@ -14,14 +21,60 @@ layui.use(['jquery', 'layer', 'helper'], function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$('body').on('click', '.like-icon', function () {
|
$('.icon-heart').on('click', function () {
|
||||||
|
var $this = $(this);
|
||||||
|
$.ajax({
|
||||||
|
type: 'POST',
|
||||||
|
url: $this.parent().data('url'),
|
||||||
|
beforeSend: function () {
|
||||||
|
return helper.checkLogin();
|
||||||
|
},
|
||||||
|
success: function () {
|
||||||
|
if ($this.hasClass('active')) {
|
||||||
|
$this.removeClass('active');
|
||||||
|
} else {
|
||||||
|
$this.addClass('active');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (xhr) {
|
||||||
|
var res = JSON.parse(xhr.responseText);
|
||||||
|
layer.msg(res.msg, {icon: 2});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.icon-wechat').on('click', function () {
|
||||||
|
var content = '<div class="qrcode"><img src="' + course.qrcode + '" alt="分享到微信"></div>';
|
||||||
|
layer.open({
|
||||||
|
type: 1,
|
||||||
|
title: false,
|
||||||
|
closeBtn: 0,
|
||||||
|
shadeClose: true,
|
||||||
|
content: content
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.icon-qq').on('click', function () {
|
||||||
|
var title = '推荐一门好课:' + course.title + ',快来和我一起学习吧!';
|
||||||
|
Share.qq(title, null, course.cover);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.icon-weibo').on('click', function () {
|
||||||
|
var title = '推荐一门好课:' + course.title + ',快来和我一起学习吧!';
|
||||||
|
Share.weibo(title, null, course.cover);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('body').on('click', '.icon-praise', function () {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
var $likeCount = $this.next();
|
var $likeCount = $this.next();
|
||||||
var likeCount = parseInt($likeCount.text());
|
var likeCount = parseInt($likeCount.text());
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: $this.data('url'),
|
url: $this.data('url'),
|
||||||
success: function (res) {
|
beforeSend: function () {
|
||||||
|
return helper.checkLogin();
|
||||||
|
},
|
||||||
|
success: function () {
|
||||||
if ($this.hasClass('active')) {
|
if ($this.hasClass('active')) {
|
||||||
$this.removeClass('active');
|
$this.removeClass('active');
|
||||||
$likeCount.text(likeCount - 1);
|
$likeCount.text(likeCount - 1);
|
||||||
|
17
public/static/web/js/share.js
Normal file
17
public/static/web/js/share.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
var Share = {};
|
||||||
|
|
||||||
|
Share.qq = function (title, url, pic) {
|
||||||
|
var shareUrl = 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?';
|
||||||
|
shareUrl += 'title=' + encodeURIComponent(title || document.title);
|
||||||
|
shareUrl += '&url=' + encodeURIComponent(url || document.location);
|
||||||
|
shareUrl += '&pics=' + pic;
|
||||||
|
window.open(shareUrl, '_blank');
|
||||||
|
};
|
||||||
|
|
||||||
|
Share.weibo = function (title, url, pic) {
|
||||||
|
var shareUrl = 'http://v.t.sina.com.cn/share/share.php?';
|
||||||
|
shareUrl += 'title=' + encodeURIComponent(title || document.title);
|
||||||
|
shareUrl += '&url=' + encodeURIComponent(url || document.location);
|
||||||
|
shareUrl += '&pic=' + encodeURIComponent(pic || '');
|
||||||
|
window.open(shareUrl, '_blank');
|
||||||
|
};
|
@ -17,9 +17,6 @@ layui.use(['jquery', 'form', 'slider', 'layer', 'helper'], function () {
|
|||||||
var danmuListUrl = $('input[name="chapter.danmu_url"]').val();
|
var danmuListUrl = $('input[name="chapter.danmu_url"]').val();
|
||||||
var playUrls = JSON.parse($('input[name="chapter.play_urls"]').val());
|
var playUrls = JSON.parse($('input[name="chapter.play_urls"]').val());
|
||||||
var $danmuText = $('input[name="danmu.text"]');
|
var $danmuText = $('input[name="danmu.text"]');
|
||||||
var $danmuColor = $('input[name="danmu.color"]');
|
|
||||||
var $danmuSize = $('input[name="danmu.size"]');
|
|
||||||
var $danmuPosition = $('input[name="danmu.position"]');
|
|
||||||
|
|
||||||
var playerOptions = {
|
var playerOptions = {
|
||||||
autoplay: false,
|
autoplay: false,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user