From 23e19cd27967e9a39613d0c3d024c77196b99117 Mon Sep 17 00:00:00 2001 From: xiaochong0302 Date: Sat, 18 Jul 2020 22:53:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E5=88=86=E4=BA=AB=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Builders/ChapterTreeList.php | 3 +- app/Caches/{ImChatGroup.php => ImGroup.php} | 0 app/Http/Web/Controllers/CourseController.php | 57 ++++++++++----- app/Http/Web/Controllers/ImController.php | 54 +++++++------- .../Web/Controllers/TeacherController.php | 2 +- app/Http/Web/Controllers/TopicController.php | 5 +- app/Http/Web/Controllers/UserController.php | 3 + app/Http/Web/Services/Im.php | 20 ++--- app/Http/Web/Services/ImFriendTrait.php | 2 +- app/Http/Web/Services/ImGroupTrait.php | 10 +-- app/Http/Web/Views/chapter/live.volt | 1 + app/Http/Web/Views/chapter/read.volt | 1 + app/Http/Web/Views/chapter/vod.volt | 1 + ...{show_chapters.volt => ajax_chapters.volt} | 6 +- ...{show_consults.volt => ajax_consults.volt} | 2 +- ...{show_packages.volt => ajax_packages.volt} | 0 .../{list_pager.volt => ajax_pager.volt} | 0 ...recommended.volt => ajax_recommended.volt} | 0 .../{show_related.volt => ajax_related.volt} | 0 .../{show_reviews.volt => ajax_reviews.volt} | 4 +- ...{show_teachers.volt => ajax_teachers.volt} | 0 .../{show_topics.volt => ajax_topics.volt} | 0 app/Http/Web/Views/course/show.volt | 23 ++++-- app/Http/Web/Views/course/show_meta.volt | 2 +- app/Http/Web/Views/course/show_order.volt | 21 ++---- .../Views/im/{chat_log.volt => chatlog.volt} | 0 app/Http/Web/Views/im/find.volt | 12 ++- app/Http/Web/Views/im/find_users.volt | 2 +- .../Views/im/{msg_box.volt => msgbox.volt} | 0 app/Http/Web/Views/im/sys_messages.volt | 39 +++++++--- .../{list_pager.volt => ajax_pager.volt} | 0 .../topic/{courses.volt => ajax_courses.volt} | 0 .../user/{courses.volt => ajax_courses.volt} | 0 .../{favorites.volt => ajax_favorites.volt} | 0 .../user/{friends.volt => ajax_friends.volt} | 2 +- app/Library/Helper.php | 23 ++++++ app/Library/Paginator/Adapter/XunSearch.php | 7 +- app/Models/Consult.php | 7 ++ app/Models/Review.php | 7 ++ app/Providers/Volt.php | 4 + app/Repos/Category.php | 7 +- app/Repos/Chapter.php | 12 +-- app/Repos/Comment.php | 9 ++- app/Repos/Consult.php | 10 ++- app/Repos/Course.php | 37 ++++++---- app/Repos/CourseCategory.php | 4 +- app/Repos/CourseUser.php | 2 +- app/Repos/Danmu.php | 5 ++ app/Repos/ImFriendGroup.php | 15 +++- app/Repos/ImGroup.php | 16 +++- app/Repos/ImGroupUser.php | 8 +- app/Repos/ImSystemMessage.php | 4 - app/Repos/ImUser.php | 18 ++--- app/Repos/Nav.php | 4 +- app/Repos/Order.php | 7 +- app/Repos/Package.php | 2 +- app/Repos/RefreshToken.php | 2 +- app/Repos/Review.php | 5 ++ app/Repos/Topic.php | 7 +- app/Repos/User.php | 5 ++ app/Validators/Chapter.php | 6 +- app/Validators/Comment.php | 6 +- app/Validators/Consult.php | 6 +- app/Validators/Course.php | 6 +- app/Validators/ImGroupUser.php | 12 +-- app/Validators/Review.php | 6 +- public/static/lib/layui/extends/helper.js | 6 +- public/static/web/css/common.css | 13 ++-- public/static/web/js/chapter.like.js | 29 ++++++++ public/static/web/js/course.share.js | 46 +++++------- public/static/web/js/course.show.js | 73 +++++++++++++++---- public/static/web/js/im.js | 4 +- 72 files changed, 461 insertions(+), 251 deletions(-) rename app/Caches/{ImChatGroup.php => ImGroup.php} (100%) rename app/Http/Web/Views/course/{show_chapters.volt => ajax_chapters.volt} (94%) rename app/Http/Web/Views/course/{show_consults.volt => ajax_consults.volt} (94%) rename app/Http/Web/Views/course/{show_packages.volt => ajax_packages.volt} (100%) rename app/Http/Web/Views/course/{list_pager.volt => ajax_pager.volt} (100%) rename app/Http/Web/Views/course/{show_recommended.volt => ajax_recommended.volt} (100%) rename app/Http/Web/Views/course/{show_related.volt => ajax_related.volt} (100%) rename app/Http/Web/Views/course/{show_reviews.volt => ajax_reviews.volt} (92%) rename app/Http/Web/Views/course/{show_teachers.volt => ajax_teachers.volt} (100%) rename app/Http/Web/Views/course/{show_topics.volt => ajax_topics.volt} (100%) rename app/Http/Web/Views/im/{chat_log.volt => chatlog.volt} (100%) rename app/Http/Web/Views/im/{msg_box.volt => msgbox.volt} (100%) rename app/Http/Web/Views/teacher/{list_pager.volt => ajax_pager.volt} (100%) rename app/Http/Web/Views/topic/{courses.volt => ajax_courses.volt} (100%) rename app/Http/Web/Views/user/{courses.volt => ajax_courses.volt} (100%) rename app/Http/Web/Views/user/{favorites.volt => ajax_favorites.volt} (100%) rename app/Http/Web/Views/user/{friends.volt => ajax_friends.volt} (94%) create mode 100644 public/static/web/js/chapter.like.js diff --git a/app/Builders/ChapterTreeList.php b/app/Builders/ChapterTreeList.php index 1b6a48ab..34da6b6a 100644 --- a/app/Builders/ChapterTreeList.php +++ b/app/Builders/ChapterTreeList.php @@ -28,7 +28,7 @@ class ChapterTreeList extends Builder $list[] = [ 'id' => $chapter->id, 'title' => $chapter->title, - 'priority' => $chapter->priority, + 'model' => $chapter->model, 'children' => $this->handleChildren($chapter), ]; } @@ -64,6 +64,7 @@ class ChapterTreeList extends Builder $list[] = [ 'id' => $lesson->id, 'title' => $lesson->title, + 'model' => $lesson->model, 'free' => $lesson->free, 'attrs' => $attrs, ]; diff --git a/app/Caches/ImChatGroup.php b/app/Caches/ImGroup.php similarity index 100% rename from app/Caches/ImChatGroup.php rename to app/Caches/ImGroup.php diff --git a/app/Http/Web/Controllers/CourseController.php b/app/Http/Web/Controllers/CourseController.php index f6bd897c..cdbc4066 100644 --- a/app/Http/Web/Controllers/CourseController.php +++ b/app/Http/Web/Controllers/CourseController.php @@ -5,6 +5,7 @@ namespace App\Http\Web\Controllers; use App\Http\Web\Services\CourseQuery as CourseQueryService; use App\Services\Frontend\Course\ChapterList as CourseChapterListService; use App\Services\Frontend\Course\ConsultList as CourseConsultListService; +use App\Services\Frontend\Course\CourseBasic as CourseBasicService; use App\Services\Frontend\Course\CourseInfo as CourseInfoService; use App\Services\Frontend\Course\CourseList as CourseListService; use App\Services\Frontend\Course\Favorite as CourseFavoriteService; @@ -58,7 +59,7 @@ class CourseController extends Controller $pager->target = 'course-list'; $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); - $this->view->pick('course/list_pager'); + $this->view->pick('course/ajax_pager'); $this->view->setVar('pager', $pager); } @@ -75,26 +76,44 @@ class CourseController extends Controller $course['category_paths'] = $service->handleCategoryPaths($course['category_id']); - $service = new CourseChapterListService(); - - $chapters = $service->handle($id); - - $service = new CourseTeacherListService(); - - $teachers = $service->handle($id); - $service = new RewardOptionList(); - $rewardOptions = $service->handle(); + $rewards = $service->handle(); $this->siteSeo->prependTitle($course['title']); $this->siteSeo->setKeywords($course['keywords']); $this->siteSeo->setDescription($course['summary']); $this->view->setVar('course', $course); - $this->view->setVar('chapters', $chapters); + $this->view->setVar('rewards', $rewards); + } + + /** + * @Get("/{id:[0-9]+}/teachers", name="web.course.teachers") + */ + public function teachersAction($id) + { + $service = new CourseTeacherListService(); + + $teachers = $service->handle($id); + + $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); + $this->view->pick('course/ajax_teachers'); $this->view->setVar('teachers', $teachers); - $this->view->setVar('reward_options', $rewardOptions); + } + + /** + * @Get("/{id:[0-9]+}/chapters", name="web.course.chapters") + */ + public function chaptersAction($id) + { + $service = new CourseChapterListService(); + + $chapters = $service->handle($id); + + $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); + $this->view->pick('course/ajax_chapters'); + $this->view->setVar('chapters', $chapters); } /** @@ -107,7 +126,7 @@ class CourseController extends Controller $packages = $service->handle($id); $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); - $this->view->pick('course/show_packages'); + $this->view->pick('course/ajax_packages'); $this->view->setVar('packages', $packages); } @@ -123,7 +142,7 @@ class CourseController extends Controller $pager->target = 'tab-consults'; $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); - $this->view->pick('course/show_consults'); + $this->view->pick('course/ajax_consults'); $this->view->setVar('pager', $pager); } @@ -139,7 +158,7 @@ class CourseController extends Controller $pager->target = 'tab-reviews'; $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); - $this->view->pick('course/show_reviews'); + $this->view->pick('course/ajax_reviews'); $this->view->setVar('pager', $pager); } @@ -153,7 +172,7 @@ class CourseController extends Controller $courses = $service->handle($id); $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); - $this->view->pick('course/show_recommended'); + $this->view->pick('course/ajax_recommended'); $this->view->setVar('courses', $courses); } @@ -167,7 +186,7 @@ class CourseController extends Controller $courses = $service->handle($id); $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); - $this->view->pick('course/show_related'); + $this->view->pick('course/ajax_related'); $this->view->setVar('courses', $courses); } @@ -181,7 +200,7 @@ class CourseController extends Controller $topics = $service->handle($id); $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); - $this->view->pick('course/show_topics'); + $this->view->pick('course/ajax_topics'); $this->view->setVar('topics', $topics); } @@ -190,7 +209,7 @@ class CourseController extends Controller */ public function ratingAction($id) { - $service = new CourseInfoService(); + $service = new CourseBasicService(); $course = $service->handle($id); diff --git a/app/Http/Web/Controllers/ImController.php b/app/Http/Web/Controllers/ImController.php index b5d0db46..c48ea999 100644 --- a/app/Http/Web/Controllers/ImController.php +++ b/app/Http/Web/Controllers/ImController.php @@ -38,6 +38,33 @@ class ImController extends LayerController return $this->jsonSuccess(['data' => ['list' => $list]]); } + /** + * @Get("/msgbox", name="web.im.msgbox") + */ + public function msgboxAction() + { + $service = new ImService(); + + $pager = $service->getSystemMessages(); + + $this->view->pick('im/msgbox'); + $this->view->setVar('pager', $pager); + } + + /** + * @Get("/chatlog", name="web.im.chatlog") + */ + public function chatlogAction() + { + $service = new ImService(); + + $pager = $service->getChatMessages(); + + $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); + $this->view->pick('im/chatlog'); + $this->view->setVar('pager', $pager); + } + /** * @Get("/msg/friend/unread", name="web.im.unread_friend_msg") */ @@ -62,19 +89,6 @@ class ImController extends LayerController return $this->jsonSuccess(['count' => $count]); } - /** - * @Get("/msg/box", name="web.im.msg_box") - */ - public function messageBoxAction() - { - $service = new ImService(); - - $pager = $service->getSystemMessages(); - - $this->view->pick('im/msg_box'); - $this->view->setVar('pager', $pager); - } - /** * @Get("/msg/sys", name="web.im.sys_msg") */ @@ -114,20 +128,6 @@ class ImController extends LayerController return $this->jsonSuccess(['status' => $status]); } - /** - * @Get("/chat/log", name="web.im.chat_log") - */ - public function chatLogAction() - { - $service = new ImService(); - - $pager = $service->getChatMessages(); - - $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); - $this->view->pick('im/chat_log'); - $this->view->setVar('pager', $pager); - } - /** * @Get("/chat/history", name="web.im.chat_history") */ diff --git a/app/Http/Web/Controllers/TeacherController.php b/app/Http/Web/Controllers/TeacherController.php index bb008d6e..153cc44f 100644 --- a/app/Http/Web/Controllers/TeacherController.php +++ b/app/Http/Web/Controllers/TeacherController.php @@ -31,7 +31,7 @@ class TeacherController extends Controller $pager->target = 'teacher-list'; $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); - $this->view->pick('teacher/list_pager'); + $this->view->pick('teacher/ajax_pager'); $this->view->setVar('pager', $pager); } diff --git a/app/Http/Web/Controllers/TopicController.php b/app/Http/Web/Controllers/TopicController.php index 5555ec71..413488e9 100644 --- a/app/Http/Web/Controllers/TopicController.php +++ b/app/Http/Web/Controllers/TopicController.php @@ -29,15 +29,14 @@ class TopicController extends Controller */ public function coursesAction($id) { - $target = $this->request->get('target', 'trim', 'course-list'); - $service = new TopicCourseListService(); $pager = $service->handle($id); $pager->items = kg_array_object($pager->items); - $pager->target = $target; + $pager->target = 'course-list'; $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); + $this->view->pick('topic/ajax_courses'); $this->view->setVar('pager', $pager); } diff --git a/app/Http/Web/Controllers/UserController.php b/app/Http/Web/Controllers/UserController.php index b7ed5300..c1eb0ac4 100644 --- a/app/Http/Web/Controllers/UserController.php +++ b/app/Http/Web/Controllers/UserController.php @@ -38,6 +38,7 @@ class UserController extends Controller $pager->target = 'tab-courses'; $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); + $this->view->pick('user/ajax_courses'); $this->view->setVar('pager', $pager); } @@ -53,6 +54,7 @@ class UserController extends Controller $pager->target = 'tab-favorites'; $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); + $this->view->pick('user/ajax_favorites'); $this->view->setVar('pager', $pager); } @@ -68,6 +70,7 @@ class UserController extends Controller $pager->target = 'tab-friends'; $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); + $this->view->pick('user/ajax_friends'); $this->view->setVar('pager', $pager); } diff --git a/app/Http/Web/Services/Im.php b/app/Http/Web/Services/Im.php index fb76c40a..0ef21dae 100644 --- a/app/Http/Web/Services/Im.php +++ b/app/Http/Web/Services/Im.php @@ -135,7 +135,7 @@ class Im extends Service $groupRepo = new ImGroupRepo(); - $users = $groupRepo->findGroupUsers($group->id); + $users = $groupRepo->findUsers($group->id); if ($users->count() == 0) { return []; @@ -170,7 +170,7 @@ class Im extends Service $userRepo = new ImUserRepo(); - $messages = $userRepo->findUnreadImFriendMessages($friend->id, $user->id); + $messages = $userRepo->findUnreadFriendMessages($friend->id, $user->id); if ($messages->count() == 0) { return; @@ -212,7 +212,7 @@ class Im extends Service $userRepo = new ImUserRepo(); - return $userRepo->countUnreadImSystemMessages($user->id); + return $userRepo->countUnreadSystemMessages($user->id); } public function getSystemMessages() @@ -306,7 +306,7 @@ class Im extends Service $userRepo = new ImUserRepo(); - $chatGroups = $userRepo->findImGroups($user->id); + $chatGroups = $userRepo->findGroups($user->id); if ($chatGroups->count() > 0) { foreach ($chatGroups as $group) { @@ -385,7 +385,7 @@ class Im extends Service $validator = new ImGroupUserValidator(); - $relation = $validator->checkGroupUser($user->id, $to['id']); + $relation = $validator->checkGroupUser($to['id'], $user->id); /** * 被对方屏蔽,忽略消息 @@ -423,7 +423,7 @@ class Im extends Service $userRepo = new ImUserRepo(); - $messages = $userRepo->findUnreadImSystemMessages($user->id); + $messages = $userRepo->findUnreadSystemMessages($user->id); if ($messages->count() > 0) { foreach ($messages as $message) { @@ -506,7 +506,7 @@ class Im extends Service $userRepo = new ImUserRepo(); - $friendUsers = $userRepo->findImFriendUsers($user->id); + $friendUsers = $userRepo->findFriendUsers($user->id); if ($friendUsers->count() == 0) { return; @@ -534,8 +534,8 @@ class Im extends Service { $userRepo = new ImUserRepo(); - $friendGroups = $userRepo->findImFriendGroups($user->id); - $friendUsers = $userRepo->findImFriendUsers($user->id); + $friendGroups = $userRepo->findFriendGroups($user->id); + $friendUsers = $userRepo->findFriendUsers($user->id); $items = []; @@ -600,7 +600,7 @@ class Im extends Service { $userRepo = new ImUserRepo(); - $groups = $userRepo->findImGroups($user->id); + $groups = $userRepo->findGroups($user->id); if ($groups->count() == 0) { return []; diff --git a/app/Http/Web/Services/ImFriendTrait.php b/app/Http/Web/Services/ImFriendTrait.php index 3ceb4bc9..5edce6c7 100644 --- a/app/Http/Web/Services/ImFriendTrait.php +++ b/app/Http/Web/Services/ImFriendTrait.php @@ -127,7 +127,7 @@ Trait ImFriendTrait $itemType = ImSystemMessageModel::TYPE_FRIEND_REQUEST; - $message = $userRepo->findImSystemMessage($receiver->id, $itemType); + $message = $userRepo->findSystemMessage($receiver->id, $itemType); if ($message) { $expired = time() - $message->create_time > 7 * 86400; diff --git a/app/Http/Web/Services/ImGroupTrait.php b/app/Http/Web/Services/ImGroupTrait.php index 00600206..a55a3b4d 100644 --- a/app/Http/Web/Services/ImGroupTrait.php +++ b/app/Http/Web/Services/ImGroupTrait.php @@ -30,8 +30,8 @@ Trait ImGroupTrait $group = $validator->checkGroup($post['group_id']); $remark = $validator->checkRemark($post['remark']); - $validator->checkIfJoined($user->id, $group->id); - $validator->checkIfBlocked($user->id, $group->id); + $validator->checkIfJoined($group->id, $user->id); + $validator->checkIfBlocked($group->id, $user->id); $this->handleApplyGroupNotice($user, $group, $remark); } @@ -64,7 +64,7 @@ Trait ImGroupTrait $groupUserRepo = new ImGroupUserRepo(); - $groupUser = $groupUserRepo->findGroupUser($applicant->id, $group->id); + $groupUser = $groupUserRepo->findGroupUser($group->id, $applicant->id); if (!$groupUser) { $groupUserModel = new ImGroupUserModel(); @@ -130,7 +130,7 @@ Trait ImGroupTrait $itemType = ImSystemMessageModel::TYPE_GROUP_REQUEST; - $message = $userRepo->findImSystemMessage($receiver->id, $itemType); + $message = $userRepo->findSystemMessage($receiver->id, $itemType); if ($message) { $expired = time() - $message->create_time > 7 * 86400; @@ -236,7 +236,7 @@ Trait ImGroupTrait { $groupRepo = new ImGroupRepo(); - $users = $groupRepo->findGroupUsers($group->id); + $users = $groupRepo->findUsers($group->id); if ($users->count() == 0) { return; diff --git a/app/Http/Web/Views/chapter/live.volt b/app/Http/Web/Views/chapter/live.volt index bebf89cf..a40ee419 100644 --- a/app/Http/Web/Views/chapter/live.volt +++ b/app/Http/Web/Views/chapter/live.volt @@ -72,6 +72,7 @@ {{ js_include('web/js/chapter.live.player.js') }} {{ js_include('web/js/chapter.live.im.js') }} + {{ js_include('web/js/chapter.like.js') }} {{ js_include('web/js/course.share.js') }} {% endblock %} \ No newline at end of file diff --git a/app/Http/Web/Views/chapter/read.volt b/app/Http/Web/Views/chapter/read.volt index 7f42e8a9..207882dd 100644 --- a/app/Http/Web/Views/chapter/read.volt +++ b/app/Http/Web/Views/chapter/read.volt @@ -48,6 +48,7 @@ {% block include_js %} {{ js_include('web/js/chapter.read.js') }} + {{ js_include('web/js/chapter.like.js') }} {{ js_include('web/js/course.share.js') }} {% endblock %} \ No newline at end of file diff --git a/app/Http/Web/Views/chapter/vod.volt b/app/Http/Web/Views/chapter/vod.volt index 3d5b9d07..c866f18b 100644 --- a/app/Http/Web/Views/chapter/vod.volt +++ b/app/Http/Web/Views/chapter/vod.volt @@ -114,6 +114,7 @@ {{ js_include('lib/jquery.min.js') }} {{ js_include('lib/jquery.danmu.min.js') }} {{ js_include('web/js/course.share.js') }} + {{ js_include('web/js/chapter.like.js') }} {{ js_include('web/js/chapter.vod.player.js') }} {% endblock %} \ No newline at end of file diff --git a/app/Http/Web/Views/course/show_chapters.volt b/app/Http/Web/Views/course/ajax_chapters.volt similarity index 94% rename from app/Http/Web/Views/course/show_chapters.volt rename to app/Http/Web/Views/course/ajax_chapters.volt index 6b618202..6b517fe3 100644 --- a/app/Http/Web/Views/course/show_chapters.volt +++ b/app/Http/Web/Views/course/ajax_chapters.volt @@ -53,11 +53,11 @@