src/ApiBundle/Api/Resource/Me/MeLiveCourseSet.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace ApiBundle\Api\Resource\Me;
use ApiBundle\Api\ApiRequest;
use ApiBundle\Api\Resource\AbstractResource;
use ApiBundle\Api\Annotation\ResponseFilter;
use Biz\Course\Service\CourseSetService;
use Biz\Course\Service\MemberService;
class MeLiveCourseSet extends AbstractResource
{
/**
* @ResponseFilter(class="ApiBundle\Api\Resource\CourseSet\CourseSetFilter", mode="simple")
*/
public function search(ApiRequest $request)
{
$allLiveCourseSets = $this->getCourseSetService()->searchCourseSets(
array('status' => 'published', 'type' => 'live', 'parentId' => 0),
array('createdTime' => 'DESC'),
0,
PHP_INT_MAX
);
if (!$allLiveCourseSets) {
return array();
}
$members = $this->getCourseMemberService()->searchMembers(
array('courseSetIds' => array_column($allLiveCourseSets, 'id'), 'userId' => $this->getCurrentUser()->getId()),
array('lastLearnTime' => 'DESC'),
0,
PHP_INT_MAX
);
$uniqueMemberIds = $this->getUniqueCourseSetIds($members);
$courseSets = $this->getCourseSetService()->findCourseSetsByIds($uniqueMemberIds);
return array_values($this->orderByLastViewTime($courseSets, $uniqueMemberIds));
}
private function getUniqueCourseSetIds($members)
{
return array_values(array_unique(array_column($members, 'courseSetId')));
}
private function orderByLastViewTime($courseSets, $uniqueCourseSetIds)
{
$orderedCourseSets = array();
foreach ($uniqueCourseSetIds as $courseSetId) {
if (!empty($courseSets[$courseSetId])) {
$orderedCourseSets[] = $courseSets[$courseSetId];
}
}
return $orderedCourseSets;
}
/**
* @return MemberService
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。