src/Biz/Search/Adapter/CourseSearchAdapter.php

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php

namespace Biz\Search\Adapter;

use AppBundle\Common\ArrayToolkit;

class CourseSearchAdapter extends AbstractSearchAdapter
{
    public function adapt(array $courses)
    {
        $adaptResult = array();
        $user = $this->getCurrentUser();

        $learningCourseIds = array();

        $tasks = array();

        if (!empty($user['id'])) {
            $courseIds = ArrayToolkit::column($courses, 'courseId');
            $plans = $this->getCourseService()->findCoursesByCourseSetIds($courseIds);
            $planIds = ArrayToolkit::column($plans, 'id');
            $tasks = $this->getCourseTaskService()->findTasksByCourseIds($planIds);
            $tasks = ArrayToolkit::group($tasks, 'fromCourseSetId');
            $learningCourse = $this->getCourseMemberService()->findCoursesByStudentIdAndCourseIds($user['id'], $planIds);
            $learningCourseIds = ArrayToolkit::column($learningCourse, 'courseSetId');
        }

        foreach ($courses as $index => $course) {
            if ($this->isOpenCourse($course)) {
                $course = $this->adaptOpenCourse($course);
            } else {
                $course = $this->adaptCourse($course, $learningCourseIds, $tasks);
            }

            array_push($adaptResult, $course);
        }

        return $adaptResult;
    }

    protected function adaptCourse($course, $learningCourseIds, $tasks)
    {
        //兼容老的模式,CourseSet映射到云搜索的Course资源,task映射到云搜索的lesson资源
        $courseLocal = $this->getCourseSetService()->getCourseSet($course['courseId']);

        if (!empty($courseLocal)) {
            $course['rating'] = $courseLocal['rating'];
            $course['ratingNum'] = $courseLocal['ratingNum'];
            $course['studentNum'] = $courseLocal['studentNum'];
            $course['middlePicture'] = isset($courseLocal['cover']['middle']) ? $courseLocal['cover']['middle'] : '';
            $course['learning'] = in_array($course['courseId'], $learningCourseIds);
            $course['id'] = $courseLocal['defaultCourseId'];
            $course['lessons'] = isset($tasks[$course['courseId']]) ? $tasks[$course['courseId']] : array();
        } else {
            $course['rating'] = 0;
            $course['ratingNum'] = 0;
            $course['studentNum'] = 0;
            $course['middlePicture'] = '';
            $course['learning'] = false;
            $course['id'] = $course['courseId'];

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。