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 算力,解读结果公开显示在下面。
还没有人解读过这个文件。