src/ApiBundle/Api/Resource/Me/MeCourse.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace ApiBundle\Api\Resource\Me;
use ApiBundle\Api\ApiRequest;
use ApiBundle\Api\Resource\AbstractResource;
use AppBundle\Common\ArrayToolkit;
use Biz\Course\Service\CourseService;
use Biz\Course\Service\MemberService;
use Biz\Task\Service\TaskService;
class MeCourse extends AbstractResource
{
public function search(ApiRequest $request)
{
$conditions = $request->query->all();
$conditions['status'] = 'published';
$conditions['classroomId'] = 0;
$conditions['joinedType'] = 'course';
$conditions['userId'] = $this->getCurrentUser()->getId();
$conditions['role'] = 'student';
list($offset, $limit) = $this->getOffsetAndLimit($request);
$members = $this->getCourseMemberService()->searchMembers(
$conditions,
array('lastLearnTime' => 'DESC'),
0,
PHP_INT_MAX
);
$courseConditions = array(
'ids' => ArrayToolkit::column($members, 'courseId') ?: array(0),
'excludeTypes' => array('reservation'),
);
$courses = $this->getCourseService()->searchCourses(
$courseConditions,
array(),
$offset,
$limit
);
$courses = $this->appendAttrAndOrder($courses, $members);
$total = $this->getCourseService()->countCourses($courseConditions);
$this->getOCUtil()->multiple($courses, array('courseSetId'), 'courseSet');
return $this->makePagingObject($courses, $total, $offset, $limit);
}
private function appendAttrAndOrder($courses, $members)
{
$orderedCourses = array();
$members = ArrayToolkit::index($members, 'courseId');
$courses = ArrayToolkit::index($courses, 'id');
foreach ($members as $member) {
$courseId = $member['courseId'];
if (!empty($courses[$courseId])) {
$course = $courses[$courseId];
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。