@@ -44,6 +45,9 @@
{% if show_tab_reviews %}
评价{{ course.review_count }}
{% endif %}
+ {% if show_tab_resources %}
+
课件{{ course.resource_count }}
+ {% endif %}
@@ -64,6 +68,10 @@
{% set reviews_url = url({'for':'home.course.reviews','id':course.id}) %}
{% endif %}
+ {% if show_tab_resources %}
+ {% set resources_url = url({'for':'home.course.resources','id':course.id}) %}
+
+ {% endif %}
diff --git a/app/Repos/Course.php b/app/Repos/Course.php
index 538aad47..40000ae0 100644
--- a/app/Repos/Course.php
+++ b/app/Repos/Course.php
@@ -305,6 +305,17 @@ class Course extends Repository
->execute();
}
+ /**
+ * @param int $courseId
+ * @return ResultsetInterface|Resultset|ResourceModel[]
+ */
+ public function findResources($courseId)
+ {
+ return ResourceModel::query()
+ ->where('course_id = :course_id:', ['course_id' => $courseId])
+ ->execute();
+ }
+
/**
* @param int $courseId
* @param int $userId
diff --git a/app/Services/Logic/Chapter/ResourceList.php b/app/Services/Logic/Chapter/ResourceList.php
deleted file mode 100644
index ed21327a..00000000
--- a/app/Services/Logic/Chapter/ResourceList.php
+++ /dev/null
@@ -1,39 +0,0 @@
-checkChapter($id);
-
- $resourceRepo = new ResourceRepo();
-
- $resources = $resourceRepo->findByChapterId($chapter->id);
-
- if ($resources->count() == 0) {
- return [];
- }
-
- $builder = new ResourceListBuilder();
-
- $relations = $resources->toArray();
-
- return $builder->getUploads($relations);
- }
-
-}
diff --git a/app/Services/Logic/Course/ResourceList.php b/app/Services/Logic/Course/ResourceList.php
index 9a712384..abead04c 100644
--- a/app/Services/Logic/Course/ResourceList.php
+++ b/app/Services/Logic/Course/ResourceList.php
@@ -9,7 +9,6 @@ namespace App\Services\Logic\Course;
use App\Builders\ResourceList as ResourceListBuilder;
use App\Repos\Course as CourseRepo;
-use App\Repos\Resource as ResourceRepo;
use App\Services\Logic\CourseTrait;
use App\Services\Logic\Service as LogicService;
@@ -28,26 +27,7 @@ class ResourceList extends LogicService
$courseRepo = new CourseRepo();
- $lessons = $courseRepo->findLessons($course->id);
-
- if ($lessons->count() == 0) {
- return [];
- }
-
- $lessonIds = [];
-
- /**
- * 过滤掉未发布和已删除的课时
- */
- foreach ($lessons as $lesson) {
- if ($lesson->published == 1 && $lesson->deleted == 0) {
- $lessonIds[] = $lesson->id;
- }
- }
-
- $resourceRepo = new ResourceRepo();
-
- $resources = $resourceRepo->findByCourseId($course->id);
+ $resources = $courseRepo->findResources($course->id);
if ($resources->count() == 0) {
return [];
@@ -57,12 +37,6 @@ class ResourceList extends LogicService
$relations = $resources->toArray();
- foreach ($relations as $key => $relation) {
- if (!in_array($relation['chapter_id'], $lessonIds)) {
- unset($relations[$key]);
- }
- }
-
$uploads = $builder->getUploads($relations);
foreach ($uploads as $key => $upload) {
diff --git a/public/static/admin/js/chapter.resource.js b/public/static/admin/js/course.resource.js
similarity index 97%
rename from public/static/admin/js/chapter.resource.js
rename to public/static/admin/js/course.resource.js
index e7300692..e8be73e8 100644
--- a/public/static/admin/js/chapter.resource.js
+++ b/public/static/admin/js/course.resource.js
@@ -8,7 +8,7 @@ layui.use(['jquery', 'element', 'layer'], function () {
var $resFile = $('input[name=res_file]');
var $uploadBlock = $('#res-upload-block');
var $progressBlock = $('#res-progress-block');
- var chapterId = $('input[name=chapter_id]').val();
+ var courseId = $('input[name=course_id]').val();
var myConfig = {
bucket: $('input[name=bucket]').val(),
@@ -70,7 +70,7 @@ layui.use(['jquery', 'element', 'layer'], function () {
path: keyName,
md5: data.ETag ? data.ETag.replace(/"/g, '') : ''
},
- chapter_id: chapterId,
+ course_id: courseId,
}, function () {
$uploadBlock.removeClass('layui-hide');
$progressBlock.addClass('layui-hide');
diff --git a/public/static/home/js/chapter.show.js b/public/static/home/js/chapter.show.js
index 39d33773..d7d76e29 100644
--- a/public/static/home/js/chapter.show.js
+++ b/public/static/home/js/chapter.show.js
@@ -34,30 +34,6 @@ layui.use(['jquery', 'helper'], function () {
});
});
- $('.icon-help').on('click', function () {
- var url = $(this).parent().data('url');
- helper.checkLogin(function () {
- layer.open({
- type: 2,
- title: '课程咨询',
- content: [url, 'no'],
- area: ['640px', '300px']
- });
- });
- });
-
- $('.icon-download').on('click', function () {
- var url = $(this).parent().data('url');
- helper.checkLogin(function () {
- layer.open({
- type: 2,
- title: '资料下载',
- content: [url, 'no'],
- area: ['640px', '300px']
- });
- });
- });
-
$('.icon-reply').on('click', function () {
$('html').animate({
scrollTop: $('#comment-anchor').offset().top
diff --git a/public/static/home/js/course.show.js b/public/static/home/js/course.show.js
index 0abfb5a0..ae7ae753 100644
--- a/public/static/home/js/course.show.js
+++ b/public/static/home/js/course.show.js
@@ -135,6 +135,11 @@ layui.use(['jquery', 'layer', 'helper'], function () {
helper.ajaxLoadHtml($tabReviews.data('url'), $tabReviews.attr('id'));
}
+ if ($('#tab-resources').length > 0) {
+ var $tabResources = $('#tab-resources');
+ helper.ajaxLoadHtml($tabResources.data('url'), $tabResources.attr('id'));
+ }
+
if ($('#sidebar-topics').length > 0) {
var $sdTopics = $('#sidebar-topics');
helper.ajaxLoadHtml($sdTopics.data('url'), $sdTopics.attr('id'));